Table of Contents

Unless otherwise marked, we will have class in the HCIL on Tuesdays and CSIC2120 on Thursdays. While I endeavor to make all lectures interactive with in-class activities, Tuesday lectures are particularly so. Tuesdays are our 'workshop' days to play around with concepts, work on mini-projects, learn new equipment/tools, etc.

The PDF versions of my lectures are publicly viewable. The PPTX versions are behind a password protected class website. The PPTX versions are, in a word, better and allow you to view the embedded videos and animations

If you would like access to the original PPTX versions and you are not enrolled in this course, please email me: jonf@cs.umd.edu. If you do view the PPTX versions, know that you need the proper fonts for the slides to render correctly. I tend to use Helvetica Neue Ultra Light, Segoe UI Light, Segoe UI Semibold, and Segoe Print

Other professors/teachers: you are completely welcome to use my slides in your course; however, I would appreciate proper attribution and an email letting me know that you found them useful. :)

Week 01

Lecture 01: Intro to Class

Tuesday, January 27
PDF (15.4MB) | PPTX (252MB)

We will be meeting in the HCIL for the first class and for every Tuesday class so that we can work together on in-class activities, workshop ideas, and utilize the space that I built: the HCIL Hackerspace. The Thursday class will be in CSIC 2110 (unless otherwise noted). The directions to the HCIL and HCIL Hackerspace are here. Please get to class before 11AM as I would like to start class exactly on time.

Please bring with you the following items:
  1. Please bring a project box that you will use to transport your current assignments/mini-projects. I was at Target the other day and saw that they had some nice storage totes on sale (This one is $8.99 at Target but on sale for $7.64). Otherwise, you could also just get a cheap toolbox (This one is $9.24 on Amazon). The key is to get something with a handle and that is large enough to carry tools and your current project.

  2. In your project box, please bring any electronics relevant to the course (e.g., Arduinos if you have them, sensors, wire, wire cutters, breadboards, multimeters if you have them). Note: none of this is required for Tuesday. I am only asking you to bring these if you already own the parts/components/tools.

  3. Come to class with a laptop and a laptop power cord. Before class, please download and install the Arduino development environment (1.5.8 beta) and the Processing development environment (3.0a5).

Lecture 02: Intro to Arduino and Processing

Thursday, January 29
PDF (6.82MB) | PPTX (252MB)

This lecture goes through six interactive Arduino exercises including how to blink light-emitting diode (LED), how to fade an LED using analogWrite, how to read analog input to control LED brightness, how to use the serial port to interact with Processing, and some Processing basics. In addition, the lecture describes LEDs, current limiting resistors, and potentiometers as well as how to use these components.

Week 02

Lecture 03: Voltage, Current, Resistance, Ohm's Law, and Using Multimeters

Tuesday, February 3
PDF (3.1MB) | PPTX (8.6MB)

Lecture 04: IA2 Arduino Graph Presentations and Design Thinking

Thursday, February 5
PDF (8.8MB) | PPTX (138MB)

Week 03

Lecture 05: All Things Resistance

Tuesday, February 10
PDF (5.78MB) | PPTX (28.4MB)

This lecture covers how to read a resistor, how to measure power across a resistor, calculating series and parallel resistance, voltage dividers (and why they are often necessary when using analog sensors with the Arduino), the concept of pull-up and pull-down resistors and how to use them with microcontrollers, and some basic input like buttons, reed switches, and hall effect sensors. Yes, a lot of stuff! Please follow-up on concepts using the source links provided in the slides.

Lecture 06: MP1 Presentations

Thursday, February 12
No slides; see the list of projects demo'd here.

Week 04

Lecture 07: MP2 Inspirations and In-Class Soldering Activities

Tuesday, February 17
PDF (4.71MB) | PPTX (477MB)

Note: this lecture was cancelled due to a university closure (because of inclement weather). So, we actually conducted this lecture on Thursday, February 19th. Please review the Thursday lecture ("I've Got the Power!") on your own. We will not actually cover it during class time.

Lecture 08: I've Got the Power!

Thursday, February 19
PDF (7.7MB) | PPTX (87.5MB)

