| Date |
Book Sections |
Lecture Topics |
Due |
Mon 8/27
|
|
Welcome and Announcements |
|
Wed 8/29
|
1.1, 1.2 |
The Software Life Cycle, Using Abstraction to Manage Complexity |
Lab 0 |
Fri 8/31
|
1.2, 1.3 |
Using Abstraction to Manage Complexity, Defining C++ Classes |
|
Wed 9/5
|
1.4, 1.5, 1.6 |
Abstract Data Types, Interfaces, Pre- and Postconditions, Requirement Analysis, Use Cases, Sequence Diagrams, Design of an Array-Based Phone Directory |
|
Fri 9/7
|
1.6, 1.7, 1.8, 2.1 |
Design of an Array-Based Phone Directory, Implementing and Testing the Array-Based Phone Directory, Completing the Phone Directory Application, Program Defects and Bugs |
|
Mon 9/10
|
2.1, 2.2, 2.3 |
Program Defects and Bugs, Exceptions, Testing Programs |
Lab 1 |
Wed 9/12
|
2.3, 2.4, 2.5 |
Testing Programs, Debugging a Program, Reasoning about Programs: Assertions and Loop Invariants |
|
Fri 9/14
|
2.6 |
Efficiency of Algorithms |
|
Mon 9/17
|
3.1, 3.2 |
Introduction to Inheritance and Class Hierarchies, Member Function Overriding, Member Function Overloading, Polymorphism |
|
Wed 9/19
|
3.2, 3.3 |
Member Function Overriding, Member Function Overloading, Polymorphism, Abstract Classes, Assignment |
Lab 2 |
Fri 9/21
|
3.3, 3.4, 3.5 |
Abstract Classes, Assignment, Casting in a Hierarchy, Multiple Inheritance, Namespaces and Visibility |
|
Mon 9/24
|
3.6, 4.1 |
A Shape Class Hierarchy, Template Classes and the Vector |
|
Wed 9/26
|
4.1, 4.2, 4.3 |
Template Classes and the Vector, Applications of vector, Implementation of a vector Class |
|
Fri 9/28
|
4.3, 4.4, 4.5 |
Implementation of a vector Class, The Copy Constructor, Assignment Operator, Destructor, Single-Linked List, Double-Linked List |
|
Mon 10/1
|
4.5, 4.6, 4.7 |
Single-Linked List, Double-Linked List, The List Class and the Iterator, Implementation of a Double-Linked List Class |
|
Wed 10/3
|
4.7, 4.8 |
Implementation of a Double-Linked List Class, Application of the List Class |
Lab 3 |
Fri 10/5
|
4.9, 4.10 |
Standard Library Containers, Standard Library Algorithms and Function Objects |
|
Mon 10/8
|
5.1, 5.2 |
The Stack Abstract Data Type, Stack Applications |
|
Wed 10/10
|
5.3, 5.4 |
Implementing a Stack, Additional Stack Applications |
|
Fri 10/12
|
5.4 |
Additional Stack Applications |
Lab 4 |
Mon 10/15
|
6.1, 6.2, 6.3 |
The Queue Abstract Data Type, Maintaining a Queue of Customers, Implementing the Queue Abstract Data Type |
|
Wed 10/17
|
6.3, 6.4 |
Implementing the Queue Abstract Data Type, The Deque |
|
Fri 10/19
|
6.4, 6.5, 7.1 |
The Deque, Simulating Waiting Lines Using Queues, Recursive Thinking |
|
Mon 10/22
|
7.1, 7.2 |
Recursive Thinking, Recursive Definitions of Mathematical Formulas |
Exam 1 Due |
Wed 10/24
|
7.2, 7.3 |
Recursive Definitions of Mathematical Formulas, Recursive Search |
Lab 5 |
Fri 10/26
|
7.3, 7.4, 7.5 |
Recursive Search, Problem Solving with Recursion, Backtracking |
|
Mon 10/29
|
7.5, 8.1 |
Backtracking, Tree Terminology and Applications |
Lab 6 |
Wed 10/31
|
8.1, 8.2, 8.3 |
Tree Terminology and Applications, Tree Traversals, Implementing a Binary Tree Class |
|
Fri 11/2
|
8.3, 8.4 |
Implementing a Binary Tree Class, Binary Search Trees (BST) |
|
Mon 11/5
|
8.5 |
Heaps, Priority Queues |
|
Wed 11/7
|
8.5, 8.6 |
Heaps, Priority Queues, Huffman Trees |
|
Fri 11/9
|
9.1, 9.2, 9.3 |
Associative Container Requirements, Maps, Multimaps, Hash Tables |
Lab 7 |
Mon 11/12
|
9.3 |
Hash Tables |
|
Wed 11/14
|
9.3, 9.4 |
Hash Tables, Implementing the Hash Table |
|
Fri 11/16
|
9.5, 9.6, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6 |
Implementation Considerations for the hash_map, Additional Applications of Maps, Using C++ Sorting Functions, Selection Sort, Bubble Sort, Insertion Sort, Comparison of Quadratic Sorts, Shell Sort: A Better Insertion Sort |
|
Mon 11/19
|
10.6 |
Shell Sort: A Better Insertion Sort |
|
Tue 11/20
|
10.7, 10.8, 10.9, 10.10 |
Merge Sort, Heapsort, Quicksort, Testing the Sort Algorithm |
Lab 8 |
Mon 11/26
|
11.1, 11.2 |
Tree Balance and Rotation, AVL Trees |
|
Wed 11/28
|
11.2, 11.3 |
AVL Trees, Red-Black Trees |
Lab 9 |
Fri 11/30
|
11.3, 11.4, 11.5 |
Red-Black Trees, 2-3 Trees, 2-3-4 Trees and B-Trees |
|
Mon 12/3
|
12.0 |
Review |
|
Wed 12/5
|
12.0 |
Review |
|
| Thu 12/6 | | | Lab 10 |
| Fri 12/14 | | | Exam 3 Due |