Course Info

Course Description:

An introductory, project-based exploration of systems and processes for making things using computer-aided design and manufacturing, and an introduction to machines and machine tools. Emphasis will be placed on building novel machines and related software for use by “makers”. Course projects will encourage students to understand, build and modify/hack a sequence of machines: (1) an embroidery machine for custom textiles, (2) a paper cutting machine (with drag knife) for ornamental design, and (3) an XY plotter with Arduino controller. Through these projects students explore both (i) principles of operation (mechanical, stepper motors and servos, electrical control, computer software), and (ii) computer algorithms (trajectory, tool path, design). Current trends in interactive machines will be surveyed. The course will culminate in a final student-selected project.

Course Logistics:

Lectures: Tue, Thu 10:30 AM - 11:50 AM, Gayes 392.
Instructors: Pat Hanrahan, Doug James
TA: Anh Truong
Prerequisite: CS106A or equivalent programming experience. Students should have a desire to make things.


This class will be project based, and students will work in small teams to complete 3 projects:

  1. Hack either an embroidery or paper cutting machine to make custom textiles and ornamental designs with the goal of understanding the machine.
  2. Build an XY plotter with Arduino controller.
  3. Final Project: Design and build a custom machine that makes or assists in making some craft of the team’s choice.
  • Class attendances and participation: 20%
  • Assignment 1: 20%
  • Assignment 2: 20%
  • Final Project: 40%