Learning Objectives

Upon successful completion of this course, students will be able to:

  • Create basic computer programs that generate two-dimensional images,
  • Construct programs that respond graphically to user interaction,
  • Use variables, assignment, conditionals, loops, functions, arrays, and objects in the construction of programs,
  • Use graphical transformations, including scaling, rotation and translation,
  • Devise formulas to transform interactive input or random values into colors, coordinates, and other “output” parameters,
  • Interpret programming system reference materials in order to select and apply built-in functions,
  • Implement a computer program according to a set of functional requirements,
  • Analyze computer execution time in terms of the number of operations as it relates to the problem size,
  • Explain how computation is used by contemporary artists,
  • Apply computation in one’s personal artistic practice.

Required Course Materials

Laptop. It is strongly recommended that students have access to a personal laptop. Mac OSX, Windows and Linux are all acceptable. However, although all of the toolkits with which we work are free and cross-platform, example projects may only be tested on OSX.

Sketchbook. It is wise to plan your projects on paper before writing any code. We recommend the 5″x8.25″ Moleskine dotted notebook, but any sketchbook will do.

Optional Course Materials

This semester we will be making occasional reference to the following two textbooks, and their associated online materials (YouTube videos, Github code repositories, etc.). You may purchase them if you wish.

(Why aren’t they required? Well, our syllabus diverges from McCarthy’s book, and Shiffman’s book uses examples written in Java instead of JavaScript.)

Credits & Prerequisites

15-104 provides 10 units of academic credit, and satisfies the software skills portal requirement for CFA (arts), Dietrich (humanities) college and other students pursuing IDeATe minors and concentrations. There are no prerequisites for this course.


This course expects students to produce weekly Deliverables, which consist of:

  • Assignments, which are submitted through Autolab, and
  • Projects and Looking Outwards reports, which are posted on this site.

The last of the Projects is a Capstone project with a proposal, check-in, and final presentation phase. More details are on the Deliverables page.

Rubrics (evaluation and grading criteria) for deliverables can be found here.

Communication Tools

This course uses three software systems:

  • Autolab, through which students submit Assigments;
  • This WordPress blog, through which students publish Projects and reports;
  • A Piazza forum, for public and private discussions among the classmembers and course staff.

15-104 uses the Piazza forum, where you can ask and answer questions, and discuss course topics. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and the professors. Rather than emailing questions to the teaching staff, we encourage you to post your questions on Piazza. Find our class page at: You should already be “enrolled” on Piazza (use your Andrew ID). Please contact your professor if you need to be added.

Take Care of Yourself

Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.

All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful.

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website at Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.