Office Hours (Zoom Link: https://buffalo.zoom.us/j/99848681099)


Lectures and Assignments (subject to change)

Mon Wed Fri Assignments/Recitations
1/22
No Class
1/24
Lec 01: Course Introduction
Slides
1/26
Lec 02: Java Refresher
Slides
Sample Code
No Recitation
AI Quiz assigned, due 2/4/24 @ 11:59PM [submission]
PA0 assigned, due 2/4/24 @ 11:59PM [writeup | windows help | submission]
WA1 assigned, due 2/4/24 @ 11:59PM [writeup | submission]
1/29
Lec 03: Math Refresher
Slides
1/31
Lec 04: Intro to Complexity
Slides
Sample Code
2/2
Lec 05: Asymptotic Analysis
Slides
Recitation Week #0: Welcome, Setup Assistance [slides]
AI Quiz due 2/4/24 @ 11:59PM [submission]
PA0 due 2/4/24 @ 11:59PM [submission]
WA1 due 2/4/24 @ 11:59PM [submission]
2/5
Lec 06: Proving Bounds
Slides
2/7
Lec 07: Runtime Analysis in Code
Slides
Sample Code
2/9
Lec 08: ADTs, Sequences
Slides
Recitation Week #1: Asymptotics [slides]
PA1 assigned [writeup]
PA1 Testing due 2/11/24 @ 11:59PM [submission]
2/12
Lec 9: LinkedList and Iterators
Slides
2/14
Lec 10: ArrayList and Amortized Runtime
Slides
2/16
Lec 11: Recursion
Slides
Recitation Week #2: Complexity and Sequences [slides]
PA1 Implementation due 2/18/24 @ 11:59PM [submission]
2/19
Lec 12: Divide and Conquer
Slides
2/21
Lec 13: Average Runtime
Slides
2/23
Lec 14: Stacks and Queues
Slides
Recitation Week #3: Amortized Runtime [slides]
WA2 assigned, due 2/25/24 @ 11:59PM [writeup | submission]
2/26
Lec 15: Stacks and Queues
Slides
2/28
Lec 16: Midterm #1 Review
Slides
3/1
Midterm #1
2022 Fall Midterm
2023 Spring Midterm
2023 Fall Midterm
Recitation Week #4: Review [slides]
3/4
Lec 17: Intro to Graphs
Slides
3/6
Lec 18: Graph ADTs and Edge Lists
Slides
3/8
Lec 19: Adjacency Lists and Matrices
Slides
Recitation Week #5: Recursion [slides]
WA3 assigned, due 3/10/24 @ 11:59PM [writeup | submission]
3/11
Lec 20: Graph Traversals
Slides
3/13
Lec 21: Shortest Path
Slides
Sample Code
3/15
Lec 22: Order Relations, Priority Queues
Slides
Recitation Week #6: Graphs [slides]
PA2 assigned [writeup | data]
PA2 Tests due 3/17/24 @ 11:59PM [submission]
3/18-3/22
No Class: Spring Break
3/25
Lec 23: Heaps
Slides
3/27
Lec 24: Shortest Path Revisited - Djikstra's
Slides
3/29
Lec 25: Binary Search Trees
Slides
Recitation Week #7: Graph Traversals/Heaps [slides]
PA2 Implementation due 3/31/24 @ 11:59PM
4/1
Lec 26: Tree Traversal and Rotations
Slides
4/3
Lec 27: Balanced Trees (AVL)
Slides
4/5
Lec 28: Balanced Trees (Red-Black)
Slides
Recitation Week #8: Trees [slides]
WA4 assigned, due 4/7/24 @ 11:59PM [writeup | submission]
4/8
No Class: Solar Eclipse
4/10
Lec 29: Midterm 2 Review
Slides
4/12
Midterm 2

2023 Fall Midterm #2
2023 Spring Midterm + Final
Recitation Week #9: Review [slides]
4/15
Lec 30: Intro to Hash Tables
Slides
4/17
Lec 31: Hash Tables
Slides
Sample Code
4/19
Lec 32: Hash Variants
Slides
No Recitation
PA3 assigned [writeup]
PA3 Tests due 4/21/24 @ 11:59PM [submission]
4/22
Lec 33: Hash Table Uses
Slides
4/24
Lec 34: Spatial Indexing (pt 1)
Slides
4/26
Lec 35: Spatial Indexing (pt 2)
Slides
Recitation Week #10: Hash Tables [slides]
PA3 Implementation due 4/28/24 @ 11:59PM [submission]
4/29
Lec 36: The Memory Hierarchy
Slides
5/1
Lec 37: B+ Trees
Slides
5/3
Lec 38: Bloom Filters
Slides
Recitation Week #11: Final Exam Review [slides]
WA5 assigned, due 5/7/24 @ 11:59PM [writeup | submission]
5/6
Lec 39: Recap/Review/Questions
Slides
5/8-5/10
No Class
5/13 @ 3:30
Final Exam
2023 Spring Final
2023 Fall Final