Project-related deadlines are shown in red. Note that that there will be no extensions for projects!
Part 1: Introduction to Computer Science and Programming (Weeks 1-8)
Week 1: Basic Recursive Design and the Command Line
- Tuesday: Introduction to Python, elements of basic recursive design
- Lists, basic principles, etc..
- Factorial, fibonacci
- Lab: Setup CS accounts
- Thursday: Principles of Basic Recursive Design
Week 2: Execution Principles
- Tuesday: Introduction to Complexity, Call Trees, Array and List Layout
- Work on Project 1
- Thursday: Timing example, preconditions, and postconditions
Week 3: Algorithm Specifications, Higher-Order Functions, and Graphs
- Tuesday: Fully-Specifying / Implementing Insertion Sort, Binary Search, and Lambdas
- Work on Project 2
- Thursday: Graphs and Introducing Project 3
Week 4: Kris Gone to ICFP
- Tuesday: No class, work on projects, Skype office-hours open
- Thursday: Class via Google Hangouts. Going through Project Code
- Project 3: Graphs, Colors, and Paths (Part 1)
Week 5: Variable and Mutable State
- Tuesday: A High-level model of memory, programs that change over time
- Thursday: Iteration via loops, relating iteration to recursion
- Project 4: Graphs, Colors, and Paths (Part 2)
Week 6: Exam Review, Classes Preview, and Exam
- Tuesday: Exam Review, Introduction to Classes
- Thursday: Exam 1
- Project 5: Project 5: Imperative Data and Stacks
Week 7: Fall Break!
Part 2: Data Structures Design and Implementation (Weeks 8-fin)
Week 8: More Classes, Linked Lists, and Stacks
- Tuesday: Classes Review and Livecoding Linked-Lists
- Slides on Object Orientation
- Thursday: Operations on Linked-Lists
- Project 6: Beginning HaverQuest, and Linked List implementation
- Slides on Linked Lists
- Example code on Linked Lists
Week 9: Binary Trees
Week 10: Balancing Trees, Hash Functions and Hash Tables
Week 11: Subclassing and Polymorphism
Week 12: Exam Review and Coding Exam / Exam 2 (No class)
Week 13: Tries
Week 14: HAMT and Course Review
Week 15: AI Competition / End of Class
- Tuesday: Kris gone, work on Project 8
- Thursday: In class party / AI competition
Final
- Take home..