✿ code toolkit ✿ python ✿

spring 2022



Thursday, 4:00-6:40pm

Emma Rae Bruml Norton

syllabus



Office hours:

Before class for 20 minutes, and by appointment — email me to schedule: nortone[at]newschool[dot]edu

Course Description:

This course provides a basic introduction to coding for students with no prior experience using the Python computer language. It will introduce the use of computing and algorithms to web design, data analysis and visualization, and game design. Students will complete integrative projects within each of these areas, and leave the class with a strong foundation in the use of Python across a range of applications. Access to a working laptop will be expected throughout the semester. This course fulfills the Integrative Course requirement of the Culture and Media major.

**syllabus, course structure, assignments and notes are adapted from earlier versions of this class taught by Rory Solomon

January 27

Week 1 – Thinking like a computer?

Introductions
About the course
What is a program?
The Processing Development Environment ("PDE")
Drawing with numbers
The window as a grid of pixels
Notes #1
Homework #1




✿ Part I: Python and the Processing platform



February 3

Week 2 – Adding variance

Variables
Arithmetic (+, -, *, /)
Introduction to random()
Notes #2
Homework #2




February 10

Week 3 – Adding interactivity

Code blocks and frames (setup() and draw())
Debugging (with println())
Mouse interaction (mouseX and mouseY, pmouseX and pmouseY)
map()
User testing (and Export Application)
Notes #3
Homework #3




February 17

Week 4 – Making things move

Conditionals if and else
Keyboard interaction
Motion

Reading due for discussion: Lev Manovich. The Language of New Media, Cambridge, MA: MIT Press, 2002. Chapter 1 (pages 18-55)

Notes #4
Homework #4




February 24

Week 5 – Adding repetition

Loops
Notes #5
Homework #5

☄ ☄ ☄ Midterm project assignment
assigned February 24
due by March 29th (two nights before) at 8PM
for in-class presentation and discussion on March 31st.





March 3

Week 6 – Timing and state

Timing
State: a new way to use variables
Notes #6
Homework #6




March 10

Week 7 – Working with many things (lists), and modularity (function)

Data structures: Lists
Functions: for project planning, reusability and modularity
Notes #7
Homework #7

Reading due for discussion: Selections from Matthew Fuller, Software Studies: A Lexicon: Introduction, "Algorithm", "Code", "Programmability", and "Source Code".





March 17

noClass() have a restful spring break :-)



March 24

Week 8 – Midterm project work and review as needed

Course material review & midterm project work

Reading due for discussion: "Data Visualization", from Matthew Fuller's Software Studies: A Lexicon

Catherine D'Ignazio and Lauren Klein, "Unicorns, Janitors, Ninjas, Wizards, and Rock Stars,"





March 31

Week 9 – Midterm project presentations and discussion

Midterm project presentations




April 7

Week 10 – Advising week

Course material review & advising

Reading due for discussion: Claus Pias, “The Game Player’s Duty: The User as the Gestalt of the Ports”, from Media Archaeology: Approaches, Applications, Implications, Jussi Parikka and Erkki Huhtamo, eds.





✿ Part II: Standalone Python – Networks and data processing ✿



April 14

Week 11 – Data serialization: for storage and communication

Introduction to Python outside of Processing with Atom and the command line
Another data structure: Dictionaries
An experiment with networking
Notes #11
Homework #8

☄ ☄ ☄ Final project assignment assigned April 14
due by May 13th at 8PM
for in-class presentation and discussion on May 14th.





April 21

Week 12 – Network protocols

Networking and the web

Reading due for discussion: Alex Galloway and Eugene Thacker, "Protocol and Counter-Protocol", 2003





April 28

Week 13 – TBD





May 5

Week 14 – Final project work

Course material review & midterm project work




May 12

Week 15 – Final projects

Final project presentations and discussion