Computer Sience III
Programming Patterns

CS 4/69995
Summer 2015

lecture instructor: Mikhail Nesterenko
office:MSB 356
office hours:WF 8:30-10:00am
phone:(330) 672-9101
email:mikhail AT cs.kent.edu
.
lectures: WF 10:00-11:40am, MSB 121
labs: WF 12:00-1:55pm, MSB 139
.

Textbook: Professional C++, 2nd Edition by Marc Gregoire, Nicholas A. Solter, Scott J. Kleper, ISBN: 978-0-470-93244-5,
third edition would also work.

syllabus, course topics and tentative schedule, final exam and consultation times, labs, programming thesaurus, style guide

Example midterm, Example final, Final exam notes

Mailing list: list info/subscription, archive

lecture notes/textbook references/examples

Procedural Programming Ch 1 up to classes references, increments, static vars
Object-Based Programming Ch1 from classes, Ch 6, Ch 7 copy-and-swap idiom
Introduction to Templates Templates in Ch 11 swap, list
Standard Template Library: Containers Ch 11, Ch 12 container examples
STL: Algorithms algorithm examples
STL: Extending iterator adapters, exending algorithms, writing containers
Singleton Design Pattern Ch 7 and 29 classic and meyer's singleton
Inheritance, Polymorphism, Abstract Classes, Template Method Pattern Ch 8 inheritance, templated figures, templated games
Abstract Factory Design Pattern Ch 29 GUI, pizza factory, car factory
Bridge Design Pattern figures, appliances
Access Methods and Inheritance, Multiple Inheritance, Adapter Design Pattern figures using object and class adapter
Covariance, Prototype Design Pattern prototyped figures
State Design Pattern the state of Zork
Decorator Design Pattern ch 29 decorating a web-page
Observer Design Pattern, Push and Pull communication methods ch 29 observing messages and name change
Chain of Responsibility Design Pattern ch 29 handling events in figures
Strategy Design Pattern elementary, sorting
Command Design Pattern history
Memento Design Pattern, PIMPL idiom snapshot, pimpl
Implementing Design Patterns Using Templates singleton, simple factory, pizza factory
Visitor Design Pattern, double dispatch inspecting car parts
Metaprogramming ch 20 branching, factorial, loop unrolling