Course Home | Course Policies | Homework | Lab Open Hours | Labs | Schedule & Lecture Notes

CSCI 2100: Data Structures, Fall 2017
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.

Date Topic Reading Lecture/Lab Notes Additional Codes
Monday, 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-Exam includes 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-Exam includes 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