60-223 Introduction to Physical Computing, Fall 2017
Class/Lab Location: T/Th 6:30pm-8:20pm, IDEATE @ Hunt Library A10
Instructor: J. Eric (jet) Townsend, Adjunct Professor, School of Art; Designer, Fabricator, Hacker Office Hours: TBD
T/A: Sydney Ayers, Office Hours: TBD
T/A: Jake Zimmer, Office Hours: TBD
Course Blog: https://courses.ideate.cmu.edu/60-223/f2017
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/f2017/
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.
Upon completion of this course the student will be able to:
- develop and understanding of the field of physical computing and approach the field as a designer and artist
- gain sensitivity to aesthetic concerns within physical computing
- develop critical thinking and analysis skills applied to socially, culturally and politically engaged physical computing projects
- work in a mixed physical-digital environment and laboratory
- work in a mixed arts-engineering environment and laboratory
- make effective use of standard hardware and software tools for physical computing
- approach complex physical computing problems with a systematic overview that integrates iterative research and design steps
- generate systems specifications from a perceived need
- understand and leverage the scalability of physical computing, from laptop computers, to microcontrollers made for prototyping, to integrated circuits
- design and make interactive objects that integrate sensing, actuation and software
- produce interface specifications for a system composed of numerous subsystems
- evaluate a physical computing system in the context of an end user application or experience
- gain familiarity with the rate at which relevant technology in this field changes and evolves
- develop and appreciate for why things are done as well as how
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.
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.
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:
- Integrator: Student who will lead the overall development of the project. Responsibilities include researching existing relevant work that can push the project to new levels of sophistication and relevance in the world, setting and maintaining and overall timeline for the project’s execution, negotiating assigned roles and expectations for other group members, and facilitating communication among group members.
- Designer: Student who will lead the design and fabrication of the project. Responsibilities include researching relevant existing references that can help the group plan how to make the necessary things, producing system diagrams for the project, and conceiving and implementing and overall strategy for how to make things and how to delegate various making activities to different group member.
- Scribe: Student who will document with photos and videos and write about the project. Responsibilities include documenting the development process as well as the final outcome, and creating a well formatted blog post with image and text describing the project’s goals, methodologies and results.
- Tutor: Student with advanced knowledge or experience with the activity who will gain the most by teaching and helping others, instead of breezing through familiar territory. Responsibilities include assuring that all group members gain the necessary essential skills covered by the activity.
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.
Each assignment is graded on the following criteria:
- concept: clarity of the key idea, articulation of key principles and narrative, applicability to human or artistic needs, selection of appropriate aspects for proof-of-concept.
- execution: translation of the concept into design, quality of the technical implementation; perseverance and work ethic including treatment of the lab and
- documentation: quality of the reflection, clarity of the presentation, detail of the technical documentation as it is evident in the project report posted to the course blog.
- presentation: quality of the the presentation during critique, and attention to details including sound, lighting, signage, etc.
- team work: peer assessment from other group memers
Each applicable criterion is rated on a two point scale as follows:
- 0: incomplete: does not satisfy objectives
- 1: satisfactory: answers the prompt
- 2: outstanding: surprises, shows deep insight
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:
- group project milestones
- group project reports documenting full projects
- ideation exercises
- reviews of lab notebooks documenting technical exercises
- brief individual topical lectures
- individual peer-evaluation reports
- skills survey
- individual interviews
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.
Critiques and In-Class Review
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:
- provides a live performance or demonstration for evaluation
- demonstrates your ability to speak succinctly about your ideas
- provides the primary opportunity for your peers to see and comment on your work
Please prepare for the critique as follows:
- Please be prepared to give a brief (typically 2 minute) verbal overview of your idea and execution. Please rehearse this explanation ahead of time.
- Please be prepared to demonstrate or perform at your designated time. Please rehearse your performance ahead of time.
- 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.
- 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.
Students will have the ability to improve their overall grade by taking advantage of two forms of extra-credit:
- Bug fixes in the exercises: find a good bug, pull the repo, find a bug, fix it, submit a pull request
- Weekly challenge: look out for blog posts with a weekly challenge!
General Course Policies
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 / Absence 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 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:
- 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
- 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.
- 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.
- Reports must include a statement of objectives, general descriptive text, narrative, results, photos, technical documentation, and citations of related work.
- Any project photos must be embedded within the blog post
- Project videos must be uploaded to the hosting service of your choice and embedded in the blog-post
- Project videos must adhere to the minimum (1 min) and maximum (3 min) duration limits.
- Project videos are encouraged to include a title and credits.
- In general, enough technical documentation must be provided that a person of equal skill could replicate the construction of the project.
- All program source code is required and must be provided within the single zip file linked within the blog post.
- 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.
- Mechanical drawings or sketches must be provided Mechanical drawings must clearly specify the scale and units.
- Any original CAD files are required. Multi-file designs (typical for SolidWorks) must be provided as links in the blog post.
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 generally 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
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:
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