CS 1120: Media Computation

Spring 2017

About the Course

CS 1120: Media Computation is an introduction to computation, algorithmic thinking, data transformation and processing, and programming in the context of digital media such as images, sound, and text.

This course has two primary goals. First, you will study digital media and some of the techniques that are used to digitally represent and modify photo, sound, and text files. Second, the course aims to teach you about how to write computer programs. I hope that you leave this course with a sense of what programs can do and how you can write them to express ideas.

Media computation is the primary theme in this course. Computing with images, sound, and text offers a rich body of problems to solve that will bring us into contact with many of the fundamental ideas of computer science: representing and transforming data; design, analysis, and experimentation; and the thrill of solving problems in any domain of human thought.

Schedule

Week Date Readings Sessions & Labs Assignments
1 Mon, 01/09 Ch. 1 Introduction to computer science and digital media
Wed, 01/11 Ch. 2 Introduction to programming
Fri, 01/13 Lab 1: Exploring JES
2 Mon, 01/16 Martin Luther King, Jr. Day
Wed, 01/18 NO CLASS
Fri, 01/20 Ch. 4 How images are encoded; image manipulation; basic loops Assignment 0
3 Mon, 01/23 Ch. 4 Decreading/increasing amount of color; basic filters (sunset, negative, grayscale...) | download code
Wed, 01/25 Ch. 4 Accessing pixels by index; copy and paste | download code
Fri, 01/27 Lab 2: Manipulating photos with loops
4 Mon, 01/30 Ch. 5 Controlled color changes; red eye removal; sepia tones | download code Assignment 1
Wed, 02/01 Ch. 5 More effects: posterizing | download code
Fri, 02/03 Lab 3: Using conditional statements to change color | lab file
5 Mon, 02/06 Ch. 5 More on if-statements; generalizing a function | download code
Wed, 02/08 Ch. 6 Edge detection; background subtraction; chromakey | download code
Fri, 02/10 Lab 4: Selective color manipulation
6 Mon, 02/13 Ch. 6 Processing pixels faster; more on hierarchical decomposition | download code Assignment 2
Wed, 02/15 Ch. 6 Copying; cropping; mirroring an image | download code
Fri, 02/17 Lab 5: Making a collage | download images
7 Mon, 02/20 Ch. 6 Rotating; scaling
Wed, 02/22 Ch. 6 Blurring; blending
Fri, 02/24 Lab 6: Blending images | download images
8 Mon, 02/27 Generalizing the image rotation program | download code | calculation Assignment 3
Wed, 03/01 Lab debrief / exam review
Fri, 03/03 Exam - 1
9 Mon, 03/06 Ch. 7 How sounds are encoded; sound manipulation
Wed, 03/08 Ch. 7 Changing the volume; clipping
Fri, 03/10 Lab 7
SPRING BREAK
10 Mon, 03/20 Ch. 7 Sound manipulation (cont.); normalizing sound | download code
Wed, 03/22 Ch. 8 Manipulation of sections of sound | download code
Fri, 03/24 Lab 8: Splicing sound | download file
11 Mon, 03/27 Ch. 8 Clip and copy revisited | download code Assignment 4
Wed, 03/29 Ch. 9 Blending sounds
Fri, 03/31 Lab 9: Blending sounds
12 Mon, 04/03 Ch. 9 Blending revisited; variable number of arguments | download code Assignment 5
Wed, 04/05 Using libraries; exam review | download code
Fri, 04/07 Exam 2
13 Mon, 04/10 Ch. 3 Introduction to string manipulation download code
Wed, 04/12 Ch. 3 String manipualtion (cont.)
Fri, 04/14 Ch. 3 Accumulators, accessing characters by index, encrypting/decrypting text download code
14 Mon, 04/17 Ch. 11 String methods, dot notation, lists Assignment 6
Wed, 04/19 Ch. 11 Reading and writing text filesi (cont.); the Python standard library
Fri, 04/21 String methods, dot notation, lists (cont.)
15 Mon, 04/24 Ch. 11 Reading and writing text files (cont.)
Wed, 04/26 Lab 10: String manipulation; reading and writing files | download data sets
Fri, 04/28 Ch. 12 Moving information between media / Steganography: hiding secrets in plain sight Assignment 7
16 Mon, 05/01 Final Exam: 10 - 11:50 am