Dr. Jon Froehlich
Assistant Professor
CS Office: 3173 AV Williams
HCIL Office: 2117F Hornbake
Office Hours: by appointment

Course Overview

In this course, we will explore the materiality of interactive computing. In the words of Hiroshii Ishii, we will seek to "seamlessly couple the dual worlds of bits and atoms." This is a particularly interesting time to survey and explore the space between atoms and bits because of three, interrelated technology trends:
  • the recent emergence (or reemergence) of the DIY/Makers movement, which has led to widespread opportunities to interface and work with hardware that has rather low barriers of entry (e.g., the Arduino) and provide new opportunities for tangible interaction;
  • the pervasiveness of powerful mobile computers in the form of smartphones and tablets that are constantly on and nearly constantly with us and imbued with a rich array of sensors such as accelerometers, gyroscopes, and location-sensing that allow for new types of off-the-desktop interaction;
  • the "hardware renaissance" in Silicon Valley (and other places) that is fostering a renewed culture of hardware-oriented products and ideas such as the FitBit,, the Lytro, the Pebble Smartwatch, Nest, Microsoft's Kinect, the Nike Fuelband, and low cost flying drones such as the AR.Drone.

Taken together, we can no longer simply consider the GUI and WIMP interfaces as primary interaction models for computing. We must explore new spaces of interaction that are, in part, enabled by the above three points.

Note: this is the first ever offering of this course and, as a result, things will be rather experimental. In addition, the course is not currently an MS or PhD comps (qualifying) course for CS graduate students. It can serve as an elective, however.

Course Scoping and Prerequisites

There will be a bit of everything in this class and I will be trying to push on the theme of tangible interactive computing and the future of HCI. We will be working with Arduino, sensors, Kinects, and AR.Drones. I hope to also cover some simple signal processing and machine learning and toolkits like OpenFrameworks and Weka.
  • This is not a fundamentals of HCI course. If you are looking for an introduction to HCI, this is not the course. For that, I encourage you to explore CMSC434: Introduction to Human-Computer Interaction; INST631: Fundamental of Human-Computer Interaction, and/or INST632: Human-Computer Interaction Design Methods.
  • Programming experience required. This is a computer science course. I am happy to see enrollment from Mechanical Engineering, the iSchool, and GIS on my course roster but do note that everyone in this class must know how to program. You must feel confident in at least one programming language be it Java, Python, Ruby, C#, Javascript, etc., etc.--I do not care which. The point is that you have sufficient knowledge to comfortably and confidently build technical systems--you can pick up the rest as the course progresses.
  • Electronics experience useful, but not required. We will be building basic tangible interactive computing systems that require interfacing with sensing and actuation circuits and programming micro-controllers. If you have limited hardware experience but have strong programming skills, you should be fine.

Course Grades
There will be no exams in this class; we will learn by doing and learn from each other. We will, however, have grades, which are broken down as follows:
  • There will be four assignments in this class, each worth 16.5% of your overall grade (based on your implementation, presentation, write-up, video, etc.).
  • There will be one course-long project worth 24% of your overall grade, which will be due and presented during our "Final Exam" slot.
  • The 10% remaining will be based on class participation (which includes contributions to discussions in class, posts to Piazza, etc.)

The assignments and course project will be graded based on peer review and my grade. The top two or three (depending on how many teams we end up having) will earn a special bonus (perhaps a small percentage bump in their grade or a healthy snack).

I don't want grades to become a preoccupation in class (you are, after all, all graduate students). Be passionate. Put in the effort. Be prepared. And I think you will do well. You can always email me or visit me in my office to discuss how you're doing.

Course Lectures

Course time will be a mixture of lectures, discussions, and workshops. I expect that each student in this class takes an active role in participating.

Primary Sources

The content for this course is shaped primarily by four sources: (i) related lectures/course curriculum from other universities, (ii) books, (iii) research related to tangible interactive computing, and (iv) blogs/other online media. I will update this list throughout the semester as I become aware of more related sources.

Related Course Curriculum


There are no required books for this class. The listing below includes books that I found useful in shaping and informing course content. The University of Maryland has a subscription to Safari Tech Books Online, which includes hundreds of books published by O'Reilly (note: this is not a comprehensive subscription to everything in Safari's catalog--indeed only 8%--but a good resource nonetheless). I've attempted to include Safari links when available.

