Computer Science III
Programming Patterns

CS 44001/54001
Spring 2020

lecture instructor: Mikhail Nesterenko
office: on blackboard collaborate, here is the link
office hours:TR 1:00-3:30pm
phone:(330) 672-9101
email:mikhail AT cs.kent.edu
.
lectures: TR 9:15am-10:30am, MSB 228
.
lab instructors:Tamim Islam, mislam4 AT kent.edu
Alfred Shaker, ashaker AT kent.edu
.
labs: 001 T 12:05-2:00pm, MSB 139, Tamim
002 R 12:05-2:00pm, MSB 139, Alfred
003 F 9:55-11:50am, MSB 162, Tamim

Textbook:

syllabus, course topics and tentative schedule, labs

board contents, programming thesaurus

Blackboard Collaborate Ultra: practice session, final exam support: May 7: 7:30-10am, post exam consultation: May 8 1:00 - 3:00pm

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/recordings

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 recording: singleton/inheritance
Inheritance, Polymorphism, Abstract Classes, Template Method Pattern P5, 7(constructor delegation), 9(inheritance) inheritance, constructor delegation, templated figures, templated games virtual fuctions, template method
Abstract vs. Concrete Classes, Abstract Factory Design Pattern P3 GUI, car factory abstract factory
Type Casting, Delegation, Bridge Design Pattern P4, 10(casting) casting, figures, appliances bridge/adapter I
Access Methods and Inheritance, Multiple Inheritance, Adapter Design Pattern P4, 9(multiple inheritance) figures using object and class adapter
Covariance, Prototype Design Pattern P3, 9 (type covariance) prototyped figures adapter II/prototype
Forward Class Declaration, State Design Pattern P5 the state of Zork
Decorator Design Pattern P4 decorating a web-page state/decorator
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 observer/chain-of-responsibility
Visitor Design Pattern, double dispatch P5 inspecting car parts
Composite P4 calculator, genealogical tree visitor/composite
Command Design Pattern P5 history coposite II, command
Memento Design Pattern P5 snapshot,
Flyweight P4 officer ranks, digits memento, flyweight
Registry Design Pattern in Prototype and Observer registry
Strategy Design Pattern P5 elementary, sorting
review review
.
.
not covered
Mediator P5 air traffic control
PIMPL idiom, nested classes, Smart Pointers 22 (3d edition) pimpl, unique_ptr, shared_ptr, PIMPL with smart pointers
Design pattern relationships
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.