|Object-oriented Software Development|
|CLASS CODE:||CS 165||CREDITS: 3|
|DIVISION:||PHYSICAL SCIENCE & ENGINEERING|
|DEPARTMENT:||ELECTRICAL & COMPUTER ENGINEERING|
|GENERAL EDUCATION:||This course does not fulfill a General Education requirement.|
|DESCRIPTION:||Software design and development using an object-oriented language. Algorithm formulation, object-oriented programming, and an introduction to software engineering.|
|TAUGHT:||Winter, Summer, Fall|
|CONTENT AND TOPICS:||Style; Elegance; Bohm and Jacopini structures; single-entry, single-exit; Structured programming; Requirements; design; algorithm development; Design; Functional decomposition; top down, bottom up; coupling; cohesion; Software engineering; Software life cycle models; debugging; software maintenance; Structures; Abstraction and encapsulation; Composition; inheritance; polymorphism; Classes; Classes-constructors and destructors; Classes-copy constructor; Classes-member functions; Classes-friends; Classes-static members; Input/Output; Operator overloading; Sorting; Searching; Linked lists.|
|GOALS AND OBJECTIVES:||1. Explain the object-oriented paradigm (including abstraction, encapsulation,aggregation,inheritance, and polymorphism).
2. Jusify the need for design before implementation.
3. Design and implement object-oriented programs.
|REQUIREMENTS:||Class attendance is required but is not necessarily part of the grade. Each student is required to read assigned portions of the textbook(s). Access to computers in the Linux computer lab is required to complete homework assignments.|
|PREREQUISITES:||CS 124 and Math 110|
|EFFECTIVE DATE:||August 1999|