Computational Literacies Lab

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.

Due: 1.2 Terminal Adventure lab , 1.3 Names lab

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.

Due: 1.5 Typeface problem set

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.

Due: 1.6 Drawing project , 2.2 Scatter lab

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.

Due: 2.5 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

Due: 3.4 Simulation problem set

14 12/4 14. Wrap-up.

Course wrap-up, games showcase. Next steps in computer science.

Due: 3.5 Game project