Class Details

Instructor: Prof. John Lasseter

Textbook: Learning Processing, by Daniel Shiffman, Morgan-Kaufmann 2008.

Course website:


Like the abilities to reason mathematically, investigate rigorously, read critically, argue coherently, and paint creatively, the ability to write computer programs offers a fundamentally different and important mode of inquiry. In many ways, it is analogous to drawing or painting, where you begin with a set of primitive skills (point, line, color, shading, texture etc.) and combine them creatively to make an image. When you "think computationally", you draw on some combination of a small set of fundamental ideas, combining them creatively to make something (a program) that performs some desired task without any further guidance or huma interpretation.

This course is an introduction to some of the fundamental ideas underlying not the field of Computer Science. You will learn to program, yes. However, successful computational thinking is much more than just programming, in the same way that good writing is much more than just correct spelling and grammar. The essential "tools" also include representation, abstraction, logical thinking and algorithm development.

Throughout the class, we will draw on ideas from the overlap between programming and visual art, image processing, animation, and games. This course is appropriate for students who are interested in computer science as well as those interested in employing computers in the creation of art (e.g. majors or minors in art, media and society, etc). No background in computer science or computer programming is necessary or expected. (If you've had previous programming experience, you should take CPSC 124 instead.) The course is designed to be taken by non-majors as well as those who might be considering majoring or minoring in computer science. (For those who continue on in computer science, this course will give you a head start by introducing concepts and skills that you'll revisit in CPSC 124 and later courses.)


Lab Assignments and Projects:

Friday's class each week will be held in the Baron Multimedia Lab (in the Library). During these sessions, you will work (either alone or in groups) on smaller problems designed to strengthen your understanding of the material. Generally, these problems will take more time than just the class session itself, so expect to work on them at home, too.

In addition, there will be three projects (more substantial assigments) given during the term, approximately every 3-4 weeks. These will integrate concepts learned across multiple weeks, and they will require a good deal more time than the lab assignments.

Assignments will be collected at the start of class on the due date. Late homework will be accepted, but with a substantial penalty (see "Policies", below).

Exams: There will be two in-class exams, in Weeks 6 and 11 The final exam will be given per the Registrar's schedule.


Late Policy

Late submissions of the take-home assigments will be accepted, but you must make arrangements with me in advance of the due date. In almost all circumstances, the following penalty will be imposed on late work: 10% for each day late, up to 100% (that's 10% of the full score, not the raw grade you earn on the work).

That being said, do not get behind on the assignments. Although this is an introductory course, the pace is intense, and you will get overwhelmed. If you are having trouble, please ask for my help, as early as possible.

Students with Disabilities

Students with documented disabilities who may need accomodations, who have any emergency medical information an instructor should know of, or who require special arrangements in the event of an evacuation, should contact me as early as possible, preferably no later than the first week of classes.

If you are a student with a disability for which you may need accommodations, you should self-identify and register for services with the Coordinator of Disability Services at the Center for Teaching and Learning (CTL), and provide documentation of your disability. Disability related accommodations and services generally will not be provided until the registration and documentation process is complete. The guidelines for documenting disabilities can be found at the following website:

Please direct questions about this process or Disability Services at HWS to David Silver, Coordinator of Disability Services, at or x3351.

Academic Honesty

I take this very seriously: a breach of academic honor will result in a failing grade for the course, and may be subject to further college sanctions. These standards are clearly laid out in the HWS Catalogue

and for the most part, they're pretty straightforward: your lab and project work must be yours and yours alone (or your working groups, if that applies), and your exams can only be discussed with me. Basically, you know already know the difference. Don't cheat.

Collaboration: This is something of a gray area, and a common source of misunderstanding.

To clarify: Learning is usually more successful when it is done in community rather than in isolation. For all assignments, you are permitted—indeed, encouraged—to discuss course material with each other, to evaluate, trace, debug, refute, validate, or otherwise compare each others' work, and to adjust your own work if this collaboration results in new understanding.

However, you are not free to simply mail or print identical copies of the same work, and claim that it is the work of two separate individuals/groups. This is plagiarism, and is a breach of academic honor standards (it is also extremely easy to spot, especially in a class this small). While I encourage you to learn from each other, at the end of the day, the work you submit for a grade must be yours and yours alone.

If you find yourself unsure whether a form of collaboration or borrowing is acceptable, please ask me, in advance.


Relative weights for your final grade are as follows

Participation and Preparation: 10%
Lab Assignments: 25%
Projects: 25% (a little over 8% each)
Exams: 20% (10% each)
Final Exam: 20%

Contact Me

In Person: The best way by far to get in touch with me is in person, during office hours. Any kind of class-related discussion is encouraged, whether it be a specific question about a homework problem, a request for encouragement and help getting started on an assignment, a point of confusion about the reading, or just plain curiousity about some of the further scientific directions that are possible. I am often available outside of office hours to answer questions, offer further explanation, or just to shoot the breeze. I am always available during posted hours. I encourage you to drop by.

Please note that my office (on the third floor of Lansing) is not wheelchair accessible. If this or another physical disability prevents your from reaching me there, please let me know, and I will happily arrange an alternative meeting place with you.

In Writing: Barring that, your best bet is by email, which I check late, early, and often. In fact, email is very often the most effective way for you to ask a question, as the effort involved in articulating what you want to ask can help clarify many things. It also makes it easier for me to give succinct replies to which you can refer later. I'm a pretty early riser, though, so don't assume I'll answer anything after 9 pm or so.

By Phone: Phone calls are, frankly, lousy. You're certainly invited to call (315-781-4652), but it's difficult to communicate technical questions and answers clearly without reading or writing down anything. Phone messages are generally a poor choice: you might wait as much as 24 hours before I get any voice mail message you leave.