60-223 Introduction to Physical Computing (edit)
Fall 2015 Syllabus, T/Th 8:30-10:20, IDEATE @ Hunt Library A10
Unit 1: What is Physical Computing and Why bother
Unit 2: Interactivity and Behavior
Unit 3: Embedded, Wearable and Out in the world
In-Class Project Reviews
General Course Policies
Physical Computing Lab
Project Report Requirements
Physical computing refers to the design and construction of physical systems that use a mix of software and hardware to sense and respond to the surrounding world. Such systems blend digital and physical processes into toys and gadgets, kinetic sculpture, functional sensing and assessment tools, mobile instruments, interactive wearables, and more. This is a project-based course that deals with all aspects of conceiving, designing and developing projects with physical computing: the application, the artifact, the computer-aided design environment, and the physical prototyping facilities. The course is organized around a series of practical hands-on exercises which introduce the fundamentals of circuits, embedded programming, sensor signal processing, simple mechanisms, actuation, and time-based behavior. The key objective is gaining an intuitive understanding of how information and energy move between the physical, electronic, and computational domains to create a desired behavior. The exercises provide building blocks for collaborative projects which utilize the essential skills and challenge students to not only consider how to make things, but also for whom we design, and why the making is worthwhile.
This course is part of the Integrative Design, Arts, and Technology program at Carnegie Mellon University and makes use of the new IDeaTe@Hunt Collaborative Making Facility in the lower level of Hunt Library. The main course website is at http://courses.ideate.cmu.edu/physcomp/f15/60-223/.
This course is an IDeATe Portal Course for entry into either of the IDeATe Intelligent Environments or Physical Computing programs. CFA/DC/TPR students can enroll under 16-223 while CIT/MCS/SCS students can enroll in the 60-223 version of the course. Please note that there will be lab usage and materials fees associated with this course, and that students will be required to agree to the IDeATe@Hunt policies.
Introduction to Physical Computing is offered in two sections.
Upon completion of this course the student will be able to:
This course is as much an introduction to the IDeATe Physical Computing Program as to the technology. It operates under the following principles:
Immersion. Language shapes thought; thinking clearly about engineering and computing requires precise use of language. The course emphasizes correct use of technical terminology from the start, even as the meaning incrementally becomes understood.
Experiential Learning. We learn by doing. The course emphasizes immediate application of theory into practical demonstration; it is the success and especially the failure of the experiment which creates a vivid understanding of the principles.
Cooperative Learning. We teach each other. Articulating an explanation develops and tests knowledge and hones the skill of knowing the bounds of one's own knowledge. Sometimes we will teach each other incorrectly, but careful attention to further evidence will correct this over time.
Self-motivation. Students are responsible for their own progress. Wherever possible, the driving motivation will be a self-chosen goal, divided into manageable subproblems. The desire for the goal prompts autonomous exploration. If you ever find the course dull, that is an opportunity to reflect on what you are trying to achieve and choose a new objective.
Critical Thinking, Reflection and Writing. Understanding develops through reflection, and the best discipline for reflection is writing and drawing. Mere repetition of the examples does not build skill; it is the process of reflection which integrates experience into knowledge which can be applied to novel situations.
Collaboration. The aim of IDeATe is to train each student to be excellent in one area of technology or arts and be able to collaborate within diverse cohorts of technology and arts experts. Collaborative skill requires excellence in one's own areas of expertise, an ability to translate ideas across disciplinary bounds, and a proficiency in negotiation and compromise.
The activities, exercises and graded projects in this course address a wide range of essential skills for the domain of physical computing. They are life skills, not evaluated demonstrations.
The most important essential skill is the ability to learn new skills independently and to teach them to others. The course website offers a set of online references as a starting point to acquiring the essential skills. These references are provided only as a starting point: throughout the course of the semester, students are expected to build upon these references by finding more references, finding better references, and creating their own video and photo teaching material.
For a detailed list of essential skills, please see the section on essential skills and the essential skills posts on the course web site.
The course schedule can be found here.
The purpose of this unit is to investigate what the field of "physical computing" is, where it functions within society, culture and industry, and why it matters. This unit consists of research and reporting on the current state of the art within the field of physical computing, coupled with a boot-camp style introduction to electronics and microcontrollers.
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.
The overall goals for each student include the following:
The purpose of this unit is to explore the role of time in physical computing, develop skills in creating rich mappings between inputs and outputs, and to use hardware and software to create complex behavior.
This unit will extend the Arduino based work from Unit 1 into the realm of autonomous robots using the Pololu 3Pi platform.
The overall goals for each student include the following:
The purpose of this unit is to prototype and deploy smart objects that function outside of the laboratory or classroom. This unit addresses topics ranging from wearables to the internet of things (IoT).
This unit will extend the Arduino based work from Unit 1 into the realm of BLE- and Wifi- enabled microcontrollers that allow makers to put computationally enhanced objects in communication with one-another. These modules will allow us to build physical computing applications that are mobile (untethered and wireless), embedded (cheaper, smaller, lower power consumption) and in the real world.
The overall goals for each student include the following:
This course relies on group work and group learning. Throughout the course, students will work as parts of groups that are random, assigned, and self-selecting. Randomly selected groups are intended to give students practice with team-work among unfamiliar collaborators, a common setting in the real world. Assigned groups are intended to give students practice with team work based on predefined roles (e.g. project manager, maker, tester, software engineer); self-selecting groups are intended to allow students complete freedom in shaping their team, dividing tasks and choosing roles.
We encourage experimentation with rigid and flexible roles within the group. As most projects will be done in groups of four (4) or five (5), we propose the following roles as starting points:
A person may flow naturally from one role to the next as projects are subdivided into subgoals, as long as an individual clearly takes responsibility for each element. Note that the role of scribe is often best universally shared so that each person is continually documenting their own process, and then collaborating on final documentation at the end.
Everybody is assumed to start with an A in the course. If you do the work you will keep it, but failing to fulfill the expectations will cause you to drift downward.
Grading for this course is based on frequent low-stakes assessment. Each assignment is graded on one or more of the following criteria:
Each applicable criterion is rated on a two point scale as follows:
Full projects will utilize all three criteria and be graded on a scale of 0-6, comprising two points each for concept, execution, and documentation.
Please note that the typical successful score will be a three, not a six; this is best regarded as a pass/fail score for each of the three criteria with the possibility for bonus points. The total course grades are scored on a relative scale based on weighted point totals.
Please note that project deadlines are strict as outlined in the Lateness Policy section.
Project reports must also adhere carefully to the requirements specified in the Project Report Requirements section in order to achieve full documentation scores.
The full grade includes many categories:
Grades provide only a rough metric for student feedback. The more nuanced and useful feedback comes from in-class verbal critiques, individual interviews, and written comments.
Several class days will be devoted to in-class demonstration and critique, including commentary from peers, instructors, and guest experts. Given the size of the class we must keep a rigid schedule during these reviews. Each group will be expected to make a brief 2-3 minute verbal presentation of their goals and results, followed by an open question and critique period. Successful presentation in such a concise form depends on planning; students are expected to prepare and rehearse their explanations.
The in-class presentation and critique of projects serves several purposes:
Please prepare for the critique as follows:
The course includes students with widely varying experience and highly individual learning goals. In order to clarify individual goals and expectations, there will be three one-on-one interviews with each individual student, held near the beginning, midpoint, and end of the semester. Students will be prompted in advance in order to prepare statements of their objectives, progress, or achievements for each interview stage. This is not a graded exercise but a means of providing individual feedback.
Coming to class is important: don't be absent. I understand that the hour is early and your other courses have big deadlines, but the designated class hours are the most effective time for communicating among group members and instructors.
Attendance will be recorded for each class period and your record will be considered during final grading. Unexcused absences during review days will reduce your individual project grades.
The classroom for the course in the IDeATe Physical Computing Lab in Hunt A10.
The lab inventory of components and materials is available online as a Google Sheet named Physical Computing Lab Inventory, with separate tabs for tools and materials.
All lab users are expected to abide by the Physical Computing Lab Policies.
All assignments must be submitted by the required deadline, unless prior authorization is obtained from an instructor and documented in email. Verbal authorization is not sufficient: any verbal discussion of late submission must be documented with an emailed request and reply.
Assignments received within 24 hours of the deadline will receive half-score. Assignments received later than 24 hours will not be examined and receive zero score.
Assignments bounced for revision at the discretion of the instructor must be returned within 24 hours if not otherwise specified. This rule is meant to allow a grace period for reports which overlook a required element; please do not assume that incomplete work can be resubmitted. However, please remember that something is always better than nothing. If the deadline is imminent, please submit whatever text, images, and drawings you can rather than do nothing. And please also note that I understand you have other major deadlines, so extensions will be forgiving. Always ask for an extension rather than silently fail to deliver.
Each assignment serves both learning and evaluative goals. Fulfilling the assignment is an essential step in the learning process, and the result also demonstrates learning success. Please take careful note of the requirements for each assignment: they represent a contract between student and instructor.
The objective of assigning reports is to encourage evaluative thinking throughout the process of development. Writing and sketching is much faster than physically building something, and writing the core of the report first is a great way to clarify a concept. It is highly recommended to consider the report requirements throughout your process, e.g., by taking in-process notes and photos, and fully drawing out designs.
All projects require an accompanying report document in PDF format. We will use Blackboard to distribute assignments, collect deliverables, and assign grades. An outline of specific prompt questions will be provided for each assignment through Blackboard, with a denotation of specific required and optional elements. The following specifies the detailed requirements for all reports:
Projects of merit may be requested to provide a version of their project documentation for the IDeATe public project gallery. This will not be required or graded, but represents an opportunity to have your work publicly presented as part of the IDeATe portfolio and should need only minimal additional effort to prepare.