Computer Science III
Programming Patterns

CS 44001/54001
Spring 2021

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

Textbook:

syllabus, course topics and tentative schedule, labs

board contents, 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/recordings

Procedural Programming Ch 1 up to classes references, increments, static vars intro, procedural I procedural II
Object-Based Programming Ch1 from classes, Ch 6, Ch 7 copy-and-swap idiom object-based
Introduction to Templates Templates in Ch 11 swap, list, template friend templates
Standard Template Library: Sequential Containers Ch 11, Ch 12 vectors, deques, adapters, lists, roster example vectors vectors II lists
STL: Associative Containers maps, multimaps, sets, hashes maps hashes
STL: Algorithms algorithm examples algorithms algorithms II algorithms III
STL: Extending extending algorithms, writing containers
Singleton Design Pattern P3* classic and meyer's singleton singleton
Inheritance, Polymorphism, Abstract Classes, Template Method Pattern P5, 7(constructor delegation), 9(inheritance) inheritance, constructor delegation, templated figures, templated games template method pattern
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
Access Methods and Inheritance, Multiple Inheritance, Adapter Design Pattern P4, 9(multiple inheritance) figures using object and class adapter adapter
Covariance, Prototype Design Pattern P3, 9 (type covariance) prototyped figures
Forward Class Declaration, State Design Pattern P5 the state of Zork prototype, state
Decorator Design Pattern P4 decorating a web-page
Observer Design Pattern, Push and Pull communication methods P5 observing messages and name change decorator, observer
Chain of Responsibility Design Pattern P4, 9(base class method invocation) approving loans, dispensing cash
Visitor Design Pattern, double dispatch P5 inspecting car parts chain of responsibility, visitor
Composite P4 calculator, genealogical tree composite
Command Design Pattern P5 history composite and command from last year
Memento Design Pattern P5 snapshot, memento from last year
Registry Design Pattern in Prototype and Observer registry
Mediator P5 air traffic control
Flyweight P4 officer ranks, digits mediator, flyweight
Strategy Design Pattern P5 elementary, sorting strategy, PIMPL
PIMPL idiom, nested classes,
Smart Pointers
22 (3d edition) pimpl,
unique_ptr, shared_ptr, PIMPL with smart pointers
Facade Design Pattern P4 facade for figures smart pointers, facade
review review
.
not covered
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.