60-223 Introduction to Physical Computing (edit)

Fall 2015 Syllabus, T/Th 8:30-10:20, IDEATE @ Hunt Library  A10

Course Description

Course Sections

Learning Objectives

Teaching Philosophy

Essential Skills

Course Calendar

Topics

Unit 1: What is Physical Computing and Why bother

Unit 2: Interactivity and Behavior

Unit 3: Embedded, Wearable and Out in the world

Group Work

Grading Rubric

In-Class Project Reviews

Interviews

General Course Policies

Attendance Policy

Physical Computing Lab

Lateness Policy

Project Report Requirements

Deliverables

Project Gallery

Course Description

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.

Course Sections

Introduction to Physical Computing is offered in two sections.  

Learning Objectives

Upon completion of this course the student will be able to:

Teaching Philosophy

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.

Essential Skills

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.

Course Calendar

The course schedule can be found here.

Topics

Unit 1: What is Physical Computing and Why bother

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:

  1. identify one's own individual skills and learning objectives
  2. get to know and respect the lab
  3. get to know what physical computing is and how it fits into society, culture and industry
  4. practice effective collaboration
  5. develop a practice of researching and critically analyzing the creative technologies field
  6. understand the basics of physical signal processing
  7. understand how to read data sheets and schematics in order to build basic interface circuits for both input and output
  8. learn many practical lab skills
  9. learn to use an Arduino
  10. understand basic techniques for building signal-processing programs in Arduino C++

Unit 2: Interactivity and Behavior

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:

  1. identify one's own individual skills and learning objectives
  2. get to know and respect the lab
  3. practice effective collaboration
  4. learn techniques for producing effective and compelling audio, video and skill documentation
  5. learn many practical lab skills
  6. learn to use Arduino boards other than the basic Uno or Leonardo models
  7. learn how to use the Pololu 3Pi platform in order to prototype complex autonomous behavior in a mobile robot
  8. learn how to design intricate mappins between inputs and outputs
  9. learn how to prototype complex ideas iteratively

Unit 3: Embedded, Wearable and Out in the world

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:

  1. identify one's own individual skills and learning objectives
  2. get to know and respect the lab
  3. practice effective collaboration
  4. learn techniques for producing effective and compelling audio, video and skill documentation
  5. generate project ideas that are socially, culturally, and politically meaningful and relevant
  6. learn how to identify leverage points in a system and tactics for intervening into these systems
  7. learn how to prototype complex ideas iteratively
  8. learn how to make physical computing projects robust enough for repeated use by non-expert users

Group Work

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.

Grading Rubric

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:

  1. group project milestones
  2. group project reports documenting full projects
  3. ideation exercises
  4. reviews of lab notebooks documenting technical exercises
  5. brief individual topical lectures
  6. individual peer-evaluation reports
  7. skills survey
  8. individual interviews
  9. attendance

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.

In-Class Project Reviews

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:

  1. Please be prepared to give a brief (typically 2 minute) verbal overview of your idea and execution. Please rehearse this explanation ahead of time.
  2. Please be prepared to demonstrate or perform at your designated time. Please rehearse your performance ahead of time.
  3. For the project artifacts and performance, the overall emphasis is on proof-of-concept rather than fit and finish. Please be prepared to designate what issues were deliberately set aside and which were explored to guide the critique. But please be prepared to justify this choice in light of the overall concept.
  4. In-class critique may still consider all features in relation to their support of the concept, especially when guest instructors are present. When this happens, please consider this an exploration of your idea that goes beyond the graded evaluation.

Interviews

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.

General Course Policies

Attendance Policy

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.

Physical Computing Lab

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.

Lateness Policy

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.

Project Report Requirements

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.

Deliverables

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:

  1. All report documents must be submitted as PDF files. Original document formats (.doc, Word, .tex, etc.) will be returned unread.
  2. Report documents must be submitted within a single zip file which also contains the implementation supporting code and engineering files.
  3. The zip file must be according to the specifications indicated in the assignment.
  4. Each group must submit one joint report. If a group member fails to fulfill their documentation role, the other group members should submit what they can on time and ask for an extension with an explanation.
  5. Each report should clearly attribute the contribution of each group member. Individual grades may be adjusted from group grades if it becomes apparent that contribution is not equitable. A separate confidential peer evaluation may be requested individually from each group member at the instructor's discretion.
  6. Reports must generally include a statement of objectives, general descriptive text, narrative, results, photos, technical documentation, and citations of related work.
  7. Any project photos must be embedded within the PDF document, and provided at a print-ready resolution (e.g. 300dpi).
  8. Project videos must be uploaded to the hosting service of your choice and an active, clickable link provided within the body of the PDF report. Please check the documentation of your authoring software if you need help making your links active.
  9. Project videos must adhere to the minimum and maximum duration limits, including titles and credits.
  10. Project videos are encouraged to include a title and credits.
  11. In general, enough technical documentation must be provided that a person of equal skill could replicate the construction of the project.
  12. All program source code is required and must be provided within the single zip file.
  13. Electronic schematics and fabrication diagrams must be provided in PDF form, either embedded in the main report or as a separate PDF. Schematics must reflect the as-built state. Schematics must use conventional symbols and notation. Hand-drawn or illustrated schematics are acceptable, but the use of schematic capture software such as EAGLE is recommended as it will help reduce errors.
  14. Mechanical drawings or sketches must be provided in PDF form, either embedded in the main report or as a separate PDF. Mechanical drawings must clearly specify the scale and units.
  15. Any original CAD files are required. Multi-file designs (typical for SolidWorks) must be provided within the single zip file.

Project Gallery

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.