Introduction to Computational Media Syllabus
- Class Introductions
- Why are we here? What is computational media? What is programming? What is it good for? What kinds of programming languages are there?
- The Algorithm
- High Level vs. Low Level.
- Processing and the Java Virtual Machine
- The Fundamentals of Programming
- Coordinate Systems
- Shapes and Color -- tutorial on learningprocessing.com
- Code itself & The Reference
- Pressing the "Play" button
- Exporting as an applet vs. application
- Chapters 1-2 from Learning Processing.
- Also, chapters 1-3 from Getting Started with Processing
- download and install Processing
- Sign up for course mailing list!
- Create your own screen drawing, using only 2D primitive shapes – arc(), curve(), ellipse(), line(), point(), quad(), rect(), triangle() – and basic color functions – background(), colorMode(), fill(), noFill(), noStroke(), stroke(). Remember to use size() to specify the dimensions of your window.
- Upload your assignment and post a link to the homework wiki (Homework Wiki Friday Section).
- Examples: http://www.learningprocessing.com/examples/ -- take a look at Chapter 1 and 2 (3 if you are feeling ambitious).
- Optional: If you haven't read it before check out Alan Turing's seminal paper "Computing Machinery and Intelligence"
- The flow: code blocks, setup, draw, and events
- Variables: Declare, Initialize, Use
- Other Resources:
- Read Chapters 3-4 from Learning Processing.
- Also, chapters 4-5 from Getting Started with Processing
- Also short reading about randomness
- Create a dynamic application. You can continue to elaborate on last week's assignment or you can design something new. For example, move your shapes around the screen according to mouse / keyboard interaction. Use variables to change colors, grow and shrink your design, etc. Start by working in pairs (according to the wiki: Homework Wiki Friday Section) You can post as a group or break off and complete the assignment individually.
- Boolean Variables
- Read Chapters 5-6 from Learning Processing.
- Try Exercise 5-6 and Exercise 5-8. We will go over answers in class.
- Homework: Continue to elaborate on last week's assignment incorporating conditionals. Use the new pairs (according to the wiki: Homework Wiki Friday Section) You can post as a group or break off and complete the assignment individually.
- Discuss exercises 5-6 and 5-8 from last week
- Functions: Modularity!
- Re-usability and Parameter Passing
- Chapters 7 and 8 from Learning Processing.
- Try exercise 7-8 and Exercise 8-5. We will go over answers in class.
- Re-organize the code of a previous assignment or example using functions and objects. If you are inspired by the power of modularity, feel free to elaborate on the assignment. Work individually or in pairs (no pairs will be assigned this week.) Post results to the wiki.
- Discuss exercises 7-8 (temp converter) and 8-5 (gravity ball)
- Reviewing looping
- Dano's handout
- Chapters 6 and 9, from Learning Processing.
- Try Exercise 9-6 and Exercise 9-7.
- Using arrays and loops, write a program that creates multiple instances of an object (feel free to use an object you developed previously or create something new). Post answers to the wiki and we will go over them in class.
- Exercises from last week
- A few previous year's student thesis examples
- Video as Image
- Video as Sensor
- Other video functions
- More Examples:
- More advice
- Learning Processing, Chapters 15-16
- Incorporate the pixels of an image (or video) into a Processing sketch. Upload to the wiki.
- Midterm: Brainstorm an idea for a midterm project. Feel free to think of your midterm on as grand a scale as you like, however, the midterm assignment will involve implementing only one step of a larger project. Remember, it's only a one week assignment! Be prepared to speak briefly about your midterm idea next week.
Week 7 -- Midterm Workshop
- Present midterm ideas and workshop
- Complete midterm assignment and be prepared to present (~5 min talk, 3-5 min questions) next week.
1. One liner. Describe your project in a single sentence
2. 1 min. Description - What is the PURPOSE of your project? Who is the audience?
4. Discuss any problems you had, future plans, improvements
Week 8 -- Show Midterms
- Each student/group will present their midterm project. Don't forget to post them online and link to them from the Homework Wiki.
- Parsing, File IO and directories:
Week 10 -- Processing and PHP
- Source code for all examples available in this tutorial.
- Client and server basics
- loadStrings() to move between PHP and Processing
- Using an API
- Using PHP to connect XML to Processing
- Using PHP to connect a MYSQL Database to Processing
- Demo using student photos from people database, if you want, this can be your final project!
- The INTERNET
- Homework: Prepare a final project proposal. Create a web page or blog post with title, description, sample imagery, diagrams, Processing code, etc. and post to the homework wiki. Prepare to present your IDEA next week. Remember the format:
- 1. One liner. Describe your project in a single sentence
- 2. 1 min. Description - What is the PURPOSE of your project? Who is the audience?
- 3. Demo/Experiments
- 4. Discuss any problems you had, future plans, improvements
- 5. Questions/critique
Week 11 -- Propose Final Projects
- Discuss final project ideas, in-class critique of ideas
11/26 Happy Thanksgiving Break No class
Week 12 -- Special Topics and Proposals continued
- Final project idea presentations (anyone who didn't go last week)
- trig0 sin mapping circle to wave
- trig1 rotation and scale unit circle to screen
- trig2 graphing the sin function
- sinSums summing different variants of sin function
- spiral draw a spiral
- atan2 calculate x,y back to angle of rotation on screen (from upper left corner)
- atan2-2 calculate x,y to angle of rotation around another point
- Using external libraries (sound, openCV, XML)
- Homework is to work on final projects
Week 13 -- Final Project Workshop and Advanced Processing Techniques
- Finish examples from last week
- Discuss using Java in Processing
- and using Processing in Java
- Work on our final projects in class:
Email me firstname.lastname@example.org to sign up for a 15 min slot to discuss your issues
- Homework is to finish final projects
Week 14 -- TUESDAY DECEMBER 14th -- Final Project Presentations
- Each student/group will present their final project. Don't forget to post them online and link to them from the Homework Wiki.
- You are required to attend all class meetings and submit all weekly assignments, a midterm, and a final project.
- Timeliness is important - don't be late for class!
- You are expected to come to class each week prepared. Please bring your laptop with Processing installed, the Learning Processing textbook, any additional readings as well as your notes.
- Grading (pass/fail) will be based on a combination of factors:
- 40% Attendance and participation in class discussion and engagement in other students' projects.
- 30% Quality of weekly assignments, midterm, and final project.
- 30% Personal progress; how much did you advance from your initial state in this class.