CS2501 - Data Structures and Algorithms I

This page contains the daily course schedule for the entire semester, as well as links to slides used in the lecture. There is also high-level information regarding which homework assignment is due each week.

Slides

Week Day # Day Date Module Topic Slides Lab Topic (Mon) HW1
Due Wed. at 11:59pm
HW2
Due Fri. at 11:59pm
Quiz Topic (Mon)
1 1 Wednesday 1/19/2022 Introduction to Course Course Introduction, Syllabus, etc. Floryan
Basit
2 Friday 1/21/2022 Basic Java 1 Hello World; Primitive Data Types; Using Simple Objects Floryan
Basit
2 3 Monday 1/24/2022 Writing Functions; Using Arrays Floryan
Basit
Basic Java 1
4 Wednesday 1/26/2022 Control-Flow Floryan
Basit
Basic Java 1 (Java Warmup - Power Function)
5 Friday 1/28/2022 Fizz-Buzz and other live coding problems Floryan
Basit
Extra: Python vs Java
3 6 Monday 1/31/2022 Basic Java 2 References Floryan
Basit
Basic Java 1
7 Wednesday 2/2/2022 Methods and Parameters Floryan
Basit
Basic Java 1 (Min and Max)
8 Friday 2/4/2022 Methods / Parameters Live Coding Problems No New Slides Basic Java 1 (Four Functions)
4 9 Monday 2/7/2022 Basic Java 3 Classes and Enums Floryan
Basit
Basic Java 2 Basic Java 1 (Quiz)
10 Wednesday 2/9/2022 Example Class Floryan
Basit
Basic Java 2 (Roomba)
11 Friday 2/11/2022 More Classes; How to use the Java API Floryan
Basit
Basic Java 2 (Roomba Report)
5 12 Monday 2/14/2022 Lists: Vectors What is a list, Interfaces, and Polymorphism. Floryan
Basit
Basic Java 3 Basic Java 2 (Quiz)
13 Wednesday 2/16/2022 Vectors Floryan
Basit
Extra: Object Types
Basic Java 3 (Blackjack)
14 Friday 2/18/2022 Java Generics (In the context of Vectors) Floryan
Basit
Basic Java 3 (BlackJack Report
6 15 Monday 2/21/2022 LLs / Stacks / Queues Linked Lists and Iterators Floryan
Basit
Vectors Basic Java 3 (Quiz)
16 Wednesday 2/23/2022 Stacks Floryan
Basit
Vectors (Coding)
17 Friday 2/25/2022 Queues Floryan
Basit
7 18 Monday 2/28/2022 Big-Oh / Recursion Big-Oh, Big-Omega, Big-Theta Floryan
Basit
LL, Stacks, Queues Vectors
Quiz Retakes Modules 1-3 (Choose 1)
19 Wednesday 3/2/2022 More Big-Oh example problems Floryan and
Basit 1
Basit 2; Basit 3
LL, Stacks Queues (Coding)
20 Friday 3/4/2022 Amortized Analysis Floryan and Basit LL, Stacks, Queues (Report)
Monday 3/7/2022 Enjoy the
Wednesday 3/9/2022 UVA SPRING BREAK Spring
Friday 3/11/2022 Break!
8 21 Monday 3/14/2022 Trees Recursion + Examples Floryan
Basit
Big-Oh LL, Stacks, Queues (Quiz)
22 Wednesday 3/16/2022 Introduction to Trees + Tree Traversals Floryan
Basit
Big-Oh (Coding)
23 Friday 3/18/2022 BST Structure, Find, Insert Floryan
Basit
Big-Oh (Report)
9 24 Monday 3/21/2022 BST FindMin/Max, Remove, and Runtime Analysis Floryan
Basit
Trees (BST) Big-Oh (Quiz)
25 Wednesday 3/23/2022 AVL Trees Floryan
Basit
Trees (BST Coding)
26 Friday 3/25/2022 Inheritance (Red-Black Trees if time) Floryan
Basit
10 27 Monday 3/28/2022 Inheritance and Red-Black Trees Floryan
Basit
Trees (AVL) Quiz Retakes Modules 4-6 (Choose 1)
28 Wednesday 3/30/2022 Basic Sorts Introduction to Sorting, Comparable, compareTo, and Bubble Sort Floryan
Basit ~ Bubble Sort
Trees (AVL Coding)
29 Friday 4/1/2022 Insertion Sort, Lower-Bounds Adjacent Proof Floryan
Basit
Trees (Report)
11 30 Monday 4/4/2022 Advanced Sorts Mergesort Floryan
Basit ~ Mergesort
Basic Sorts Trees (Quiz)
31 Wednesday 4/6/2022 Quicksort Floryan
Basit
Basic Sorts (Coding)
32 Friday 4/8/2022 Lower-Bound Proof + Other Sorting Methods Floryan
Basit (links)
12 33 Monday 4/11/2022 Hash Tables ADTs So Far / Maps and Sets in Java Floryan
Basit
Advanced Sorts Basic Sorts (Quiz)
34 Wednesday 4/13/2022 Hash Tables + Separate Chaining Floryan
Basit
Advanced Sorts (Coding)
35 Friday 4/15/2022 Open Addressing + Analysis Floryan
Basit
Advanced Sorts (Report)
13 36 Monday 4/18/2022 Priority Queues Priority Queues + Binary Heap Structure Floryan
Basit
Hash Tables Advanced Sorts (Quiz)
37 Wednesday 4/20/2022 Binary Heap Operations (Insert, DeleteMin, findMin) Floryan
Basit
Hash Tables (Coding)
38 Friday 4/22/2022 Heapsort Floryan
Basit
Hash Tables (Report)
14 39 Monday 4/25/2022 Concurrency Basic Concurrency and Thread Example Floryan
Basit
Priority Queues Hash Tables (Quiz)
40 Wednesday 4/27/2022 Exception Handling Floryan
Basit
Priority Queues (Coding)
41 Friday 4/29/2022 Locks, Deadlocks Floryan
Basit
Priority Queues (Report)
15 42 Monday 5/2/2022 Course Conclusion Floryan
Basit
Concurrency Concurrency (Coding) Priority Queues
Retakes Modules 7-10 (Choose 2)

Other