CSE 283: Introduction to Object-Oriented Design
CSE 283
Introduction to Object-Oriented Design
(3 credits)
Class Size: 10-25
Faculty: Ehat Ercanli, Associate Professor, Syracuse University
Administrative Contact: Tavish Van Skoik, Assistant Director, Project Advance
Course Catalog Description
Present fundamental software design concepts of functional decomposition and objectoriented design. Use both C++ and Java to implement design projects which will be completed to demonstrate the design concepts.
Course Overview
CSE 283 is a one-semester software-engineering course. The course focuses on software design principles. The course covers the design of computer programs including top-down and objectoriented design, analysis, testing, user interface, documentation, data structures and graphic I/O. Applications are drawn from science and engineering, and are programmed in C++ OR Java.
Week 1: C Machine, Overview and Course Objectives; Course Overview and Student Expectations; A Virtual Machine – The C Machine; Higher Level Language and the C++ Superset
Week 2: Functional Decomposition – Classical Design; Problem Statement Analysis; Modularity – identifying small pieces; Testability
Week 3: Reuse – Object-Oriented Design; Calling functions to repeat operations; Difficulties in parameter passing; Global versus Local variables
Week 4: Object-Oriented Design: Class and Object Models; What are Objects?; What are Classes?; Multiplicity, Aggregation, Cardinality, and other relationships
Week 5: Object-Oriented Design: Dynamic and Functional Models; External and Internal Interaction with regard to Objects; What happens when? Dynamic Modeling Member Functions
Week 6: Encapsulation – Classes; Class Syntax; Constructors; Access Rights
Week 7: Overloading and Defaults; Use forms that are already known, for the convenience of the programmer; Defaults make parameter passing easier and more flexible; Operator Overloading
Week 8: Arrays of Objects; Classes are User defined types; Constructor Problems; Multidimensioned Arrays
Week 9: Pointers to Objects; Objects within Objects; Sharing objects: Passing by reference; Friends
Week 10: Inheritance; Refining the Class; Inheritance Syntax; Protection and Multiple Inheritance
Week 11: Dynamic Allocation and Recursion; New and Delete; Constructor Execution and Destructors; Recursion Example
Week 12: Polymorphism; Reuse more Classes; Virtual members; Abstract Classes
Week 13: Templates and Manipulators; What is a template? Ultimate Reuse? Linked List Example
Week 14: Java and the Internet; The Java Virtual Machine; Appellate; Enhanced Home Page Design.
Week 15: Review and Final Exam
Pre- / Co-requisites
N/A
Course Objectives
N/A
Laboratory
N/A
Required Materials
Problem Solving with C++, 10th Edition; Savitch, W.
ISBN: 9780134448282 (Pearson, 800-848-9500)
Java Software Solutions: Foundations of Program Design, 9th Edition; Lewis & Loftus (AddisonWesley) ISBN: 9780134462028 (Pearson, 800-848-9500)
Instructor Recommendations
N/A