Schedule
| Dates | Topic |
|---|---|
| Week 1 8/24 – 8/30 |
1. Imperative programming.
Welcome to LAI 676. Setting norms, building culture. Course overview. Setting up our computers. First steps in programming. Assigned:
|
| Week 2 8/31 – 9/6 |
2. Variables and functions.
Introduction to functions in two metaphors: decomposing tasks and learning new words. Getting comfortable with the Terminal; discussion of material intelligence. Assigned:
Due: |
| Week 3 9/7 – 9/13 |
3. Control structures and planning.
Writing more complex programs using control structures, introducing the Iteration lab. Program tracing and debugging. Using external libraries, reading documentation. Planning with drawings, pseudocode, and other diagrams: the Drawing project is assigned. Decomposition and code reuse. Types as a contract between functions. Assigned:
Due: |
| Week 4 9/14 – 9/20 |
4. Wrapping up Unit 1.
Typeface problem set assigned. Assigned:
Due: |
| Week 5 9/21 – 9/27 |
5. Functional programming.
Introduction to functional programming. Streams, files, and pipes, introducing the Pipes lab. Drawing project showcase. Assigned:
Due: |
| Week 6 9/28 – 10/4 |
6. Processing data.
Lists. Computer graphics as data transformations, introducing the Scatter lab. Assigned:
Due: |
| Week 7 10/5 – 10/11 |
7. Distributed computing.
Dictionaries. Interaction with remote APIs, distributed computing, introducing the Weather lab. Introducing the Argument project. Assigned:
Due: |
| Week 8 10/12 – 10/18 |
8. Data science tools.
Introduction to Pandas and Jupyter notebooks. Number Words problem set and Pokémon lab assigned. Comparing functional programming within a program (functions), on one computer (pipes), and across computers (APIs). Argument project proposal due. Assigned:
Due: |
| Week 9 10/19 – 10/25 |
9. Object-oriented programming.
Introduction to object-oriented programming. Classes and instances. Contrast with imperative and functional programming. Introducing the Dice lab. Assigned:
Due: |
| Week 10 10/26 – 11/1 |
10. Geometry.
Argument project showcase! Applying object-oriented programming to geometric ideas: points, vectors, and lines, introducing the Geometry lab. Having multiple ways of thinking about the same concept. Assigned:
Due: |
| Week 11 11/2 – 11/8 |
11. Strategy.
Modeling state, game strategy, and the study of algorithms, introducing the Tic Tac Toe lab. Assigned:
Due: |
| Week 12 11/9 – 11/15 |
12. Frameworks.
Design patterns, managing complexity through abstractions. Working within frameworks. Introduction to the Retro game framework. Assigned:
Due: |
| Week 13 11/16 – 11/22 |
13. Games project.
Game project assigned. A livecoding example. Assigned:
Due: |
| Week 14 11/23 – 11/29 |
14. No class (Thanksgiving break).
No class this week — enjoy the Thanksgiving break! |
| Week 15 11/30 – 12/6 |
15. Wrap-up.
Course wrap-up, games showcase. Next steps in computer science. Due: |