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

CS 2100: Data Structures, Spring 2018
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 Notes Code or Lab assignment
Tuesday, 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 lists
Transition guide Lecture Notes SLinkedList.h
Friday, Feb. 1 Singly linked lists Lecture Notes SLinkedList.h
SLinkedList.cpp
testSLL.cpp
Monday, Feb. 5 Guest Lecture: Stacks LinkedStack.h
ArrayStack.h
Tuesday, Feb. 6 Guest instructor: Lab 4 Lab 4
Wednesday, Feb. 7 Recap of housekeeping
Intro to big-o
Lecture notes
Friday, Feb. 9 Big-O and runtimes Lecture Notes
Monday, Feb. 12 Queues Lecture Notes LinkedQueue.h
ArrayQueue.h
Tuesday, Feb. 13 Lab 5 Lab 5
Wednesday, Feb. 14 Queues Lecture Notes LinkedQueue.h
ArrayQueue.h
testQ.cpp
Friday, 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.cpp
Wednesday, Feb. 23 Vectors: Asymptotic analysis Lecture Notes Vector.h
testVector.cpp
Monday, Feb. 26 Lists List.h
testList.cpp
Tuesday, Feb. 27 Lab 6 Lab 6
Wednesday, Feb. 28 Lists Lecture Notes List.h
testList.cpp
Friday, 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 Queues
Lecture 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.cpp
Friday, March 23 BST implementaion Lecture Notes BinarySearchTree.h
testBST.cpp
Monday, 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.cpp
Tuesday, April 3 AVL Tree implementation Lecture Notes AVLTree.h
testAVL.cpp
Wednesday, 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 25
Huffman 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 tradeoffs
Lecture Notes