Syllabus CSE687 - Object Oriented Design | |||
---|---|---|---|
Lecture | Topics | Read before class | Project |
Introduction: Lecture #1, Tue Jan 15 |
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, Thur Jan 17 |
classes, object model, templates, references, streams | CPPP 7, 16 links on lecture page CppR - language |
Pr1 |
Encapsulation: Lecture #3, Tue Jan 22 |
Encapsulation Principle, interfaces, object factories | CPPP 7 links on lecture page |
Pr1 |
Abstraction: Lecture #4, Thur Jan 24 |
Value Types, simulating support for native types | CPPP 7, 13, 14 links on lecture page CppR - class |
Pr1 |
Overloading: Lecture #5, Tue Jan 29 |
operator model, overloading, std::string | CPPP 14, CPPSL 13 links on lecture page CppR - Operators |
Pr1 |
Templates: Lecture #6, Thur Jan 31 |
templates, binding time, software reuse | CPPP 16 links on lecture page CppR - Templates |
Pr1 |
Template Applications: Lecture #7, Tue Feb 05 |
Template pollicies, traits, Containers, smart pointers, reference counted objects | CPPP 16 links on lecture page CppR - Templates |
Pr1 due |
Hierarchy: Lecture #8, Thur Feb 07 |
relationships between classes | CPPP 15 links on lecture page |
Pr2 |
Inheritance & Composition: Lecture #9, Tue Feb 12 |
Inheritance & Composition examples, initialiation | CPPP 15 links on lecture page CppR - Derived Classes |
Pr2 |
Liskov Substitution Principle: Lecture #10, Thur Feb 14 |
Inheritance examples, initialization, polymorphism, Liskov Substitution Principle (ISP) | CPPP 15 links on lecture page |
Pr2 |
Open/Closed Principle: Lecture #11, Tue Feb 19 |
Open/Closed Principle (OCP), design for OCP | links on lecture page | Pr2 |
Interfaces: Lecture #12, Thur Feb 21 |
Depencency Inversion Principle (DIP), interfaces and object factories again | links on lecture page | Pr2 |
Processes and Threads: Lecture #13, Tue Feb 26 |
Win32 Processes, Threads and Locking classes | links on lecture page | Pr2 |
Processes and Threads: Lecture #14, Thur Feb 28 |
Win32 Processes, Threads and Locking classes continued | CPPPL 41, 42 links on lecture page |
Pr2 |
Midterm Review: Lecture #15, Tue Mar 05 |
Review last year's exam | CPPP, CPPSL Class Notes |
Pr2 due |
Midterm Exam: Lecture #16, Thur Mar 07 |
Midterm Exam | You may bring in one page of notes. Write on both sides if you wish. | Pr3 |
Tue Mar 12 | Spring Break | no classes | Pr3 |
Thur Mar 14 | Spring Break | no classes | Pr3 |
Sockets: Lecture #17, Tue Mar 19 |
Win32 Sockets | links on lecture page | Pr3 |
Sockets: Lecture #18, Thu Mar 21 |
Socket Communication | links on lecture page | Pr3 |
Managed C++: Lecture #19, Tue Mar 26 |
(Managed) C++/CLI, Syntax and Example Applications, Framework Class Libraries | links on lecture page | Pr3 |
WPF Lecture #20, Thu Mar 28 |
Windows Presentation Foundation using (managed) C++/CLI | links on lecture page | Pr3 |
Midterm Results: Lecture #21, Tue Apr 02 |
Exams returned, solutions discussed, Midterm Makeup Examination | solutions handed out | Pr3 |
Components: Lecture #22, Thu Apr 04 |
components, interfaces, Interface Segregation Principle (ISP), Exceptions | CPPPL 13 links on lecture page |
Pr3 |
Streams: Lecture #23, Tue Apr 09 |
Exceptions, iostreams | CPPP 8, 18 links on lecture page |
Pr3 due |
Standard Template Library: Lecture #24, Thu Apr 11 |
Standard Template Library (STL), STL containers, iterators | CPPSL 6,7 CPPP 9-11 links on lecture page |
Pr4 |
STL Details: Lecture #25, Tue Apr 16 |
STL details | CPPSL 8-12 links on lecture page |
Pr4 |
Template Metaprogramming: Lecture #26, Thu Apr 18 |
compile-time functions, selection, type lists | links on lecture page | Pr4 |
Applications of Template Metaprogramming: Lecture #27, Tue Apr 23 |
Typelists, functors, smart pointers, Loki Library | links on lecture page | Pr4 |
Wrap-up: Lecture #28, Thu Apr 25 |
Where do we go from here? | links on lecture page | Pr4 |
Wrap-up: Lecture #29, Tue Apr 30 |
Help with Project #4 | links on lecture page | Pr4 due |