- Room changes, exam dates, exam information, and lecture cancellations will be announced in this space. The lecture topics for each week are tentative and will be adjusted as the term goes on.
Lecture 1 Notes. Goals of this course, the tools library, what is high-quality OO programming? Who cares about quality? Example of terrible quality code.
A review of classes and modules, C++ I/O, class structure, .cpp and .hpp files. The insertion sort program example. Program Notes on DataPack.
Read Chapter 1 and pay close attention to it. I expect you to follow these guidelines. Read Chapters 2 and 3. Be prepared to ask questions about anything you do not understand.
Write Assignment 1 and Program 1.
Click here for randints
- Tentative after this point. ----------------------------------------------------
- September 12: Chapter 3 and part of 4.
Lecture 2 Notes. Introduction to the term project. C++ streams and input. C++ output. Inline functions. The string class. Generic code
using print functions and extensions of the output operator, <<
- September 19: Chapter 6.1 and 6.2
Lecture 3 Notes. The storage model: allocation and initialization of objects and arrays. Arrays of objects and arrays of pointers to objects. Destructors. Include files and namespaces. Inline functions. Shallow copy -- deep delete.
- September 23: Lecture 4 Notes.
Parameter passing. Extern, static, and inline. L-values and R-values. Function return types. Data structure diagrams and UML class diagrams.
- October 3: Lecture 5 Notes.
Chapter 6: Five kinds of disasters, analyzing and understanding them. Chapter 7: Linked lists and friend classes: the Bargraph program and noteworthy elements of its code. Allocation overhead. Using stream functons to detect and handle input errors.
- October 10: Lecture 6 Notes.
Chapter 8, Chapter 9.2. amd 19.4.1: Sequence diagrams. Make the concept match the capabilities and get the right methods for allocation and deallocation. FlexChars, StringStore. Chapters 10 and 11: Bells and whistles, projects. Chapter 13. Template concepts and syntax. Introduction to the Standard Template Library
- October 17: Lecture 7 Notes.
Chapters 13, 17. STL classes String, Vector and Map. Exceptions.
- October 31: Midterm exam, take home, choose your time slot. Answers are due 48 hours after I email the questions to you.
- November 7: Chapter 15 Lecture 8 Notes.
Derivation, polymorphism, and virtual functions.
- November 14: Chapter 16. Lecture 9 Notes.
Polymorphism, virtual functions, Abstract classes and multiple Inheritance. Deriving from an interface class.
- November 21: Lecture 10 Notes. Lecture 10 Exceptions Notes.
Virtual derivation. Casts. Circular dependencies. Exceptions.
- November 28: Design Patterns.
- December 5: Last lecture. Lecture 11 Notes.
- December 12: Final exam.