Syllabus CSE687 - Object Oriented Design | |||
---|---|---|---|
Lecture | Topics | Read before class | Project |
Introduction: Lecture #1, Mon Aug 27 |
Syllabus, projects, examination, grading, notation, packages, Handouts | skim CPPPL chp 1-9 skim CPPP 1-6, CPPSL 2 |
hand out Pr1 |
Language Survey: Lecture #2, Wed Aug 29 |
classes, object model, templates, references, streams | CPPP 7, 16 links on lecture page, CppR - language |
Pr1 |
Mon Sep 3 | Labor Day Holiday | No classes - Celebrate by not working! | Pr1 |
Encapsulation: Lecture #3, Wed Sep 5 |
Encapsulation Principle, interfaces, object factories | CPPP 7 links on lecture page |
Pr1 |
Abstraction: Lecture #4, Mon Sep 10 |
Abstract Data Types, simulating support for native types | CPPP 7, 13, 14 links on lecture page, CppR - class |
Pr1 |
Overloading: Lecture #5, Wed Sep 12 |
operator model, overloading, std::string | CPPP 14, CPPSL 13 links on lecture page, CppR - Operators |
Pr1 |
Templates: Lecture #6, Mon Sep 17 |
templates, binding time, software reuse | CPPP 16 links on lecture page, CppR - Templates |
Pr1 |
Template Applications: Lecture #7, Wed Sep 19 |
Template pollicies, traits, Containers, smart pointers, reference counted objects | CPPP 16 links on lecture page, CppR - Templates |
Pr1 due |
Hierarchy: Lecture #8, Mon Sep 24 |
relationships between classes | CPPP 15 links on lecture page |
Pr2 |
Inheritance & Composition: Lecture #9, Wed Sep 26 |
Inheritance & Composition examples, initialiation | CPPP 15 links on lecture page, CppR - Derived Classes |
Pr2 |
Liskov Substitution Principle: Lecture #10, Mon Oct 01 |
Inheritance examples, initialization, polymorphism, Liskov Substitution Principle (ISP) | CPPP 15 links on lecture page |
Pr2 |
Open/Closed Principle: Lecture #11, Wed Oct 03 |
Open/Closed Principle (OCP), design for OCP | links on lecture page | Pr2 |
Interfaces: Lecture #12, Mon Oct 08 |
Depencency Inversion Principle (DIP), interfaces and object factories again | links on lecture page | Pr2 |
Processes and Threads Lecture #13, Wed Oct 10 |
Win32 Processes, Threads and Locking classes | links on lecture page | Pr2 due |
Processes and Threads Lecture #14, Mon Oct 15 |
Win32 Processes, Threads and Locking classes continued | CPPPL 41, 42 links on lecture page |
Pr3 |
Midterm Review: Lecture #15, Wed Oct 17 |
Review last year's exam | CPPP, CPPSL Class Notes |
Pr3 |
Midterm Exam: Lecture #16, Mon Oct 22 |
Midterm Exam | You may bring in one page of notes. Write on both sides if you wish. | Pr3 |
Sockets: Lecture #17, Wed Oct 24 |
Win32 Sockets | links on lecture page | Pr3 |
Sockets: Lecture #18, Mon Oct 29 |
Socket Communication | links on lecture page | Pr3 |
Managed C++: Lecture #19, Wed Oct 31 |
(Managed) C++/CLI, Syntax and Example Applications, Framework Class Libraries | links on lecture page | Pr3 |
WPF Lecture #20, Mon Nov 05 |
Windows Presentation Foundation using (managed) C++/CLI | links on lecture page | Pr3 |
Midterm Results: Lecture #21, Wed Nov 07 |
Exams returned, solutions discussed, Midterm Makeup Examination | solutions handed out | Pr3 due |
Components: Lecture #22, Mon Nov 12 |
components, interfaces, Interface Segregation Principle (ISP), Exceptions | CPPPL 13 links on lecture page |
Pr4 |
Streams: Lecture #23, Wed Nov 14 |
Exceptions, iostreams | CPPP 8, 18 links on lecture page |
Pr4 |
Mon Nov 19 | Thanksgiving Break | no classes | Pr4 |
Wed Nov 21 | Thanksgiving Break | no classes | Pr4 |
Standard Template Library: Lecture #24, Mon Nov 26 |
Standard Template Library (STL), STL containers, iterators | CPPSL 6-7, CPPP 9-11 links on lecture page |
Pr4 |
STL Details: Lecture #25, Wed Nov 28 |
STL details | CPPSL 8-12 links on lecture page |
Pr4 |
Template Metaprogramming: Lecture #26, Mon Dec 03 |
compile-time functions, selection, type lists | links on lecture page | Pr4 |
Applications of Template Metaprogramming: Lecture #27, Wed Dec 05 |
Typelists, functors, smart pointers, Loki Library | links on lecture page | Pr4 due |