AP2018
A bachelor course: Aesthetic Programming 2018 @ Aarhus University
Install / Use
/learn @AUAP/AP2018README
Aesthetic Programming 2018 @ Aarhus University
Course title: Aesthetic Programming (20 ECTS), 2018
Name: Winnie Soon (wsoon@cc.au.dk)
Time: Every Tue 0800 – 1100 (3 hours)
Location: 5361-144, unless otherwise stated
!NB:<br> Tutorial: Every Wed 14.00-16.00 @ 5361-144 or 5361-135, conducted by Ann Karring and Nynne Lucca Christiansen Optional shutup and code: Wk 6-10, Friday 08.00-12.00 @ 5361-144, conducted by Ann Karring/Nynne Lucca Christiansen
class detail: Groups in etherpad
OUTLINE:
“Aesthetic Programming” is a practice-oriented course requires no prior programming experience but with an interest in using code to explore the relationship between art, design, technology and culture within the context of software studies. The course introduces computer coding as an aesthetic, expressive, creative and critical endeavour beyond its functional application. It explores coding as a practice of reading, writing and building, as well as thinking with and in the world, and understanding the complex computational procedures that underwrite our experiences and realities in digital culture. Through coding practice, students are able to contextualize, conceptualize, articulate, design, build, write and run a piece of software. Emphasis is placed on the student acquiring practical skills of expression through an introduction to programming, and this course uses P5.js primarily, which serves as a foundation for further courses on Digital Design.
The course is designed to complement the parallel course in SOFTWARE STUDIES where further critical work will be developed and expanded but without losing sight of coding as critical work in itself. Examples of artists and designers will be introduced that work with coding as their expressive material.
TASKS:
- Weekly mini exercises (mostly individual with a few group works) + peer feedback
- Peer-tutoring/Peer-feedback: within 20 mins in-class presentation with respondents
- Active participation in class discussion and exercises
- FINAL group project - in the form of a “readme” and a “runme” (software) packaged + in class presentation
- Oral exam (Date: to be confirmed)
!NB: 20 ECTS is equivalent to around 25 hours per week, including lecture and tutorial. As such, you are required to spend around 20 hours per week in reading and programming. The more you practice everyday, the more you get out of the course. There is no short cut and the best way is to PRACTICE!
Other learning support environment:
- Weekly 2 hours tutorial session (every Wed - Mandatory)
- Weekly 4 hours shut up+code or code study group discussion (every Friday 08.00-12.00- Optional in 5361-144)
LEARNING OUTCOMES:
- Learn foundamental concepts in computer programming, such as abstraction, structure, function, iteration, variables and arrays, conditional statements, objects, feedback and interactivity.
- Acquire ability to design, read and write processes via computer code and build/develop computational artefacts.
- Integrate practical and theoretical skills to articulate and conceptualize computational artefacts.
- Recognize coding practice as a way of thinking and inquiry to understand wider cultural systems (computational thinking).
CLASS SCHEDULE:
Class 00 | Week 5 | 30 Jan 2018: Transmediale visit
No physical class. No tutorial session. No shutup and code session.
- Transmediale Festival 2018: Face Value
- Read/Watch:
- 1 hr video lecture: Computational Thinking and Thinking About Computing by Jeannette M. Wing (2009)
- Montfort, Nick. Exploratory Programming For the Arts and Humanities. MIT Press, 2016. 267-277 (check blackboard - Appendix A: Why Program?)
- Vee, Annette. Coding Literacty: How Computer Programming Is Changing Writing. MIT Press, 2017.43-93 (Check blackboard - 1 Coding for Everyone and the Legacy of Mass Literacy)
- Thinking line:
- Why do you think you need to know programming? Why is it important to know programming in the area of digital design?
Class 01 | Week 6 | 6 Feb 2018: Coding Practice & Getting Started
Wed tutorial session and Fri shutup and code session.
- Class structure:
- Why we need to learn programming?
- What is and why p5.js?
- Setting up: Github + p5.js lib + Atom
- Run the first p5.js program
- ~~Examples showcase and discussion~~
- Read/Watch before class:
- Make sure you have read previous class' readings
- 30 mins Video lecture on Learning While Making P5 JS by Lauren McCarthay. OPENVIS Conference, 2015.
- Short p5.js video by Daniel Shiffman(watch 1.1 and 1.2)
- p5.js: Get Started
- Video on Github: Sharing/version control/operation/hosting by Daniel Shiffman (must watch: 1.1, 1.2, 1.4, 1.8)
- Weekly mini ex1: due week 7, Monday night | Thinking about My First Program
- check mini_ex folder > mini_ex1.md
Class 02 | Week 7 | 13 Feb 2018: Having fun with basics
Wed tutorial session and Fri shutup and code session.
- Artwork showcase: Inter_fight(2015) by Cesar Escudero Andaluz
- Class structure:
- basic structure: HTML, CSS, JS
- Coordinate system
- Shapes drawing
- Variables
- Image loading/Display
- ~~Errors and console.log~~
- ~~In-class challenge: Grid paper portrait in p5.js~~
- Read/Watch before class:
- Goriunova, Oga. Fun and Software: Exploring Pleasure, Paradox and Pain in Computing. Bloomsbury Academic, 2014. 1-19. (Introduction, pp.1-19)
- p5.js Simple Shapes
- p5.js examples - load/display
- Short p5.js video by Daniel Shiffman(watch 1.3, 1.4, 2.1, 2.2)
- Weekly mini ex2: due week 8, Monday night | A Fun Drawing
- check mini_ex folder > mini_ex2.md
Class 03 | Week 8 | 20 Feb 2018: Temporality: Infinite loops
Wed tutorial session and Fri shutup and code session.
- Artwork showcase: Asterisk Painting by John P. Bell, ported to p5.js and modified by Winnie Soon
- Class structure:
- Arrays
- Conditional Statements
- Iterations: For and While Loops
- Time related syntax:
- FrameRate(), FrameCount, setInterval(), millis()
- Transform: translate(), rotate(), push/pop()
- In-class ex: Decoding a throbber
- Peer-tutoring: Group 1 / Respondents: Group 2, Topic: push()/pop()
- Read/Watch before class:
- Short p5.js video by Daniel Shiffman (watch 3.1, 3.2, 3.3, 3.4, 4.1, 4.2, 5.1, 5.2, 5.3, 7.1, 7.2)
- Soon, Winnie. "Executing Micro-temporality."Executing Practices. Eds. Helen P, Eric S and Magda T. C. Autonomedia, 2017. 89-102.
- Farman, Jason. Fidget Spinners. Real Life, 2017.
- Weekly mini ex3: due week 9, Monday night | Design a Throbber Differently
- check mini_ex folder > mini_ex3.md
Class 04 | Week 9 | 27 Feb 2018: Data capture
Wed tutorial session and Fri shutup and code session.
- Artwork showcase: How We Act Together by Lauren McCarthy and Kyle McDonald
- Class structure:
- Interacting with captured data: Mouse, Keyboard, Audio, Web Camera
- Capturing and Tracking
- Peer-tutoring: Group 2 / Respondents: Group 3, Topic: p5.dom libary
- How to import and use p5.dom library in your sketch?
- What are the benefits of using p5.dom objects?
- Read/Watch before class:
- Pold, Søren. "Button." Software Studies\ a lexicon. Eds. Matthew Fuller. MIT Press, 2008. 31-36. (can access via e-library)
- Gerlitz, Carolin, and Helmond, Anne. “The like Economy: Social Buttons and the Data-Intensive Web.” New Media & Society 15, no. 8 (December 1, 2013): 1348–65. (can access via e-library)
- p5.js examples - Interactivity 1
- p5.js examples - Interactivity 2
- p5.dom library reference
- Suggested reading/video
- playlist: [HTML/CSS/DOM- p5.js Tutorial by Daniel Shiffman](https://www.youtube.com/playlist?list=PLRqwX-V7Uu
