CS 201: Data Structures Schedule (Spring 2025)

Adapted from materials by Profs. Dave Musicant and Anya Vostinar

Important Notes


  • You can find a lot of important information, such as student drop-in hours (aka office hours) and course grade determination, on the syllabus.
  • Class topics and homework information may change over the course of the term. Please treat this schedule as a rough guide for what we'll be focusing on and expect changes as the term progresses.
  • Before Class: Complete the readings and/or preparation activities. Class is structured expecting that you have completed these tasks.
  • Restricted Access: Most of the links will require a Carleton login to view. If you're external to Carleton and want access, just shoot me an email.
  • Revisions: If you are submitting a revision for a deliverable, submit this form to let me and the course staff know where to look for changes.

Date Assignments Due In-Class Activities Assignments Released
Week 1 Intro to Kotlin
Mon 3/31 Intro to Data Structures Prep Slides
Software Install Lab
Wed 4/2 Kotlin Basics Prep Slides
Fri 4/4 Classes and Null Safety Prep Slides Deliverable: Lunar Lander
Week 2 OOP, Runtime, and Real-World Analyses
Mon 4/7 Constructors Prep Slides
Wed 4/9 Inheritance and Interfaces Prep
Deliverable: Lunar Lander Part 1 Due 10pm
Slides
Fri 4/11 Runtime and Real-World Analyses Prep
Deliverable: Lunar Lander Part 2 Due 10pm
Slides Deliverable: Runtime and Real-World Analyses
Week 3 Stacks
Mon 4/14 Stacks Prep
Deliverable: Runtime and Real-World Analyses due 10pm
Slides Deliverable: Maze Solver 1
Wed 4/16 Stack Algorithms and Backtracking Prep Slides Deliverable: Maze Solver 2
Fri 4/18 Exam 1
Topics: Kotlin, OOP, Run-Time and Real-World Analyses
Week 4 Linked Lists and Queues
Mon 4/21 Linked Lists Prep
Deliverable: Maze Solver 1 Due 10pm
Slides Deliverable: Card Operations 1
Wed 4/23 Queues Prep Slides Deliverable: Card Operations 2
Fri 4/25 Doubly-linked Lists and Deques
Deliverable: Maze Solver 2 Due 10pm
Slides
Week 5 Hashing
Mon 4/28 Hashing Part 1 Prep
Deliverable: Card Operations Part 1 Due 10pm
Slides Deliverable: Cuckoo Hashing 1
Wed 4/30 Hashing Part 2 Prep Slides Deliverable: Cuckoo Hashing 2
Fri 5/2 Exam 2
Topics: Stacks, Linked Lists, and Queues
Week 6 Recursion
Mon 5/5 Mid-Term Break!
Wed 5/7 Recursion Part 1 Prep Slides
Fri 5/9 Recursion Part 2 Prep
Deliverable: Cuckoo Hashing 1 Due 10pm
Slides
Week 7 Trees
Mon 5/12 Trees Prep
Deliverable: Cuckoo Hashing 2 Due 10pm
Slides Deliverable: Word Counter 1
Wed 5/14 Binary Search Trees Prep Slides Deliverable: Word Counter 2
Fri 5/16 Exam 3
Topics: Hashing and Recursion
Option to Revise Exams 1-2
Week 8 Priority Queues and Heaps
Mon 5/19 Tries Prep Slides
Wed 5/21 Priority Queues and Heaps Slides
Fri 5/23 Mergesort Prep
Deliverable: Word Counter 1 Due 10pm
Slides
Week 9 Sorting and Graphs
Mon 5/26 Quicksort and Heapsort Prep
Deliverable: Word Counter 2 Due 10pm
Slides
Wed 5/28 Graphs Prep Slides Deliverable: IMDB Graph
Fri 5/30 Graph Search Prep Slides
Week 10 Course Review
Mon 6/2 Course Review Prep
Deliverable: IMDB Graph Due 10pm
Slides
Wed 6/4 No Prep! Slides
Mon 6/9
8:30-11am
Exam 4
Topics: Trees, Priority Queues, Heaps, Sorting, and Graphs
Option to Revise Exams 1-3