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
Jul 6 (Mon) Midterm exam (Homework 3 due)
Jul 8 (Wed) Splay trees Lab 5
Jul 13 (Mon) Merge Sort and Quick Sort 
Jul 15 (Wed) Heaps, part 1 (Homework 4 due) Lab 6
Jul 20 (Mon) Heaps, part 2, Graphs, part 1
Jul 22 (Wed) Graphs, part 2 Lab 7
Jul 27 (Mon) Hashing (Homework 5 due)
Jul 29 (Wed) Tries and suffix trees Lab 8
Aug 3 (Mon) Final Review
Aug 5 (Wed) Final exam (Homework 6 due)