Course Syllabus

Instructor: Wendy Ju, wendyju@cornell.edu

Teaching team:    Rei Lee, wl593@cornell.edu (Tuesday 4-6pm@Tata351)

                             Alexandra Bremers, awb227@cornell.edu

Lectures               Tuesday 9:40am-10:55 am ET 

Labs                     Thursday 9:40am-10:55 am ET 

A/V and technical support: +1 646-971-3811  support@tech.cornell.edu

Description

This course provides an introduction to the human-centered and technical workings behind interactive devices ranging from cell phones and video controllers to household appliances and smart cars. This is a hands-on, lab-based course. Topics include electronics prototyping, interface prototyping, sensors and actuators, microcontroller development, physical prototyping and user testing.

The course features five 2-week labs and one 1-week lab; in-class lab time is intended to help students get started on the labs, to share ideas and feedback with fellow students, and to enable the teaching team to answer questions. Most of the time out of class will be spent on lab or project work. 

For the final project, students will build a functional interactive device of their own design, using Javascript, single-board Linux computer, embedded microcontrollers, and other electronics components.

Units: 3

Frequently Asked Questions

Attendance

It is important to be in class. Students are expected to be present throughout each semester at all meetings of classes for which they are enrolled.  Masks are required in class for all in attendance.

One very good reason to miss class is illness. It is important to take time to recover from illness, or to make sure that you are not sick, as vaccinated people often do not exhibit symptoms even if they are transmitting a virus. Another good reason is religious observance. Cornell University is committed to supporting students who wish to practice their religious beliefs.

If you do miss class, the expectation is that you will contact fellow students to find out what occurs in class, to catch up on course announcements, and to otherwise make up for lost time. We are recording lectures and aim to have live online lecture and lab for people who need to attend remotely.

If you need to miss multiple classes or otherwise need greater accommodation (for example, extensions on deadlines), you are encouraged to make a request via Student Disability Services for assistance. This is the procedure for managing course accommodations for illnesses and disability; this helps the university keep track of illnesses in the student population, and coordinate your assistance across your classes. 

Different faculty have different policies for how they want you to manage absences. You do not need to request permission from this teaching team to miss class. In fact, we do not want you to contact us about missing class. There will be recordings of classes posted, usually within a day of class. Also, you should avoid asking the teaching team for extensions, notes, or other accommodations for missing class; these should be coordinated with SDS. 

Late Policy

Lab prep will be due one hour before class on Thursdays. Lab assignments will be due by Monday at 6pm. Since the labs are cumulative—each one depends on your understanding and completion of the previous one—it is essential to stay caught up.

Late assignments will be dropped one letter grade per day late. Everyone will be given the opportunity to drop their lowest assignment grade at the end of the term; we will not be waiving the late penalties otherwise.

Textbook

There is not a textbook required for this course this term.

Grading

This is a design class, so while technical functionality will be a major component of homework, labs and the final project, a sizable portion of the class grade will be based on a subjective evaluation of your device designs, their creativity, and level of finish.

Lab/Project Rubric:

Exploration of design space: 10%

Communication of idea: 20%

Technical execution: 30%

Documentation of process: 20%

Novelty of final concept: 10%

Documented test with user: 10%

Bonus: Generosity (in assistance, feedback, sharing of code) to other students in class: 10%

Very technically simple designs can be great, and very technically complex designs can be wanting, so focus on developing a “design eye” rather than trying to make the most ambitious feature-laden projects imaginable.

Your final grade will be based on:

                                    Lab assignments (60%)

                                    Final project (20%)

                                    Online documentation (10%)

                                    Class participation (10%)

Student Outcomes

1. Demonstrate understanding of key computation, sensing, actuation and communication components that make up modern interactive devices.

2. Develop skill in designing and prototyping interactive systems

3. Demonstrate ability to test interactive systems with users

4. Demonstrate ability to integrate software, embedded hardware, sensing, display, actuation, and communication devices to make functioning systems.

5. Apply open-source software libraries to control system operation, obtain user input and provide interactive response 

Integrity

We will strictly follow Cornell’s policies on academic integrity as outlined in the Academic Integrity Handbook.

In this class, we make substantial use of open-source software. We encourage you to make use of found code and online examples, and also for the class to act as a microcosm of the open-source community by assisting and collaborating with one another.

That said, proper attribution of all work, assistance, and collaboration is absolutely critical in this endeavor. We expect you to be absolutely meticulous in documenting and celebrating shared ideas and code.

We also expect you to document and provide advance notice to the teaching team if you plan to use work from other concurrent/prior courses as part of deliverables for this course; this is permitted, but the net amount of work in this and the other course are expected to be the same as if you pursued different projects for each course.

Inclusivity

You should expect and demand to be treated by your classmates and the course staff with respect. You belong here, and we are here to help you learn and enjoy this course. If any incident occurs that challenges this commitment to a supportive and inclusive environment, please let the instructors know so that the issue can be addressed. We are personally committed to this principle, and subscribe to the Computer Science Department’s Values of Inclusion.

Accessibility

We are happy to make accommodations to make this course accessible to all students. Please contact the teaching team if you need help. Also, the Office of Student Disability Services (http://sds.cornell.edu) may have services available.

Cornell Tech Cares

The Cornell Tech community is a diverse and vibrant group of students, faculty, and staff. We take our responsibility to look out for one another seriously. As members of this community, your openness and proactive communication will allow us all to better care for students and respond to their needs, whether they be interpersonal or academic. Please help us continue to build and strengthen our community by reaching out if you are having an issue or are concerned about a fellow student. Contact studentwellness@tech.cornell.edu with concerns and we will make sure to care for one another.  In the event of an emergency, please call 911 and Cornell Tech Safety & Security at 646-971-3611 (This number is also located on the back of your Cornell ID), when safe to do so.

Provisional schedule:

The following is a provisional schedule for the course.

Week Date Topic Lab
1 8/26 Course introduction + Q&A (recorded and online)
2 8/31 Designing Interaction  Staging Interaction
3 9/7

Skills Bootcamp: Video

Staging Interaction 2
4 9/14 Device Interfaces  Interactive Prototyping
5 9/21

Skills Bootcamp: Raspberry Pi/Linux

Interactive Prototyping 2
6 9/28 Voice interaction  Refining Interactions with Wizards
7 10/5

Guest lecture: Jonathan Dortheimer, Technion

Refining Interactions with Wizards 2
8 10/12

Fall Break - no class

Physical UI: Interface/Embodiment/Materiality
9 10/19

Physical User Interface

Physical User Interface 2 

10 10/26

Sensing and Responding

Observant Systems
11 11/2

Guest Lecture: Soft Robotics

Kari Love

Observant Systems 2
12 11/9 Distributed Interaction Little Interactions Everywhere 
in class MQTT walkthrough
13 11/16

Guest lecture: 

Dan Leithinger

Final Project  Working Day
14 11/23 Final Project  Working Day Thanksgiving - no class
15 11/30

Final Project functional check offs

16 12/7 Final Project Presentations