I. Programming Fundamentals
- Variables, objects
- Conditionals, loops
- Functions
- Arrays and simple data structures
- Drawing primitives: lines, curves, polygons
- Basic program design
II. Going Digital: Representing Media in the Computer
- Signals
- Analog vs. Digital
- Sampling, filtering, discretization, sampling theorem
- Vector vs. Raster graphics
- Sound, images, movies
- Storage and Transmission
- Compression, Formats, Codecs
III. Computational Thinking
- How computer scientists analyze and solve problems
- Trends in computation
IV. Interaction
- Various forms of input (mice, sensors, depth cameras, etc.)
- Programming for interaction
- Event processing and callback functions
V. Time-Based Media
VI. Other Topics (time permitting)
- Games
- Computational photography
- Digital forgery
- Fonts
Goals
Media computation involves understanding both how media are represented in the computer and how they are manipulated and generated programmatically. This course introduces students who may have no background in programming to simple programs with clear graphical output, written in Processing. Processing is a computer language designed for artists that provides a simplified yet powerful interface. By first manipulating sample programs, students learn the connection between the commands and the generated output. They will then move towards developing their own programs for manipulating and generating media. Students will also study how media – images, sound and movies – are represented, stored and transmitted in/by computers. This gives students a solid basis for understanding digital media. More generally, it introduces them to how computational processes operate.
Illustrative reading
- Getting Started with Processing. Casey Reas and Ben Fry, O’Reilly Media, 2010.
- Processing: A Programming Handbook for Visual Designers and Artists, Casey Reas and Ben Fry, MIT Press, 2007.
- Learning Processing: A Beginner’s Guide to Programming Images, Animation, and Interaction, Daniel Shiffman, Morgan Kaufmann, 2008.
- Processing for Visual Artists: How to Create Expressive Images and Interactive Art, Andrew S. Glassner, A K Peters, 2010.
GE3
Arts & Humanities
Science & Engineering
Visual Literacy
Overlap
This course overlaps in the introduction of basic programming concepts with ECS 10, ECS 15, ECS 30, and Engineering 6, but uniquely introduces this material through the perspective of digital media. ECS 30 assumes previous programming experience and ECS 12 does not. ECS 12 also offers substantial novel content on digital media.
Instructor
M. Neff