Schedule
Week | Date | Topic |
---|---|---|
1 | 8/28 |
1. Imperative programming.
Welcome to LAI 676. Setting norms, building culture. Course overview. Setting up our computers. First steps in programming. Due: 1.1. Turtle lab |
2 | 9/4 |
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. |
3 | 9/11 |
3. Control structures.
Writing more complex programs using control structures. Program tracing and debugging. Using external libraries, reading documentation. Introduction to Superturtle. Due: 1.4 Iteration lab Assigned: 1.6 Drawing project |
4 | 9/18 |
4. Planning.
Planning with drawings, pseudocode, and other diagrams. Decomposition and code reuse. Types as contract between functions. Discuss statically- and dynamically-typed languages. Drawing project proposal due. |
5 | 9/25 |
5. Functional programming.
Introduction to functional programming. Streams, files, and pipes. Due: 2.1 Pipes lab |
6 | 10/2 |
6. Processing data.
Lists. Computer graphics as data transformations. Drawing project showcase. |
7 | 10/9 |
7. Distributed computing.
Dictionaries. Interaction with remote APIs, distributed computing. Comparing functional programming within a program (functions), on one computer (pipes), and across computers (APIs). Due: 2.3 Weather lab |
8 | 10/23 |
8. Data science tools.
Introduction to Pandas and Jupyter notebooks. Due: 2.4 Pokémon lab Assigned: 2.6 Argument project |
9 | 10/30 |
9. Debugging and testing.
Work on number words problem set. |
10 | 11/6 |
10. Object-oriented programming.
Introduction to object-oriented programming. Classes and instances. Contrast with imperative and functional programming. Argument project showcase. Due: 2.6 Argument project , 3.1 Dice lab |
11 | 11/13 |
11. Strategy.
Modeling state, game strategy, discuss the study of algorithms. Due: 3.2 Tic tac toe lab |
12 | 11/20 |
12. Frameworks.
Design patterns, managing complexity through abstractions. Working within frameworks. Introduction to Retro game framework. Game project proposal due. Due: 3.3 Retro lab Assigned: 3.5 Game project |
13 | 11/27 |
13. Games project.
Working on our game projects. A livecoding example |
14 | 12/4 |
14. Wrap-up.
Course wrap-up, games showcase. Next steps in computer science. Due: 3.5 Game project |