Syllabus 266 - 371
Spring 2001


Instructor: Peter BreznayCourse: C++ and Object-Oriented Programming
Office Hours: MTWR 4:30-5:30 and by appointmentOffice: CH C324
Phone: 465-2170

Text: Perry-Levin: An Introduction to Object-Oriented Design in C++, Addison-Wesley, 1998

Week Topics
1Overview of Software Development. The programming languages and their relationships in the family of the C heritage. Console vs. visual compilation, the C++ Builder IDE. Visual Component Library (VCL).
2Basic C++ command structures. C features and their evolution in C++. Basic I/O commands and formatting. Macros, the C Preprocessor. Chapter 2.
3C++ program structure, header files. Namespaces. C++ streams and basic file I/O. C++ data types, implicit and explicit type conversions. Enumerations.
4C++ functions. Pass and return by value, by reference and by constant reference. Function pointers. Chapter 3.
5Overview of C++ control flow. Chapters 4 and 5. Reference types and aliases. Pointers and pointer arithmetic.
6Static arrays in C++. Multidimensional arrays. Scope and life time of variables. Static variables. Chapter 6.
7Overview of object-oriented programming concepts. C++ struct and class. Nested classes.
8Constructors and destructors in C++. Public and private access, class scope, static class members. Chapter 7. Midterm Exam (Chapters 1-7).
9Aggregation, pointer members. Default, conversion and copy constructor. Shallow and deep copy. Containers and iterators.
10First class objects. Operator overloading. Friend functions and classes. Chapter 8.
11Storage Management. Dynamic arrays. New and delete operators. Destructors with pointer members. Defaulted operations.
12Memory allocation problems: memory leak, dangling and uninitialized pointers. Pointers vs. references. Chapter 9.
13Inheritance and class hierarchies in C++. Protected data members, contructor and destructor invocation in class hierarchies.
14Compile-time polymorphism. C++ streams and built-in inheritance. Multiple inheritance. Chapter 10.
15Run-time polymorhism. Virtual functions. Abstract base classes. Chapter 11. Review. Final Exam.

Grading Policy: Class project 30%, Labs 30%, Midterm 40%