Daily Schedule

Unit 1: Course and Kotlin Foundations

Mar. 31: Lesson 1 - Introduction to Kotlin
Apr. 02: Lesson 2 - Kotlin Control Flow
Apr. 04: Lesson 3 - Kotlin Functions and Classes
Apr. 07: Lesson 4 - Object-Oriented Design
Apr. 09: Lesson 5 - Interfaces
Apr. 11: Lesson 6 - Computational Complexity
Apr. 14: Lesson 7 - Big-O, Formally

Unit 2: Linear ADTs

Apr. 16: Lesson 8 - Stack ADT
Apr. 18: Lesson 9 - Linked Lists
Apr. 21: Lesson 10 - Queue ADT
Apr. 23: Lesson 11 - Queue and list implementations
Apr. 25: Lesson 12 - Exam Day #1
Apr. 28: Lesson 13 - More General Linked Lists

Unit 3: Set ADT and Hashing

Apr. 30: Lesson 14 - Map/Set ADTs and Hashing
May. 02: Lesson 15 - Hashing Review

Unit 4: Recursion and Trees

May. 07: Lesson 16 - Recursion
May. 09: Lesson 17 - Recursion and Trees
May. 12: Lesson 18 - Binary Search Trees
May. 14: Lesson 19 - BSTs and Prefix Trees
May. 30: Lesson 26 - Self-Balancing Trees

Unit 5: Sorting, Heaps, and Priority Queues

May. 16: Lesson 20 - Mergesort and Quicksort
May. 19: Lesson 21 - Heaps
May. 21: Lesson 22 - Heapsort and Priority Queues
May. 23: Lesson 23 - Exam Day #2

Unit 6: Graphs

May. 26: Lesson 24 - Graph ADT and Shortest Paths
May. 28: Lesson 25 - Adjacency Matrices and DFS

Unit 7: Extra Topics

Jun. 02: Lesson 27 - Priority Queues
Jun. 04: Lesson 28 - Huffman Coding


Labs

Lab 1: Kotlin Scavenger Hunt
Lab 2: Interfaces
Lab 3: Doubly Linked Lists
Lab 4: Recursive Queue


Quizzes and Exams

In place of large, cumulative exams, you will have the opportunity to demonstrate your mastery of the Quiz Learning Objectives through a series of several quizzes. Every four weeks, there will also be an “Exam Day” when you can take new versions of old quiz questions to demonstrate mastery of any missing Learning Objectives.

The final exam, which is scheduled according to the Carleton College final exam schedule, will be similar to Exam Days, except that there will be a new quiz covering the last week of class.

  • Exam Day #1: Friday, April 25th (in class)
  • Exam Day #2: Friday, May 23rd (in class)
  • Final: Saturday, June 7th (8:30am-11:00am)