Component-based software from client's, implementer's, and designer's perspectives; container components; data representation; reasoning about the behavior of component-based software.
| Number of Weeks | Topics | Readings |
|---|---|---|
| 1 | Templates; instantiates relation; component coupling diagrams and code; instantiation diagrams and code; Set and Sequence components | [W98] Set, [W98] Sequence |
| 1 | Checking components; checks relation using templates; Queue component | [W98] Queue |
| 1 | Extensions; extends relation using templates; toolkit classes; sorting Queues | Handouts |
| 1 | Stack component; how recursion works; Record and Partial_Map components | [W98] Record, [W98] Partial_Map |
| 1 | Loop invariants | [W98] Chapter 6, [W98] Stack |
| 1 | Performance analysis; analysis of algorithms | Handouts |
| 1 | Representation; encapsulates relation; convention and correspondence | Handouts |
| 1 | Array component; hashing to implement Partial_Map; fully parameterized components; uses relation; partial instantiation; specializes relation | Handouts, [W98] Array |
| 1.5 | Pointers and dynamic storage; List component | Handouts, [W98] List |
| 0.5 | Review and exams |
| Week | Lab Topic |
|---|---|
| 1 | Pretty printer using HTML |
| 2 | Sorted table generator for HTML |
| 3 | Medical information processing |
| 4 | Pizza delivery service |
| 5-6 | Automated glossary generation |
| 7-8 | Partial_Map represented using Array of Queue of Record (hashing) |
| 9-10 | List represented using "raw C++" pointers |
| Midterm Exam | 20% |
|---|---|
| Final Exam | 30% |
| Homework Assignments | 10% (total of many) |
| Closed Lab Assignments | 9% (9 @ 1% each) |
| Lab Assignments | 28% (7 @ 4% each) |
| Class Participation | 3% |
Important Note: A passing grade on the final exam is required in order to receive a passing grade for the course.