This course introduces programming techniques necessary to generate interactive visual art on a computer. Although it briefly covers computer-generated media art, the course focuses on the programming skills required for creating interactive works. Rather than using commercial software, students write their own programs to create compositions with which users can interact. The course introduces fundamental concepts of how to represent and manipulate color, two-dimensional shapes, images, motion, and video. Coursework includes short programming assignments to practice the concepts introduced during lectures and projects to explore visual compositions. The course assumes no prior knowledge of programming.
We'll be using a language called Processing.
- Chris Bailey-Kellogg | 250 Sudikoff | office hour: M 3-4, Tu 1-2, Th (in classroom) 1-2
- Teaching assistants
- Nick Foti, grad TA
Rong Yang (Sharon), grad TA
Loren Sands-Ramshaw, undergrad lab TA
- Course staff email
- cs2 -at- cs -dot- dartmouth -dot- edu
- Announcements and discussion board
- Available on Blackboard
- 2-hour | MWF 1:45-2:50 | x-hour (sometimes) Th 1-1:50
- Sudikoff 005 (Mac lab). Reserved, with TA in lab: M 4-6pm; W 5-7pm, Th 8-10pm.
Also available for use by CS 2 students when not reserved for other classes.
(Note that CS 32 is using the lab during the 12 hour and x-hour, and Su 4-10 and Tu 7-10.)
See Kelly Clark (101 Sudikoff) to get your ID card enabled.
- Textbook (Recommended)
- Casey Reas and Ben Fry, Processing: A Programming Handbook for Visual Designers and Artists
Available at Baker reserve desk
The examples may be downloaded, and you are encouraged to do so.
- Other materials
- Procesing reference
Some examples used in class are drawn from the book Processing: Creative Coding and Computational Art by Ira Greenberg. These examples are also downloadable.
Coursework and grading
Coursework will include:
- Homeworks (~weekly; 50% total)
- To help you learn and practice the basic techniques. Done individually.
- Projects (two; 25% total)
- To allow you to synthesize the material to do something bigger of your own design. Done individually or with a partner.
- Quizzes (two; 25% total)
- To give a quick check-up on your understanding of the material.
Homework and project assignments are to be turned in via Blackboard before class on the due date, and must be accompanied by a hard copy turned in at the start of class. Ample time is provided for each assignment, so in general, late submissions will not be accepted. Under extenuating circumstances (prolonged illness, death in the family, etc.), arrangements must be made with the instructor before the due date.
Grades will be assessed according to correctness and quality of both the product (does it look and act like it should?) and the code (is it well-organized and easy to follow, does it effectively use the proper programming constructs?). For exceptionally creative and interesting work, it is possible to receive extra credit points. Extra credit is tabulated separately from the regular grades on homework and exams, and is used to adjust final grades after the final average is computed. Thus extra credit is always optional, and not doing any extra credit work will never reduce your final grade, even if everyone else in the class does a lot of extra credit.
Dartmouth's honor code applies to this course, and academic misconduct policies will be strictly enforced. If you have questions, ask!
You may discuss the homework with other current CS2 students, but your submitted homework must be entirely your own. As part of a discussion, you may show (in person) another student your work. However, your code and any other solutions you submit must be created, written/typed, and documented by you alone. You may not copy anything directly from another student's work. For example, copying a portion of someone else's solution onto a piece of paper would violate the honor code, even if you eventually turn in a different answer. Similarly, e-mailing a portion of your code to another student, or posting it on-line for them to see would violate the honor code. Although all students must create and type in their own code, you may help other students debug their programs once you and they have already written your programs. We do encourage discussion of homework assignments between students, subject to these rules. Note that discussion between two students will be most useful when both students have already made serious attempts to solve the problem on their own.
If you make use of any code taken from outside references -- for instance, from an off-site web page or a textbook other than the ones used for this course -- you must clearly attribute the source of the code with clear comments in the code that you submit. Code from class examples or the course textbook does not have to be attributed. You do not need to acknowledge discussion with other students on your submitted work. Proper respect for copyright laws as applied to printed materials and software products is subsumed by Dartmouth College's Computing Policies.
On quizzes, you may not collaborate with, copy from, or otherwise share information with anyone. (You may of course ask questions of the course staff.)
Students with disabilities enrolled in this course and who may need disability-related classroom accommodations are encouraged to make an appointment to see the instructor before the end of the second week of the term. All discussions will remain confidential, although the Student Accessibility Services office may be consulted to discuss appropriate implementation of any accommodation requested.