Making Things Interactive
48-739 | Spring 2017
Monday/Wednesday 6:00PM-7:50PM
IDeATe Physical Computing Lab, Hunt Library Basement, Room A10
Instructors
Jake Marsico
John Mars
Office Hours
By Appointment
Will either be held in the PhysComp Lab (HL A10) or at Disney Research (CIC LL110)
Course Blog
https://courses.ideate.cmu.edu/48-739/
Recommended Prerequisites
16-223 / 60-223 — Introduction to Physical Computing
15-112 — Fundamentals of Programming and Computer Science
15-104 — Introduction to Computing for Creative Practice
Anti-requisites
48-390 — Physical Computation Studio
Course Description
In this hands-on design-build class you will learn the skills to embed sensors and actuators (light, sound, touch, motion, etc.) into everyday things (and places etc.) and to program their interactive behavior using a microcontroller. You’ll also dive into the fields of VR/AR/MR and experiment with combining these disciplines with physical computing. Through weekly exercises and a term project the class will introduce basic analog electronics, microcontroller programming, projection mapping and virtual reality; as well as exploration into using kinetics and materials to make the things you design perform. Emphasis will be on creating innovative experiences. The graduate edition of this course will require additional work including a paper that can be submitted to a peer-reviewed interaction design conference such as CHI, UIST, or TEI. Students from all disciplines are welcome: but please note that the class demands that you master technical material.
Learning Objectives
By the end of this term you should be able to:
- Prototype with maker tools like 3D Printers and Laser Cutters
- Integrate web technologies into your standard project development toolkit
- Use prototyping platforms like Arduino to physically sketch out ideas
- Utilize the basic principles of electronics and apply them to your designs
- Collaborate with others to create complex projects
- Be comfortable using version control systems to design, develop, and collaborate
- Ensure the posterity of your work through visual and written documentation
Projects & Grading
- [Project 01] Artifactory | Jan. 30 – Feb. 13 | 20%
- Generate [a] physical artifact[s] from expressive user input.
- [Project 02] Monitor & Alert | Feb. 15 – Mar. 1 | 20%
- Watch a (physical or digital) source, and trigger a (digital or physical) alert. Your solution must be physically durable.
- [Project 03] Augmenting VR | Mar. 6 – Mar. 22 | 20%
- Create a virtual world that affects and is affected by the physical one.
- [Final Project] TBD | Mar. 27 – Apr. 26 | 40%
- Work alone or in groups to create a final project of your own choosing
Projects will be graded according to the following rubric:
- Concept — 10%
- Is your solution novel, clever, and unique?
- Adherence to Project Requirements — 10%
- Did you learn what you were supposed to learn? Did you complete all the project objectives?
- Software Execution — 15%
- Does your software work?
- Hardware Execution — 15%
- Does your hardware work?
- Craft / Design — 15%
- How much attention to detail did you pay in your project?
- Documentation — 25%
- For Groups: Each student will need to individually submit a link to documentation with a quick write-up describing their contribution
- Attendance / Timeliness / Participation — 10%
- Did you show up to class, turn your project in on time, and participate in class discussions?
Course Policies
Plagiarism & Collaboration
TLDR; Attribute everything you use to the person who made it.
This is a studio in creative computing, with a heavy emphasis on using existing open-source libraries, freely-distributed code, and APIs. Additionally, the course is highly collaborative, and it is expected that students help each other learn and solve problems. However, students are still expected to make creative and original work.
On using freely-available code:
- Look at the license. Are you allowed to use it? What are the parameters for its use?
- Make sure the provenance of all of your code’s plugins and addons is clear and defined. All dependencies should be easily viewable and traceable.
- Don’t copy full repositories of code and claim them as your own. Analyze existing project for the bits and pieces that are relevant to you, and reform those ideas in a way to make it your own.
- Don’t misrepresent someone else’s work as your own.
On collaboration:
- You should help each other, but that doesn’t mean you should do someone else’s work for them. Teach them how to fish, don’t catch the fish for them.
- Any outside resources you use to help in the creation of your projects (i.e., code tutors) must be disclosed either in your project writeups or in the code itself.
- All parties in collaborative groups must work on all parts of the project, i.e., everyone must have a hand in writing code and everyone must take part in building physical prototypes.
These guidelines were informed by Golan Levin’s description of Academic Integrity. Also see CMU’s policies on Academic Integrity.
Students with Disabilities
If you wish to request an accommodation due to a documented disability, please inform your instructor and contact Disability Resources as soon as possible. They can be reached at access@andrew.cmu.edu or 412-268-2013.
Attendance
If you need to miss a class, email the instructor as soon as you can; students are expected to attend every class unless otherwise excused. Attendance and participation will be reflected in the grades for each individual project (unexcused absences/tardiness will reduce the grade of that project).
IDeATe Facilities Policies
The IDeATe Program is special because the courses dedicate instruction toward related workflows among multiple fields. As a result, IDeATe affiliated resources, equipment and spaces are tailored to support various processes and projects. After completing a course within the IDeATe@Hunt facilities, you will become apart of IDeATe@Hunt community. As an IDeATe@Hunt member, you will gain access to a network of faculty, facilities, resources, and like-minded ‘makers’.
The IDeATe@Hunt facilities feature several resources dedicated toward creative output. Many of these resources are expensive, including the service time devoted toward continued operation and maintenance. In addition, some of the spaces and equipment involve real hazards, posing safety concerns for all users. To resolve these issues, IDeATe@Hunt has implemented (2) primary solutions:
Safety, Training & Instruction
Spaces involving hazardous processes are only accessible by trained members of the IDeATe@Hunt community. Training is fundamentally offered through introductory (portal) courses & workshops. Additional training is also offered through various IDeATe@Hunt courses. During training you will receive all the instruction you require to utilize the spaces and/or equipment in a safe, efficient, and respectful manner.
Materials
Students are expected to bring a laptop to class everyday. MacBook Pros are available for checkout from the IDeATe checkout window. It is highly recommended you use a Mac for this course (support for Windows or Linux is not guaranteed).
Parts and components can be found around the lab, and with the exception of a few things, are available for use in any project you are working on for the course. It is highly recommended to purchase your own Raspberry Pi and Arduino starter kits (from Adafruit or Sparkfun). While the lab does have a small supply of these, they are very important tools that should be a permanent part of any personal collection.
Students are usually responsible for providing their own consumables and materials (acrylic, plywood, etc). If you need financial support, there are a few grant opportunities on campus, including the Frank-Ratchye Fund for Art @ the Frontier.
Classes
This being a Studio course, individual classes will be a mix of lectures/demonstrations and work time. Additionally, there will be critiques at the end of every project (and one at the midpoint of the Final project). You will present your projects to external critics/instructors, who will then give you insightful criticism and feedback that you can use to inform your work going forward.