This is the second major unit of the Introduction to Physical Computing course. The purpose of this unit is to address larger topics related to making autonomous machines. This includes pragmatic considerations such as basic mechanical design and robust electronic fabrication, but also questions related to complex time behavior and remembering and modeling simple information about the world.

The unit is divided into three sections: Smart Machines, State Machines, and Get Real. The overall objectives include the following:

  1. learning to use a robust elementary mechanical design idioms
  2. understand basic machine learning principles
  3. learn basic state machine theory
  4. practice developing design ideas incorporating computation effectively
  5. develop practical skills for making robust self-contained devices

All exercises and projects will be performed in pairs or groups, which we will be changing frequently to develop your abilities to take on different roles in collaboration.

This is a fast-paced course and you will be expected to learn many new skills independently and teach them to each other. Please see the syllabus for a detailed discussion.