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