This lectures covers the basics of electrical power and energy (e.g., the difference between a watt and a watt-hour), helps develop intuition for power consumption (e.g., what's alot of power vs. a little), describes how to calculate power consumption in ohmic circuits, and provides details on batteries, including: types (Alkaline vs. Li-Ion), capacity, nominal cell voltages, battery discharge curves, C-ratings, energy densities, and internal resistances. After this lecture, you should know how to calculate how much power your circuits/projects consume and use this information to select an appropriate battery. Note: due to inclement weather on Tuesday, February 17th, we did not actually cover this material in class on February 19th (opting instead to cover Lecture 7 on February 19th). It's up to you to cover this material outside of class and to understand it. Please post to Piazza with questions.

Week 05

Lecture 09: MP1 Demos and MP2 Workshopping

Tuesday, February 24
No slides. Note: I briefly went over some concepts from Lecture 8 "I've Got the Power!" in class but we primarily used classtime to play with our MP1 demos and to ideate/brainstorm around MP2.

Lecture 10: I've Got the Power II

Thursday, February 26
PDF (3.6MB) | PPTX (634MB)

Originally, this lecture was scheduled to be "Turning Makers into Designers," a guest lecture by Mechanical Engineering Assistant Professor Mark Fuge; however, due to university weather closure, class was canceled (argh, our second one of the semester!). Thankfully, Mark has agreed to reschedule to March 3! So, instead I am posting the second set of 'power' slides: "I've Got the Power II." As we obviously did not cover this content in class, I expect that you will read the lecture and understand the material. There are a few embedded movies in the PPTX deck but I have links to the sources in the PDF, so you could really download either.

In this lecture, you'll learn: how to use a variable DC bench power supply and what they're good for, what voltage regulators are and why/when to use them, what the two main types of voltages regulators are and how they are different, and what dc-dc step-up voltage converters are and why/when to use them.

Week 06

Lecture 11: "Turning Makers into Designers" by Guest Lecturer: Mark Fuge, Assistant Professor in Mechanical Engineering

Tuesday, March 3
No slides.

Lecture 12: MP2 Demos and Presentations

Thursday, March 5
Class canceled due to inclement weather (the third cancellation of our class due to weather this semester, which is either cause for rejoice or much frustration depending on how you look at it).

Week 07

Lecture 13: MP2 Demos and Presentations.

Tuesday, March 10

Lecture 14: Digital Fabrication I: Intro to 3D Printing

Thursday, March 12
PDF (16.7MB) | PPTX (744MB)

Week 08: Spring Break

Spring Break: No Class

Tuesday, March 17

Spring Break: No Class

Thursday, March 19

Week 09

Lecture 15: Mixed Media Interactive Art by Guest Lecturer: Shannon Collis, Assistant Professor of Art

Tuesday, March 24
Slides to be posted.

Lecture 16: Work on MP3

Thursday, March 26
No Slides

Week 10

Lecture 17: Digital Fabrication II: HCI Research

Tuesday, March 31
PDF (15.5MB) | PPTX (658MB)

Lecture 18: MP3 Demos and Presentations

Thursday, April 2
No slides

Week 11

Lecture 19: Depth Cameras and Programming with the Microsoft Kinect

Tuesday, April 7
PDF (9.25MB) | PPTX (422MB)

This class covered depth cameras, the Microsoft Kinect v1 and v2, some inspirational projects, and an interactive coding exercise to build a skeleton tracker-based Arduino application. You can download the demo code from today's lecture here.

Lecture 20: Motors, Motor Drivers, and the Arduino

Thursday, April 9
PDF (2.78MB) | PPTX (297MB)

This class introduced motors, primary motor types (dc hobby motors, servo, steppers), motor drivers (e.g., H-Bridges, motor shields), and interactive exercises to construct motor-based Arduino sketches.

Week 12

Lecture 21: 3D-Printed Nite Lite Demos

Tuesday, April 14
No slides

Lecture 22: Work on MP4 / Final Projects

Thursday, April 16
No slides (Jon at CHI2015 in Seoul, Korea)

Week 13

Lecture 23: Work on MP4 / Final Projects

Tuesday, April 21
No slides (Jon at CHI2015 in Seoul, Korea)

Lecture 24: Work on MP4 / Final Projects

Thursday, April 23
No slides (Jon at CHI2015 in Seoul, Korea)

Week 14

Lecture 25: MP4 Demos/Presentations

Tuesday, April 28
No slides

Lecture 26: Final Project Brainstorm

Thursday, April 30
No Slides

Week 15

Lecture 27: Using ICs to Expand Arduino Functionality

Tuesday, May 5
PDF (1.8MB) | PPTX (92.6MB)

This lecture covers using integrated circuits (ICs)--specifically shift registers--to expand Arduino functionality. The code used in lecture is listed below. See also this book chapter entitled Shift Registers by Jeremy Blum in the book Exploring Arduino (link).

Lecture 28: Electrically Controlled Switches: Relays and Transistors

Thursday, May 7
PDF (1.2MB) | PPTX (79.6MB)

This lecture covers the use of relays and transistors to handle high current or voltage loads with the Arduino.

Week 16

Lecture 29: Final Exam

Tuesday, May 12

This will be a 75-minute open book exam. You will be asked to apply concepts from the semester to make a specified interactive artifact. You must bring your project boxes, Arduinos, and other basic materials. I will supply some sensors and other components required to make the aforementioned artifact.

Final Exam Answers
Answers PDF (2.84MB) | Answers PPTX (with video explanations)(536MB) | Source Code Solution

Lecture 30: No Class (Final Exams Starts May 14)

Thursday, May 14

Week 17: Final Project Demos

Final Project Demos

Wednesday, May 20
2-4PM in the HCIL