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. Program tracing and debugging. Using external libraries, reading documentation. Planning with drawings, pseudocode, and other diagrams. Decomposition and code reuse. Types as a contract between functions. Drawing project proposal due. Assigned:
Due: |
| Week 4 9/14 – 9/20 |
4. Functional programming.
Introduction to functional programming. Streams, files, and pipes. Wrapping up Unit 1: Typeface problem set and Drawing project due. Assigned:
Due: |
| Week 5 9/21 – 9/27 |
5. Processing data.
Lists. Computer graphics as data transformations. Drawing project showcase. Assigned:
Due: |
| Week 6 9/28 – 10/4 |
6. Distributed computing.
Dictionaries. Interaction with remote APIs, distributed computing. Comparing functional programming within a program (functions), on one computer (pipes), and across computers (APIs). Assigned:
Due: |
| Week 7 10/5 – 10/11 |
7. Data science tools.
Introduction to Pandas and Jupyter notebooks. Introducing the Argument project. Assigned:
Due: |
| Week 8 10/12 – 10/18 |
8. Debugging and testing.
Work on the Number Words problem set and the Pokémon lab. 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. Argument project showcase. Introducing the Dice lab. Assigned:
Due: |
| Week 10 10/26 – 11/1 |
10. Geometry.
Applying object-oriented programming to geometric ideas: points, vectors, and lines. 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. Dice lab wrap-up; 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. Game project proposal due. Assigned:
Due: |
| Week 13 11/16 – 11/22 |
13. Games project.
Working on our game projects. 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: |