60-223 Introduction to Physical Computing (edit)

Fall 2016 Syllabus, T/Th 6:30pm-8:20pm, IDEATE @ Hunt Library  A10
Instructor:                 Ali Momeni, Associate Professor, School of Art, Director of ArtFab

Teaching Assistant:         Joseph Paetz

Course Repository:        https://github.com/cmuphyscomp/60-223-f16 

Office Hours:                 Momeni: Wed. 4:30pm-6pm (Doherty Hall, C200)

Paetz: Sunday, 2pm-6pm (Hunt A10)

Course Description

Course Sections

Learning Objectives

Teaching Philosophy

Essential Skills

Course Calendar

Topics

Unit 1: What is Physical Computing and Why bother (Weeks 1-2)

Unit 2: Interactivity and Behavior (Weeks 3-4)

Unit 3: Phys Comp in the Wild (Weeks 5-8)

Unit 4: Final Project (Weeks 9-15)

Course Kit

Group Work

Grading Rubric

In-Class Project Reviews

Extra Credit

General Course Policies

Attendance Policy

Physical Computing Lab

Lateness Policy

Project Report Requirements

Deliverables

Project Gallery

Class time, One-on-ones, Homework, Projects and Time Management

Wellness

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 https://courses.ideate.cmu.edu/60-223/f2016/syllabus/ 

Course Sections

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.  The 16-223 section of this course uses this course website.

The 60-223 section trains students with a focus in computer science and engineering to approach physical computing from an art and design perspective.  The goal is to helps students develop a culturally expansive, inclusive and critical perspective to projects, products and services that bring computation into the physical world.   Since the students have a technical academic focus outside of IDEATE, this section offers complementary experiences that characterize training in the arts, design, architecture and drama: self-directed learning, critical making, performance and storytelling, discussion and critique.

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.

Please refer to the Skill Survey on the course website.

Course Calendar

The course schedule can be found here.

Topics

Unit 1: What is Physical Computing and Why bother (Weeks 1-2)

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 (Weeks 3-4)

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
  10. learn how to discuss physical computing projects in ways that highlight why as well as how
  11. learn how to draw on existing cultural trends, references and discourse in order to make help audiences and viewers draw meaning from a physical computing project

Unit 3: Phys Comp in the Wild (Weeks 5-8)

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. gain familiarity with a range of wireless solutions for physical computing projects
  7. learn how to identify leverage points in a system and tactics for intervening into these systems
  8. learn how to prototype complex ideas iteratively
  9. learn how to make physical computing projects robust enough for repeated use by non-expert users

Unit 4: Final Project (Weeks 9-15)

The purpose of this unit is to allow students to work on a single project idea, and to iterate through several implementations while receiving feedback for each stage.  Students are encouraged to draw from the material covered in the earlier portion of the course in order to conceive projects that are feasible within the limited time allowed for this project.  The 6-week project will require students to prepare and submit the following deliverables:

  1. Proof of Concept (due Week 9)
  2. Critique of 1st iteration (due Week 11)
  3. Critique of 2nd iteration (due Week 12)
  4. Critique of 3rd iteration (due Week 14)
  5. Final Critique (due Week 15)

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. gain familiarity with a range of wireless solutions for physical computing projects
  7. learn how to identify leverage points in a system and tactics for intervening into these systems
  8. learn how to prototype complex ideas iteratively
  9. learn how to make physical computing projects robust enough for repeated use by non-expert users
  10. learn how to discuss physical computing projects in ways that highlight why as well as how
  11. learn how to draw on existing cultural trends, references and discourse in order to make help audiences and viewers draw meaning from a physical computing project

Course Kit

We have prepared a kit of hardware for each student that includes a range of basic hardware needs (microcontroller, breadboard, jumper wires, sensing components and actuators).  Please find an overview of the kit here.

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 three or four, 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.

Each assignment is graded on 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-10, comprising two points each for concept, execution, and documentation, and presentation.

Please note that the typical successful score will be a six, not a ten; 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.

Extra Credit

Students will have the ability to improve their overall grade by taking advantage of two forms of extra-credit:

  1. Bug fixes in the exercises: find a good bug, pull the repo, find a bug, fix it, submit a pull request
  2. Weekly challenge: look out for blog posts with a weekly challenge!

General Course Policies

Attendance Policy

Coming to class is important: don't be absent; 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 as a blog post to our course website. 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 a blog post to our course website; a clickable link to this post must be submitted to BlackBoard for assessment
  2. 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.
  3. 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.
  4. Reports must include a statement of objectives, general descriptive text, narrative, results, photos, technical documentation, and citations of related work.
  5. Any project photos must be embedded within the blog post
  6. Project videos must be uploaded to the hosting service of your choice and embedded in the blog-post
  7. Project videos must adhere to the minimum (1 min) and maximum (3 min) duration limits.
  8. Project videos are encouraged to include a title and credits.
  9. In general, enough technical documentation must be provided that a person of equal skill could replicate the construction of the project.
  10. All program source code is required and must be provided within the single zip file linked within the blog post.
  11. Electronic schematics and fabrication diagrams must be provided as embedded elements or links in the blog post.  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.
  12. Mechanical drawings or sketches must be provided Mechanical drawings must clearly specify the scale and units.
  13. Any original CAD files are required. Multi-file designs (typical for SolidWorks) must be provided as links in the blog post.

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.

Class time, One-on-ones, Homework, Projects and Time Management

A 10-unit course should take about 10-hours of time per week including class hours.  In our case, that generall means 3 hours of class-time and 7-hours of out-of-class work. Keep track of how much time you spend on this course.   If you are spending a lot more than 10 hours and you are concerned about this course’s demands in relation to your other coursework, please make an appointment with the instructor to discuss your situation.

At three points in the semester (beginning, middle and end), the instructor and TA will meet each student for a short (10min) one-on-one session.  The goal of these sessions is to tune into each students individual goals and needs, and to

Wellness

Take care of yourself.  Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.

All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful.

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website at http://www.cmu.edu/counseling/. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.

If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night:

CaPS: 412-268-2922

Re:solve Crisis Network: 888-796-8226

If the situation is life threatening, call the police:

               On campus: CMU Police: 412-268-2323

               Off campus: 911