General Digital Making / Electronics

  • Charles Platt, Make: Electronics, O'Reilly, 2009, Safari Online (this is one of my favorite intro electronics books; we have a copy in the HCIL Hackerspace)
  • Charles Platt, Make: Encyclopedia of Electronic Components Volume 1: Resistors, Capacitors, Inductors, Switches, Encoders, Relays, Transistors, O'Reilly, 2012, Amazon, Safari Online
  • Dan O'Sullivan and Tom Igoe, Physical Computing: Sensing and Controlling the Physical World with Computers, Thomson, 2004, Amazon (we have a copy in the HCIL Hackerspace)
  • Paul Scherz, Practical Electronics for Inventors, McGraw-Hill, 2000 (we have a copy in the HCIL Hackerspace; a new version of this is supposedly coming out in early 2013)
  • Tom Igoe, Making Things Talk (2nd edition), O'Reilly, 2011, Safari Online (we have a copy in the HCIL Hackerspace)


Research Papers

Unlike many research seminars, which are oriented around reading and writing reviews of research papers, we will be doing less reading and more doing. :) However, the papers that I do assign will likely come from CHI, UIST,TEI, ISWC, UbiComp, and ASSETS. These are also potential venues for you to think about submitting your class project to--come talk to me if you're interested in this.

Web Links

Here are some useful web links related to Arduino, making, and/or tangible interactive computing. I find many of the examples on these webpages extremely compelling, useful, and inspirational. Please feel free to submit other resources as you find them.

Arduino Tutorials

Intro to Electronics

Soldering Tutorials

LEDs (Light Emitting Diodes)

Batteries and Power Considerations

General Making/Electronics Hacking Instructional Websites

Schematic Circuit/PCB Design

Traditional Making/Shop Tutorials

e-Textiles/Electronic Fabrics

General Making/Hacking Websites

Assignments and Deliverables

As this is the first time this course has been taught, the assignments will be brand new. As a result, some will have kinks and it's also difficult for me to assess how long they will take you. Because this course is not a comps course and because it's new, I've attempted to limit the workload. However, there will be five assignments and one (near) course-long project. Both will be done in rotating teams of two.

For the course project, you and your team member will pitch a tangible interactive computing idea to the class (teams must be formed by Sept 17th and the pitch occurs on either Mon the 24th or Wed the 26th). We will collectively provide constructive feedback on the pitched idea and then you will spend the rest of the course implementing it. Remember, each team has a budget of ~$200. Any equipment purchased during this class must be returned to me (really, the HCIL Hackerspace) at the end of the term.

Assignment Deliverables

Assignment deliverables are due sometime before lecture begins (please consult the particular assignment for details). We will be taking a slightly different approach to deliverables than you may have used in the past. For each assignment you will:
  • Utilize github to store and post your code. This should be publically viewable and accessable. You are welcome to use any license you like on the code itself (including no license at all--e.g., None). When you use other people's code, you must cite your source--even if it's just a blog post and a small snippet. I believe github provides academic accounts (for additional features, please check the website).
  • Post a two-page ACM formatted writeup as a PDF. Download the paper template here:
    Updated: for some assignments, you will only need to make a Wiki page describing your project and various deliverables.
  • Upload a video demoing your submission to YouTube. You should include the link to the YouTube video in your PDF and on the Wiki. I will create a YouTube playlist for each assignment containing each team's video.

Please see each individual assignment page for details. For example, see the assignment1 page (here).

Project Deliverable

The project deliverable is similar to the assignment in that you need to write some text describing your project, post your code to github, and upload a video submission; however, I would like you to create an instructables article instead of a ACM formatted PDF (e.g., Air quality balloons, Wallbots). Helpful tip: take pictures along the way as you work so that you can use these in your instructable. During our finals timeslot rather than take a final exam, we will all watch the final project videos and eat snacks. :)

Schedule and Lectures Slides

A tentative schedule for the class is posted here (on Piazza). We will change scheduling based on how well the assignments go and various other influences that may arise.

For my slides, I use the Segoefont family typeface including Segoe UI Semibold, Segoe UI Light, and Segoe Condensed. This is a font popularized by Microsoft through their Metro interface and will be their standard on Windows 8 and Windows 8 Phone. Consequently, I've been looking for a new font. Recently, I've also been using Helvetica lightweight fonts like HelveticaNeueLT Com 25 UltLt. If you don't have these fonts, the PowerPoint (PPTX) version of the slides will not look right but the PDF versions shoudl be fine. The PDF slides are freely available; the PPTX slides are behind a login/password, which you can find here (on Piazza).