CSE 283 is a one semester software engineering course.

The course focuses on software design principles. It covers the design of computer programs, including top-down and object-oriented design, analysis, testing, user interface, documentation, data structures, and graphic I/O. Applications are drawn from science and engineering and are programmed in C++.

Course Outline

  • 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 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; Multi-dimensioned 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