CSc 432: Object-Oriented Software Engineering

Prof. Glenn D. Blank             Office: 328 Packard Lab             Hours: TWTh 2:30-4PM and by appt.
Phone: 758-4867                   E-mail: gdb0@lehigh.edu            http//: www.eecs.lehigh.edu/~glennb

Course Description: Design and construction of modular, reusable, extensible and portable software using statically typed object-oriented programming languages (Eiffel, C++). Abstract data types; genericity; multiple inheritance; use and design of software libraries; persistence and object-oriented databases; impact of OOP on the software life cycle.

Prerequisites:some familiarity with the C programming language and data structures.

Texts:  Pete Thomas & Ray Weedon, Object-Oriented Programming in Eiffel, Addison Wesley, 1995.
            Bjarne Stroustrup, The C++ Programming Language, 3rd Edition, Addison Wesley, 1997.
Recommended:
            Scott Meyers, Effective C++, 2nd Edition, Addison-Wesley, 1997.
On reserve (textbooks from previous versions of this course):
            Bertrand Meyer, Object-Oriented Software Construction, Prentice Hall, 1988.
            Peter Coad & Jill Nicola, Object-Oriented Programming, Yourdon Press, 1993.
Requirements: Programming assignments in Eiffel and C++.
            Project: a more substantial software development effort in Eiffel or C++, teaming 2-4 students.
                    Requirements, analysis and design specifications due at dates specified during semester.
            Project presentations (works in progress) by group near end of semester.
Extra credit: seminar presentation on a topic related to the course
 

Syllabus
Week  Topic                                                                 Reading
    1     Why object-oriented?                                         Thomas&Weedon chapter 1 (Bertrand Meyer chapters 1-2)
    2     Abstract Data Types                                          Thomas&Weedon chapters 3&8 (Meyer chapters 3-4)
    3     Eiffel: classes                                                     Thomas&Weedon chapters 2,4-7
    4     Eiffel: assertions                                                 Thomas&Weedon chapters 9-10 
    5     Object-oriented analysis                                      Coad&Yourdon chapter 1, Thomas&Weedon 11
    6     Eiffel: inheritance                                               Thomas&Weedon chapters 11-13
    7     C++ as Aa better C@                                            Stroustrup chapters 1-9 (also Scott Meyer)
    8     C++: classes                                                      Stroustrup chapter 10
    9     Object-oriented design                                        Coad&Yourdon chapter 2, Thomas&Weedon chapter 15
  10     C++: overloading, inheritance                               Stroustrup chapters 11, 12, 15
  11     C++: templates, exceptions                                  Stroustrup chapters 13, 14, Thomas&Weedon chapter 14
  12     Standard library, idioms                                       Stroustrup chapters 3, 16-22; Scott Meyer
  13     Persistence, Oo databases                                  Communications of the ACM, October 1991,
                                                                                    Special issue on Next-Generation Database Systems
  14     Project presentations