Developing and Designing Interactive Devices (2023FA)

Course Number and Title

INFO5345/CS5424/ECE5413 Developing and Designing Interactive Devices

Instructor (Author of Syllabus)

Prof. Wendy Ju,

Teaching team

Hauke Sandhaus,

          Maria Teresa Parreira,

Credits and Credit Hour Options

3 hours, Letter Grade

Time and Location

Tuesday Thursday 1:25pm - 2:40 pm

Tata Innovation Center, 141/151

Course 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.

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


Basic programming experience

Textbook(s) and/or Other Required Materials

    • No textbook is required for this course. 
    • Optional: Practical Electronics for Inventors, 4th edition, Scherz and Monk
    • A kit of parts is included with the course fee. This kit should be returned if the class is dropped.

Class and Laboratory Schedule

Lectures: 1.5 hrs/wk

Labs: 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. Attendance is mandatory.

Subsequent lab time is allocated for final project work. Most of the time out of class will be spent on lab or project work. 

Class GitHub Repo

The Class GitHub Repo is online at

Assignments and Projects 



Point Values

Online repository

Set up and continued documentation of coursework in online Github repository


Lab 1

Two-part lab activity about iteratively staging interaction with users.


Lab 2

Two-part lab activity developing prototype inputs and displays.


Lab 3

Two-part lab activity using voice and speech prototypes with users.


Lab 4

Two-part lab activity developing physical prototypes with users.


Lab 5

Two-part lab activity using computer recognition in interaction with users.


Lab 6

One-part lab activity on distributed interaction


Lowest lab grade dropped


Final Project

Solo or group project designing, prototyping and testing an interactive device with users


Class Participation

Attend in-person class and have meaningful participation in dialog and in class in-person and online community


Total Points



Method of assessing student achievement 

Lab Assignment Rubric: 


Grade Percentage

Novelty of Concept/Exploration of Design space: Sketches, photos, videos showing conceptual development of ideas


Technical Execution: System capable of interaction either through autonomous or wizarded mechanisms


Test with Users: Plan, execution and documentation of iterative test of design and system with users


Communication/Documentation of Ideas and Process: Text, video, and photo of project illustrating system capability and documenting plans and process


Final Project Rubric: 


Grade Percentage

Project planning: Allocation of needed resources (time, people, materials, facilities) anticipated well.


Design of Project: Interaction, hardware and software aspects of projects planned well.


Prototype Functionality: System capable of interaction, either through autonomous or wizarded mechanisms


Testing of Project: Functional or wizarded system tested with people


Project documentation: Text, video, and photo of project illustrating capability and documenting plans and process



Class Participation Rubric: 


Grade Percentage

Attend class


Participates in-class 


Participates online


Gives feedback and assistance to others


Helps to maintain shared course resources (tools and materials)



Basis of grade determination 

Grading:  Letter, 3 hours

Grading scale:

Grade A+ A A- B+ B B- C+ C C- F
Percent >97 93-96 90-92 87-89 83-86 80-82 77-79 73-76 70-72 <70

Typical Topics Covered

    • sensors and actuators
    • prototyping with component electronics
    • interface and interaction prototyping
    • single board Linux system development
    • open-source software and libraries
    • speech recognition
    • speech synthesis
    • computer vision recognition
    • physical prototyping
    • system integration
    • user testing

Course 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 

Academic Integrity

Each student in this course is expected to abide by the Cornell University Code of Academic Integrity.  Any work submitted by a student in this course for academic credit will be the student's own work. The policy can be found on the university’s website here:

In this class, we make substantial use of online materials and 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 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
    • assistance from outside students or people
    • assistance from chatGPT or other online services

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, and hence our awareness of your outside resources is essential.

The faculty member may impose a grade penalty for unattributed copying, which will impact the student who copied work and any other student benefiting from that copied work. Penalty for willful and egregious violation of this Code can also be extended to include failure of the course and University disciplinary action. 

Students with Disabilities

Your access in this course is important. Please give the instructor your Student Disability Services (SDS) accommodation letter early in the semester so that we have adequate time to arrange your approved academic accommodations. If you need an immediate accommodation for equal access, please speak with me after class or send an email message to me and/or SDS at If the need arises for additional accommodations during the semester, please contact SDS. You may also feel free to speak with Student & Academic Affairs at Cornell Tech who will connect you with the university SDS office.

Religious Observances

Cornell University is committed to supporting students who wish to practice their religious beliefs. Students are advised to discuss religious absences with their instructors well in advance of the religious holiday so that arrangements for making up work can be resolved before the absence.


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.

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 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.


Course Summary:

Date Details Due