This is an introductory course in computation within context of media and art with a focus on two-dimensional graphics. The potential of computer as medium will be considered through exercises, assignments, readings, and critiques. Both procedural and object-oriented programming will be explored, as well as, using input and output of files, generative techniques, and image creation through data processing.
- Apply critical thinking in writing and oral presentation skills
- Analyze the social and cultural importance of computational media art
- Use technical proficiency to create computational media art
- Create a two-dimensional computational-based project
NOTE: I removed "Python for Everybody"
An online development platform. Our syllabus lives on GitHub. Essential.
Brackets text editor (Free)
Brackets is a modern text editor that makes it easy to design in the browser. It's crafted from the ground up for web designers and front-end developers.
Free p5js.org account:
Sign in with your GitHub account
What would it mean to de-colonize code and a programming language?
- Perseverance
- Faithfulness to the proposal
- Creative engagement
- Application of critical thinking
- Preparation (research, accumulation of needed materials, time management)
- Success of the finished piece
Please wear your masks during class. Please consult https://www.scrippscollege.edu/scripps-strong/return-to-campus-plan/ for the latest information.
You may miss up to four classes and still pass this class. Note that 60 percent of the students' grade is given for work on in-class activities, and that these cannot be repeated except in extraordinary circumstances.
You are expected to be attentive, ask questions, work alone and with a partner to complete your work.
Labs and in-class activities will not be repeated except in extraordinary circumstances.
Students are expected to abide by the Scripps College academic integrity code. You must submit work that is your own and which is original work for this class. Also, all sources must be documented. Omission of sources is considered plagiarism, even if it is an oversight and/or unintentional. All plagiarism will be reported to the department and Dean’s office for further action. For this course, collaboration is allowed in on lab activities and assignments IFF all contributions are documented.
Permissible cooperation should never involve one student having possession of a copy of all or part of work done by someone else, in any form (e.g. email, Word doc, Box file, Google sheet, or a hard copy). Also, assignments that have been previously submitted in another course may not be submitted for this course, and I discourage you from finding solutions on Stack Overflow or other online forums to paste into your notebooks.
Scripps students seeking to register to receive academic accommodations must contact Academic Resources and Services Staff (ARS) at ars@scrippscollege.edu to formalize accommodations. Students will be required to submit documentation and meet with a staff member before being approved for accommodations. Once ARS has authorized academic accommodations, a formal notification will be sent out.
A student’s home campus is responsible for establishing and providing accommodations. If you are not a Scripps student, you must contact your home institution to establish accommodations. Below is a list of coordinators on the other campuses:
CMC - Julia Easley, julia.easley@claremontmckenna.edu
Harvey Mudd – Deborah Kahn, dkahn@hmc.edu
Pitzer- Gabriella Tempestoso, gabriella_tempestoso@pitzer.edu
Pomona - Jan Collins-Eaglin, Jan.Collins-Eaglin@pomona.edu
This class is an example of Scripps College’s commitment to changing the norms in Computer Science. Creating this initiative at a liberal arts women's college is both a bold step towards correcting gender imbalance in this field.
Our community represents a wide variety of backgrounds and perspectives. We are committed to providing an atmosphere for learning that respects diversity.
Students are responsible for reviewing Scripps College’s policies on incomplete grades, sexual misconduct, adverse weather, as well as student evaluation of instruction, and days of special concern/religious holiday.
W | Date | theme | Soon+Cox (before class) | Exercises (in class) | Assignment (due M) |
---|---|---|---|---|---|
1 | 08/30 | Intro: Aesthetic Programing | “p5.js | get started,” | Lauren McCarthy, "Learning While Making p5.js," OPENVIS Conference (2015) Daniel Shiffman, “1.1: Code! Programming with p5.js” (2018) Annette Vee, “Coding for Everyone and the Legacy of Mass Literacy.” | |
09/01 | Preface | Set up your working environment | create a git repository to contain your work by “forking” mine | ||
2 | 09/06 | ||||
09/08 | Getting started | Ch 01 | MiniX: Make a RunMe and a ReadMe. | ||
3 | 09/13 | Variable geometry | Ch 02 | Crystal Abidin and Joel Gn, eds., "Histories and Cultures of Emoji Vernaculars," First Monday 23, no. 9, September (2018) Christian Ulrik Andersen and Geoff Cox, eds., A Peer-Reviewed Journal About Machine Feeling 8, no. 1 (2019). Derek Robinson, "Variable," in Matthew Fuller, ed., Software Studies: A Lexicon (Cambridge, MA: MIT Press, 2008). | |
09/15 | MiniX: Geometric emoji | ||||
4 | 09/20 | Infinite Loops | Ch 03 | Wolfgang Ernst, Chronopoetics: The Temporal Being and Operativity of Technological Media (London: Rowman & Littlefield International, 2016), 63-95. Winnie Soon, “Throbber: Executing Micro-temporal Streams,” Computational Culture 7, October 21 (2019). Wilfried Hou Je Bek, "Loop," in Fuller, ed., Software Studies. Derek Robinson, "Function," in Fuller, ed., Software Studies. | |
09/22 | MiniX: Designing a throbber | ||||
5 | 09/27 | Data Capture | Ch 04 | Shoshana Zuboff, "Shoshana Zuboff on Surveillance Capitalism | VPRO Documentary," . "p5.js examples - Interactivity 1," . "p5.js examples - Interactivity 2," . "p5 DOM reference,". Ulises A. Mejias and Nick Couldry, "Datafication," Internet Policy Review 8.4 (2019). | |
09/29 | MiniX: Capture All | ||||
6 | 10/04 | Auto-generator | Ch 05 | (UPDATE 10/3) Let's start with 10 PRINT CHR$(205.5+RND(1));. Can you explain how this code creates patterns? Can you articulate it to create other kinds of patterns? Give yourself sometime tinker with the code. Rethink the rules that have been implemented. Try changing the existing rules or adding new rules so that the ant behaves differently. What are the implications for wider culture? | Nick Montfort et al. "Randomness," 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 (Cambridge, MA: MIT Press, 2012), 119-146. Daniel Shiffman, "p5.js - 2D Arrays in Javascript," Youtube. Jon, McCormack et al. “Ten Questions Concerning Generative Computer Art.” Leonardo 47, no. 2, 2014: 135–141. |
10/06 | MiniX: A generative program | ||||
7 | 10/11 | Object-abstraction | Ch 06 | 1. Tinkering Modify the different values to understand the function/syntax of the Eating tofu game. 2. Discussion in groups: Identify a game you are familiar with, and describe the characters/objects using the class, and object concepts, and vocabulary. | Matthew Fuller and Andrew Goffey, "The Obscure Objects of Object Orientation," in Matthew Fuller, How to be a Geek: Essays on the Culture of Software (Cambridge: Polity, 2017). "p5.js examples - Objects,". "p5.js examples - Array of Objects," https://p5js.org/examples/objects-array-of-objects.html. Daniel Shiffman, "Code! Programming with p5.js," The Coding Train (watch: 2.3, 6.1, 6.2, 6.3, 7.1, 7.2, 7.3). |
10/13 | MiniX: Games with Objects | ||||
8 | 10/18,10/20 | ||||
9 | 10/25 | Vocable code | Ch 07 | Geoff Cox and Alex McLean, Vocable Code, in Speaking Code (Cambridge, MA: MIT Press, 2013), 17-38. Allison Parrish, "Text and Type" (2019). Daniel Shiffman, "10.2: What is JSON? Part I - p5.js Tutorial" (2017). Daniel Shiffman, "10.2: What is JSON? Part II - p5.js Tutorial" (2017). | |
10/27 | MiniX: E-Lit | ||||
10 | 11/01 | Que(e)ry data | Ch 08 | Daniel Shiffman, "Working with data - p5.js Tutorial," The Coding Train (10.1, 10.4 - 10.10). Eric Snodgrass and Winnie Soon, "API practices and paradigms: Exploring the protocological parameters of APIs as key facilitators of sociotechnical forms of exchange," First Monday 24, no.2 (2019). | |
11/03 | MiniX: Working with APIs (in a group) | ||||
11 | 11/08 | Algorithmic procedures | Ch 09 | Taina Bucher, "The Multiplicity of Algorithms," If…Then: Algorithmic Power and Politics (Oxford: Oxford University Press, 2018), 19–40. Christian Sandvig, "Seeing the Sort: The Aesthetic and Industrial Defense of ‘The Algorithm.’" Journal of the New Media Caucus (2015). Nathan Ensmenger, "The Multiple Meanings of a Flowchart," Information & Culture: A Journal of History 51, no.3 (2016): 321-351, Project MUSE. | |
11/10 | MiniX: Flowcharts | ||||
12 | 11/15 | Machine unlearning | Ch 10 | Work with the Auto Chapter Generator program and try to generate texts based on different length and temperature values. What do machines teach us? And in the production of prediction, what does machine learning want?41 | Ruha Benjamin, [Are Robots Racist: Reimagining the Default Settings of Technology and Society](https://www.dropbox.com/s/j80s8kjm63erf70/Ruha Benjamin Guest Lecture.mp4), lecture (2019). Geoff Cox, Ways of Machine Seeing, Unthinking Photography (2016). Yuval Noah Harari, Audrey Tang, and Puja Ohlhaver, "To Be or Not to Be Hacked? The Future of Democracy, Work, and Identity," RADICALxChange (2020). |
11/17 | MiniX: final project | ||||
13 | 11/22 | Project work | |||
11/24 | Project work | ||||
14 | 11/29 | Project work | |||
12/01 | Project work | ||||
15 | 12/06 | Show | |||
16 | 12/08 | Show |