Time: Mon and Wed, 7pm9pm; Lectures: Halligan Hall 108; Lab: Halligan Hall 116 (Wed 7:30pm – 8:45pm); Note: The following schedule is tentative and can be subject to change depending on specific circumstances.
Date  Topic  Lab  Suggested Reading 
May 20 (Wed)  Introduction, The world of C++, part 1 
1. Code Notes: Intro to C++, part 1 2. Code Nodes: Intro to C++, part 2 3. Code Notes: Intro to C++, part 3 4. The World of C++, part 1 5. C++ classes and objects 

May 27 (Wed)  The world of C++, part 2  Lab 0 
1. Pointers and Arrays 2. C++ streams 3. The World of C++, part 2 4. Pointers in C++ 5. Quick Emacs Reference 6. Debugging in Emacs 
Jun 1 (Mon)  The world of C++, part 3 
1. Inheritance in C++ 2. C++ Inheritance 3. Review questions  C++ 4. Code Notes: Intro to C++, part 4 5. Code Notes: Intro to smart pointers 

Jun 3 (Wed)  The world of C++, part 4  Lab 1 
1. Solution to Lab 0 2. Lab 1 
Jun 8 (Mon)  Linked Lists, part 1 
1. Linked lists  Pat Morin 2. Section 4.1.25 from Shaffer's book 3. Code Notes: Singly Linked List 

Jun 10 (Wed)  Linked Lists, part 2  Lab 2 
1. Solution to Lab 1 2. Lab 2 
Jun 15 (Mon)  Stacks, Queues, Recursions, part 1 (Homework 1 due) 
1. Stacks: Weiss section 3.6 2. Queues: Weiss section 3.7 3. Recursion: Weiss section 1.3 4. Code Notes: Stack 5. Code Notes: Queue 6. Exercises on Linkedlists/stacks 7. Solution to Homework 1 

Jun 17 (Wed)  Recursions, part 2  Lab 3 
1. Solution to Lab 2 2. Lab 3 3. Exercises on Recursion 
Jun 22 (Mon)  Complexity of Algorithms; Introduction to searching and sorting 
1. Growth of functions 2. Sorting: Weiss section 7.12 3. Sorting: Shaffer section 7.12 

Jun 24 (Wed)  Complexity Analysis (Homework 2 due on Jun 26)  Lab 4 
1. Solution to Lab 3 2. Lab 4 3. Solution to Homework 2 
Jun 29 (Mon)  More on Sorting; Binary Search Trees 
1. Sorting: Weiss section 7.12 2. Trees: Weiss section 4.13 3. Trees: Shaffer section 5.14 4. Exercises on complexity and BSTs 

Jul 1 (Wed)  Midterm Review  Review 
1. Midterm review questions (discussed) 
Jul 6 (Mon)  Midterm exam (Homework 3 due)  Exam 
1. Midterm questions 2. Midterm solution 3. Solution to Homework 3 
Jul 8 (Wed)  Splay trees  Lab 5 
1. Solution to Lab 4 2. Lab 5 3. Splay trees: Shaffer section 13.2.2 
Jul 13 (Mon)  Merge Sort and Quick Sort; Priority queues (Heaps) 
1. Shaffer section 7.46 2. Sorting: Weiss section 7.57 3. Mergesort and Quicksort 

Jul 15 (Wed)  Heaps, part 2  Lab 6 
1. Solution to Lab 5 2. Lab 6 
Jul 20 (Mon)  Graphs, part 1 
1. Trees and Graphs 2. Graphs intro: Shaffer section 11.13 3. Weiss section 9.13 

Jul 22 (Wed)  Graphs, part 2  Lab 7 
1. Graph algo: Shaffer section 11.4 2. Solution to Lab 6 3. Lab 7 
Jul 27 (Mon)  Hashing (Homework 5 due) 
1. Shaffer section 9.4 2. Weiss section 5.14 

Jul 29 (Wed)  Tries and suffix trees  Lab 8 
1. Solution to Lab 7 2. Lab 8 3. Weiss section 12.4 
Aug 3 (Mon)  Final Review  Review 
1. Final review questions 2. Solution to Lab 8 
Aug 5 (Wed)  Final exam  Exam  
Aug 7 (Wed)  Homework 4 /Homework 6 due 