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/Lab NotesAdditional CodesMonday, Aug 28 Syllabus, intro to C++ Transition guide, sections 1-3 Lecture Notes:Week1 Tuesday, Aug 29 Lab01:Compiling and running a C++ program Transition guide 1-3 Lab01 Wednesday, Aug 30 Intro to C++: compiling, data types, loops, functions Transition guide 4-5 Lecture Notes:Week1 Friday, Sep 1 Intro to C++: Unix tools, functions, arrays, strings Transition guide 5-6 Lecture Notes:Week1 Monday, Sep 4 No Class (Labor Day)Tuesday, Sep 5 Classes Transition guide 7 Lecture Notes:Week2 Wednesday, Sep 6 Lab2: Copier Reduction Transition guid 1-7 Lab2 Friday, Sep 8 Object models and memory management Transition guide 8 Lecture Note:Week2 Monday, Sep 11 Reference, pointer, and more Transition guide 7, 8 Lecture Notes:Week3 Tuesday, Sep 12 Lab3: Speed Limit Lab3 Wednesday, Sep 13 Classes cont'd Transition guide 7, 8 Lecture Notes:Week3 Friday, Sep 15 Classes cont'd, Separate header and implementation, object demo Transition guide 7, 8 Lecture Notes:Week3 objectdemo Monday, Sep 18 Stack ADT using Array, Throwing an Exception Ch. 5.1.1-5.1.4, Transition guide 11 Lecture Notes:Week4 Tuesday, Sep 19 Lab4: Doubles Lab4 Wednesday, Sep 20 Git, Copy constuctor, Templates Ch. 5.1.1-5.1.4, Transition guide 11 Lecture Notes:Week4 Friday, Sep 22 Git, Copy constuctor, Templates again Ch. 5.1.1-5.1.4, Transition guide 11 Lecture Notes:Week4 Monday, Sep 25 Queue ADT using Array Ch. 5.2 Lecture Notes:Week5 Tuesday, Sep 26 Constuctor, destructor, copy constructor, assignment operator Ch. 1.5 Lecture Notes:Week5 No lab today Wednesday, Sep 27 Template queue implementation using array Ch. 5.2 Lecture Notes:Week5 ArrayQueue.h ArrayQueue.tcc ArrayQueueTest.cpp Friday, Sep 29 Pointer recap at last! Transition guide 7, 8, and Book Chap 1 Lecture Notes:Week5 Git week5 Monday, Oct 2 Analysis of Algorithms and Asymptotoics Ch. 4 Lecture Notes:Week6 Tuesday, Oct 3 Recap HWs for midterm, Git one-to-one help Transition Guide, Ch. 1. 2, 4, 5.1, 5.2 Lecture Notes:Week6 No lab today Wednesday, Oct 4 Introduction to Singly-Linked Lists Ch. 3.2 Lecture Notes:Week6 Friday, Oct 6 LinkedStack implementation Ch. 5.1.5 Lecture Notes:Week6 Monday, Oct 9 First Midterm-Examincludes material through Oct 2nd midterm1.pdf, midterm1_sol.pdf Tuesday, Oct 10 Lab5: Tanning Salon Lab5 Wednesday, Oct 11 Asymptotic Analysis, Circularly-Linked Lists Ch. 3.4 Lecture Notes:Week7 Friday, Oct 13 Circularly-Linked Lists, Implementing a Queue using a Circularly Linked Lists Ch. 3.3, Ch. 3.4, Ch. 5.2.5 Lecture Notes:Week7 Monday, Oct 16 How to debug using GDB, Doubly Linked List Ch. 3.3 Lecture Notes:Week8 Tuesday, Oct 17 STL Vector, Iterator Ch. 6.1, 6.2 Lecture Notes:Week8 Wednesday, Oct 18 Lab6: Symmetric Order Lab6 Friday, Oct 20 Extendable Array Vector Implementation Ch. 6.1 Lecture Notes:Week8 ArrayVector code Wednesday, Oct 25 Amortized Analysis, Double-Ended Queue, List Ch. 6.1, 5.3, 6.2 Lecture Notes:Week9 amortized_datasheet.pdf Friday, Oct 27 STL List Ch. 6.1, 5.3, 6.2 Lecture Notes:Week9 Monday, Oct 30 Simple Sorting Algorithms Ch. 3.1.2, 8.2.2. Lecture Notes:Week10 Tuesday, Oct 31 Lab7: Overflowing Bookshelf Lab7 Wednesday, Nov 1 Simple Sorting Algorithms Ch. 3.1.2, 8.2.2. Lecture Notes:Week10 Friday, Nov 3 Merge and Quick Sorting Algorithms Ch. 11.1, 11.2 Lecture Notes:Week10 Monday, Nov 6 Recursive Algorithms Ch. 3.5 Lecture Notes:Week11 Tuesday, Nov 7 Recursive Algorithm, Recursive Binary Search Ch. 9.3.1 Lecture Notes:Week11 Wednesday, Nov 8 Lab8: Anagrams by Stack Lab8 Friday, Nov 10 Second Midterm-Examincludes material through Nov 7th midterm2.pdf, midterm2_sol.pdf Monday, Nov 13 Introduction to Trees Ch. 7.1 Dr. Goldwasser Tuesday, Nov 14 Lab9: Tree Grafting (Part 1) Lab9 Wednesday, Nov 15 Basic Algorithms on Trees Ch. 7.1, 7.2 Dr. Goldwasser Friday, Nov 17 Binary Tree Ch. 7.3 Lecture Notes:Week12 Monday, Nov 20 Binary Tree Implementation Ch. 7.3 Lecture Notes:Week13 Tuesday, Nov 21 Binary Tree Traversal Ch. 7.1, 7.2, 73 Lecture Notes:Week13 Monday, Nov 27 Tree recap, Priority Queue Ch. 7, Ch. 8.1 Lecture Notes:Week14 Tuesday, Nov 28 Lab10: List Priority Queue Lab10 Wednesday, Nov 29 Priority Queue and Heap Ch. 8.2, 8.3 Lecture Notes:Week14 Friday, Dec 1 Heap-Sort Implementation Ch. 8.3, slides Lecture Notes:Week14 Monday, Dec 4 Map, Set, Intro of Hash Ch. 9.1, 9.2, slides Lecture Notes:Week15 Tuesday, Dec 5 Lab11: Tree Grafting 2 Lab11 Wednesday, Dec 6 Hash Map Implementation Ch. 9 Lecture Notes:Week15 Friday, Dec 8 AVL Tree Ch. 10.2 Lecture Notes:Week15