ECS 12 Introduction to Media Computation (4 units)
Lecture: 3 hours
Discussion/Laboratory: 1 hour
Key computational ideas necessary to understand and produce digital media. Aimed primarily at non-computer science students, the course introduces the fundamentals of programming while also describing how media are represented and transmitted in digital form.
Credit restrictions/cross listings: This is the same course as CTS 12.Two units of credit for students who have taken course 10 or course 30 or Engineering 6.
Summary of course contents
I. Programming Fundamentals
- Variables, objects
- Conditionals, loops
- Arrays and simple data structures
- Drawing primitives: lines, curves, polygons
- Basic program design
II. Going Digital: Representing Media in the Computer
- 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
- 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)
- Computational photography
- Digital forgery
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.
- 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.
Arts & Humanities
Science & Engineering
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
History 2012.10.24 (M. Neff): verified contents. Added restriction regarding 10, 15, and 30. Course and course description created by M. Neff (2012.05).