| Week |
Period |
Topics |
Supplements |
Lab |
1
12/1-12/5 |
Lecture 1 |
Course introduction
Prerequisite assessment
std::list class and iterators |
pages 978-983, 993-997 |
Electronic Submission
Quiz 1
Lab 1: Using Existing Classes |
| Lecture 2 |
Pointer basics, null pointers, addressing, indirection |
video*
pages 304-326 |
| Lecture 3 |
Arrays and pointers, character string processing, command line
arguments |
video*
pages 326-353, 920 |
2
12/8-12/12 |
Lecture 1 |
Data abstraction, encapsulation
Introduction to abstract data types (ADT's) |
video*
code
pages 395-413 |
| Lecture 2 |
ADT class interface, constructor, default constructor arguments,
destructor, member functions, data members, assignment operator,
public/private members |
video*
code
pages 413-431. |
| Lecture 3 |
const members, composition, friends, this pointer |
video*
code
pages 453-520 |
3
12/15-12/19 |
Lecture 1 |
Group activity |
video*
code |
Lab 2: Class Implementation |
| Lecture 2 |
Object-oriented analysis and design
Introduction to Unified Modeling Language (UML)
Classification, use cases |
pages 119-131 |
| Lecture 3 |
Group activity reports |
code |
| Merry Christmas |
4
1/5-1/9 |
Lecture 1 |
Review of ADT, Operator overloading |
video*
code |
Lab 2 cont... |
| Lecture 2 |
ADT Design examples |
video*
code
pages 431-448 |
| Lecture 3 |
Design Exercise |
code |
5
1/12-1/16 |
Lecture 1 |
Review |
|
Lab 3: Design Project |
| Lecture 2 |
Midterm Exam |
supplement |
| Lecture 3 |
Pointer review, dynamic objects with new and delete, dynamic
arrays, memory leaks |
video*
code
pages 476-477 |
6
1/19-1/23 |
Lecture 1 |
Simple string ADT implementation |
video*
code
pages 546-559. |
| Lecture 2 |
Design exercise |
video*
code |
| Lecture 3 |
Inheritance, protected, overriding, construtor/destructor
relationship |
video*
pages 557-622 |
7
1/26-1/30 |
Lecture 1 |
Inheritance cont... |
video*
code |
| Lecture 2 |
Templates |
pages 705-719 |
| Lecture 3 |
Templated container implementation, linked lists |
video*
lab video*
code |
pages 798-810
8
2/2-2/6 |
Lecture 1 |
Linked list and iterator implementation |
video*
code |
Lab 4: Group Design Project
video* |
| Lecture 2 |
Polymorphism, virtual functions |
video*
pages 626-657. |
| Lecture 3 |
Design exercise |
video*
code
example |
9
2/9-2/13 |
Lecture 1 |
Group project: design review |
|
| Lecture 2 |
Abstract base classes |
video*
pages 626-657 |
| Lecture 3 |
Exception handling |
video*
code
pages 724-753 |
10
2/16-2/20 |
Lecture 1 |
Overview of STL algorithms |
video*
pages 1013-1048 |
| Lecture 2 |
Final review |
video* |
| Lecture 3 |
Design exercise |
video*
code |
11
2/24 |
Exam week |
Final Exam |
Final exam |
|