Computer Science III
Programming Patterns

CS 44001/54001
Spring 2024

lecture instructor: Mikhail Nesterenko
office hours:TR 1:15-3:15pm
Office: MSB 356
phone:(330) 672-9101
email:mikhail AT cs.kent.edu
.
lectures: TR 9:15am-10:30am MSB 228
.
lab instructors:Kawsher Mahbub, mmahbub AT kent.edu
Joseph Oglio, joglio AT kent.edu
.
labs: 001 T 12:05-2:00pm, MSB 139 Joseph
002 R 12:05-2:00pm, MSB 139 Joseph
003 F 9:55-11:50am, MSB 162 Kawsher

Textbook:

syllabus, course topics and tentative schedule, labs

programming thesaurus, drawings

Example quiz, answer key, Example midterm, Example final, Final exam notes

Mailing list: list info/subscription, archive, last years' 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, template friend
Standard Template Library: Sequential Containers Ch 11, Ch 12 vectors, deques, adapters, lists, roster example
STL: Associative Containers maps, multimaps, sets, hashes
STL: Algorithms algorithm examples
STL: Extending extending algorithms, writing containers
Singleton Design Pattern P3* classic and meyer's singleton
Inheritance, Polymorphism, Abstract Classes, Template Method Pattern P5, 7(constructor delegation), 9(inheritance) inheritance, constructor delegation, templated figures, templated games
Abstract vs. Concrete Classes, Abstract Factory Design Pattern P3 GUI, car factory
Type Casting, Delegation, Bridge Design Pattern P4, 10(casting) casting, figures, appliances
Access Methods and Inheritance, Multiple Inheritance, Adapter Design Pattern P4, 9(multiple inheritance) figures using object and class adapter
Forward Class Declaration, State Design Pattern P5 the state of Zork
Covariance, Prototype Design Pattern P3, 9 (type covariance) prototyped figures
Decorator Design Pattern P4 decorating a web-page
Observer Design Pattern, Push and Pull communication methods P5 observing messages and name change
Chain of Responsibility Design Pattern P4, 9(base class method invocation) approving loans, dispensing cash
Visitor Design Pattern, double dispatch P5 inspecting car parts
Composite P4 calculator, genealogical tree
Command Design Pattern P5 history
Memento Design Pattern P5 snapshot,
Registry Design Pattern in Prototype and Observer
Mediator P5 air traffic control
Flyweight P4 officer ranks, digits
Strategy Design Pattern P5 elementary, sorting
PIMPL idiom, nested classes,
Smart Pointers
22 (3d edition) pimpl,
unique_ptr, shared_ptr, PIMPL with smart pointers, smart list
Facade Design Pattern P4 facade for figures
Design pattern relationships
.
not covered
Implementing Design Patterns Using Templates singleton, factory
Metaprogramming branching, factorial, loop unrolling
*Chapters starting with P, e.g. P3 or P4, are from the Design Patterns textbook.