Daily Schedule
Unit 1: Functional Programming and Scheme
Mar. 30: Lesson 1 - Introduction to Programming LanguagesApr. 01: Lesson 2 - Scheme Lists and Functions
Apr. 03: Lesson 3 - Recursive Scheme Procedures
Apr. 06: Lesson 4 - Higher-Order Functions
Apr. 08: Lesson 5 - Functions That Return Functions
Unit 2: Imperative Programming and C
Apr. 10: Lesson 6 - Side EffectsApr. 13: Lesson 7 - Memory Models
Apr. 15: Lesson 8 - Pointers and Memory
Apr. 17: Lesson 9 - Arrays and Strings
Apr. 20: Lesson 10 - Linked Lists
Apr. 22: Lesson 11 - Memory issues in C
Apr. 24: Lesson 12 - Exam Day #1
Unit 3: Tokenization and Parsing
Apr. 27: Lesson 13 - Language TranslationApr. 29: Lesson 14 - Grammars and Tokenization
May. 01: Lesson 15 - Tokenization and Parsing
May. 06: Lesson 16 - Parsing
Unit 4: Evaluating Scheme
May. 08: Lesson 17 - ScopeMay. 11: Lesson 18 - Frames and if/let
May. 13: Lesson 19 - Closures and lambda
May. 15: Lesson 20 - Closures, continued
May. 18: Lesson 21 - set! and Tail Recursion
May. 20: Lesson 22 - Tail Recursion, continued
May. 22: Lesson 23 - Exam Day #2
Unit 5: Additional Topics
May. 25: Lesson 24 - Function Pointers and TypesMay. 27: Lesson 25 - Types, continued
May. 29: Lesson 26 - Project Work Day
Jun. 01: Lesson 27 - GPU Programming
Jun. 03: Lesson 28 - Looking Ahead
Quizzes and Exams
In place of large, cumulative exams, you will have the opportunity to demonstrate your knowledge 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 attempt to satisfy 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 it will contain every Quiz Learning Objective you have not yet satisfactorily demonstrated.
- Exam Day #1: Friday, April 24th (in class)
- Exam Day #2: Friday, May 22nd (in class)
- Final: Saturday, June 6th (3:30pm-6:00pm)