Schedule and Lecture Notes

Here is this semester's tentative schedule; we will update it as the semester progresses.

Please note that lecture notes are provided as a supplement, and are NOT a substitute for attending lecture. In particular, these are not guaranteed, so expect technical difficulties to prevent them from being posted at least a few times in the semester, and plan accordingly to either take notes or get them from a friend if necessary.

DateTopicReadingLecture NotesCode or Lab assignmentTuesday, Jan 16 Syllabus, intro to C++ Transition guide, sections 1-3 Lecture Notes Wednesday, Jan 17 Intro to C++: compiling, data types, loops, functions Transition guide Lecture Notes Friday, Jan 19 Intro to C++: Unix tools, functions, arrays, I/O Transition guide Lecture Notes Monday, Jan 22 Intro to C++: I/O, scope, classes Transition guide Lecture Notes Tuesday, Jan 23 Lab 2 day Lab 2 Wednesday, Jan 24 Intro to C++: classes Transition guide Lecture Notes Friday, Jan 26 Intro to C++: Variables types Transition guide Lecture Notes Monday, Jan 29 Intro to C++: Housekeeping functions Transition guide Lecture Notes Tuesday, Jan 30 Lab 3 day Lab 3 Wednesday, Jan 31 Final bits of C++

Singly linked listsTransition guide Lecture Notes SLinkedList.h Friday, Feb. 1 Singly linked lists Lecture Notes SLinkedList.h

SLinkedList.cpp

testSLL.cppMonday, Feb. 5 Guest Lecture: Stacks LinkedStack.h

ArrayStack.hTuesday, Feb. 6 Guest instructor: Lab 4 Lab 4 Wednesday, Feb. 7 Recap of housekeeping

Intro to big-oLecture notes Friday, Feb. 9 Big-O and runtimes Lecture Notes Monday, Feb. 12 Queues Lecture Notes LinkedQueue.h

ArrayQueue.hTuesday, Feb. 13 Lab 5 Lab 5 Wednesday, Feb. 14 Queues Lecture Notes LinkedQueue.h

ArrayQueue.h

testQ.cppFriday, Feb. 16 Vectors Lecture Notes Vector.h Monday, Feb. 19 Review session Tuesday, Feb. 20 Midterm 1 Wednesday, Feb. 21 Vectors Lecture Notes Vector.h

testVector.cppWednesday, Feb. 23 Vectors: Asymptotic analysis Lecture Notes Vector.h

testVector.cppMonday, Feb. 26 Lists List.h

testList.cppTuesday, Feb. 27 Lab 6 Lab 6 Wednesday, Feb. 28 Lists Lecture Notes List.h

testList.cppFriday, March 2 Sorting Lecture Notes Monday, March 5 Sorting Nice visualization Lecture Notes Tuesday, March 6 Lab 7 Lab 7 Wednesday, March 7 Intro to trees

Priority QueuesLecture Notes Friday, March 9 Priority Queues (and heaps) Lecture Notes Heap.h Monday, March 19 Binary Search Trees Lecture Notes Tuesday, March 20 Lab 8 Lab 8 Wednesday, March 21 Tree implementation Lecture Notes BinaryTree.h

testBinaryTree.cppFriday, March 23 BST implementaion Lecture Notes BinarySearchTree.h

testBST.cppMonday, March 26 AVL Trees Lecture Notes Tuesday, March 27 Work day in class Wednesday, March 28 AVL Tree implementation Lecture Notes BinaryTree.h

AVLTree.h

testAVL.cppTuesday, April 3 AVL Tree implementation Lecture Notes AVLTree.h

testAVL.cppWednesday, April 4 AVL Tree analysis Lecture Notes Friday, April 6 Treaps Additional reference Lecture Notes Monday, April 9 Treaps Lecture Notes Tuesday, April 10 Lab: Tree grafting part 1 Wednesday, April 11 Work day Friday, April 13 Review session for midterm 2 Monday, April 16 Midterm 2 Tuesday, April 17 Lab: Tree grafting part 2 Wednesday, April 18 Hash maps Lecture Notes Friday, April 20 Hash maps Lecture Notes Monday and Wednesday

April 23 and 25Huffman trees and codes Friday, April 27 Hash maps Lecture Notes Monday, April 30 Graphs: representations Reading Lecture Notes Tuesday, May 1 Graphs: traversals Reading Lecture Notes Wednesday, May 2 Graphs: topological sort Reading Lecture Notes Friday, May 4 Data structures recap Cool overview

And another on tradeoffsLecture Notes