CS 241 - Data Structures and Algorithms
Spring 2024
Administrivia
- Instructor: Phillip Kirlin
- Office hours: Mondays 10-11, Tuesdays 12:30-2, Wednesdays 11-12, Thursdays 2-3:30. Also available by appointment.
- Canvas page: Use for grades and online assignment submissions.
- Syllabus and additional policies.
Resources
Calendar
- Thu, Jan 11
- Introduction
- Tue, Jan 16
- Snow day
- Thu, Jan 18
- Java review (Zoom class)
Project 1, due Jan 30
9:30 recording | 9:30 whiteboard | 9:30 code
11:00 recording | 11:00 whiteboard | 11:00 code - Tue, Jan 23
- List ADT (Zoom class)
Homework 1, due Feb 1
9:30 recording | 9:30 whiteboard | 9:30 code
11:00 recording | 11:00 whiteboard | 11:00 code
Reading (Lists and ArrayLists) - Thu, Jan 25
- Finish ArrayList, start big-oh
9:30 recording | 9:30 whiteboard | 9:30 code | 9:30 slides
11:00 recording | 11:00 whiteboard | 11:00 code | 11:00 slides - Tue, Jan 31
- Big-oh
Slides
Reading - Thu, Feb 1
- Recursive big-oh, begin linked lists
Recursive big-oh handout
Reading (Singly-linked lists)
Project 2, due Feb 13 - Tue, Feb 6
- Singly-linked lists
- Thu, Feb 8
- Doubly-linked lists
Reading (Doubly-linked lists)
Homework 2, due Feb 15 on paper - Tue, Feb 13
- Stacks, queues, quadratic sorting
Reading (Quadratic sorting) - Thu, Feb 15
- Finish quadrating sorting
Project 3, due Mar 4 - Tue, Feb 20
- Midterm I
- Thu, Feb 22
- Set/Map abstract data types
Reading (Set/Map ADTs) - Tue, Feb 27
- Trees and traversals
Reading (General trees) - Thu, Feb 29
- Binary search trees
Reading (Binary search trees) - Tue, Mar 5
- Binary search trees
- Thu, Mar 7
- Hashing
Reading (Hashing)
Project 4, due Mar 26
Homework 3, due Mar 21 on paper - Tue, Mar 12
- Spring break
- Thu, Mar 14
- Spring break
- Tue, Mar 19
- Hashing
- Thu, Mar 21
- Mergesort
Reading (Mergesort) - Tue, Mar 26
- Quicksort
Reading (Quicksort)
Homework 4, due Apr 2 on paper - Thu, Mar 28
- Easter break
- Tue, Apr 2
- Review/catchup
- Thu, Apr 4
- Midterm II
Project 5, due Apr 16 - Tue, Apr 9
- Graphs
Reading (Graphs) - Thu, Apr 11
- Graph implementations
- Tue, Apr 16
- Dijkstra’s algorithm
Reading (Dijkstra’s algorithm) - Thu, Apr 18
- Breadth-first search, depth-first search
- Tue, Apr 23
- Priority queues, heaps
- Thu, Apr 25
- Wrapup