Computational Literacies Lab

Schedule

Week Date Topic
1 8/25 1. Imperative programming.

Due: 1.1. Turtle lab

2 9/1 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/8 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/15 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/22 5. Functional programming.

Introduction to functional programming. Streams, files, and pipes.

Due: 2.1 Pipes lab

6 9/29 6. Processing data.

Lists. Computer graphics as data transformations. Drawing project showcase.

Due: 1.6 Drawing project , 2.2 Scatter lab

7 10/6 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/13 8. Data science tools.

Introduction to Pandas and Jupyter notebooks.

Due: 2.4 Pokémon lab

Assigned: 2.6 Argument project

9 10/20 9. Debugging and testing.

Work on number words problem set.

Due: 2.5 Number words problem set

10 10/27 10. Object-oriented programming.

Introduction to object-oriented programming. Classes and instances. Contrast with imperative and functional programming.

Due: 3.4 Simulation problem set

14 12/1 14. Wrap-up.

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

Due: 3.5 Game project