CSCI 4041: Algorithms and Data Structures
index.php

Schedule

This is an approximate schedule. It will be updated as the class progresses.

The in-class exercise at the beginning of each lecture is from a section listed in bold.
Each week's reading is divided roughly into what I expect to cover on Monday, and what I expect to cover on Wednesday.

Week
Monday Date
Topics
Lecture Materials
Assignments Due
Quizzes
1 Jan. 21
Introduction/Review
Lec1 slides
3.1
Exercise 0: Due 1/25

2 Jan. 28
Insertion Sort and Correctness
Lec2 slides
Lec3 slides

2.1
2.2
Written Assignment 1: Due 1/29
Prog. Assignment 1: Due 2/1
PA1.py Template

3 Feb. 4
Merge Sort and Quicksort
Lec4 slides
Lec5 slides

2.3
7.1, 7.2
Written Assignment 2: Due 2/5
Prog. Assignment 2: Due 2/8
PA2.py Template
Bubblesort Correctness Proof
Quiz 1: 2/4
Practice
Solutions
4 Feb. 11
Heapsort and Priority Queues
Lec6 slides
Lec7 slides
6.1, 6.2, 6.3
6.4, 6.5
Written Assignment 3: Due 2/12
Prog. Assignment 3: Due 2/15
PA3.py Template

5 Feb. 18
Counting Sort and Radix Sort
Lec8 slides
Lec9 slides
8.1, 8.2
8.3, 8.4
Written Assignment 4: Due 2/19
Prog. Assignment 4: Due 2/22
PA4.py Template
Quiz 2: 2/18
Practice
Solutions
6 Feb. 25
Hash Tables
Lec10 slides
Lec11 slides
11.1, 11.2, 11.3
11.4, 12.1
Written Assignment 5: Due 2/26
Prog. Assignment 5: Due 3/1
PA5.py Template

7 Mar. 4
Binary Search Trees
Lec12 slides
Lec13 slides
12.2
12.3
Written Assignment 6: Due 3/5
Prog. Assignment 6: Due 3/8
PA6.py Template
Quiz 3: 3/4
Practice
Solutions
8 Mar. 11
Balanced BSTs
Lec14 slides
Lec15 slides
13.1, 13.2, 13.3
18.1, 18.2
Written Assignment 7: Due 3/12
Prog. Assignment 7: Due 3/15
PA7.py Template

9 Mar. 18
Spring Break!

10 Mar. 25
Dynamic Programming
Lec16 slides
Lec17 slides
15.1, 15.3
15.2
Written. Assignment 8: Due 3/26
Prog. Assignment 8: Due 3/29
PA8.py Template
Quiz 4: 3/27
Practice
Solutions
11 Apr. 1
Greedy Algorithms
Lec18 slides
Lec19 slides
16.1, 16.2
16.3
Written. Assignment 9: Due 4/2
Prog. Assignment 9: Due 4/5
PA9.py Template

12 Apr. 8
Lec20 slides
Lec21 slides
22.1
22.2
Written. Assignment 10: Due 4/9
Prog. Assignment 10: Due 4/12
PA10.py template and test files
Quiz 5: 4/8
Practice
Solutions
13 Apr. 15
DFS and Shortest Paths
Lec22 slides
Lec23 slides
22.3, 22.4
24.1
Written. Assignment 11: Due 4/16
Prog. Assignment 11: Due 4/19
PA11.py Template

14 Apr. 22
Shortest Path Algorithms
Lec24 slides
Lec25 slides
24.3
25.1, 25.2
Written. Assignment 12: Due 4/23
Prog. Assignment 12: Due 4/26
PA12.py Template
Quiz 6: 4/22
Practice
Solutions
15 Apr. 29
Minimum Spanning Trees
Lec26 slides
Lec27 slides
23.1, 21.3
23.2
Written. Assignment 13: Due 4/30
Prog. Assignment 13: Due 5/3
PA13.py Template

16 May 6
Quiz 7 and Course Evals

Quiz 7: 5/6
Practice
Solutions
17 May 13
No Final