Schedule

Time: Mon and Wed, 7pm-9pm; 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.2-5 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 Linked-lists/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.1-2
3. Sorting: Shaffer section 7.1-2
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.1-2
2. Trees: Weiss section 4.1-3
3. Trees: Shaffer section 5.1-4
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.4-6
2. Sorting: Weiss section 7.5-7
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.1-3
3. Weiss section 9.1-3
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.1-4
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