For Educators

TAC 348 is a four-unit, project-based course that introduces physical computing to students from a wide range of majors. The course assumes introductory programming experience, but no previous electronics or microcontroller experience.

The materials on this site are shared as an open educational resource. Educators are welcome to use or adapt individual lessons, assignments, reference guides, or the broader course sequence under the terms of the site’s Creative Commons license.

Course Approach

Students develop both hardware and software skills through a sequence of increasingly integrated projects. They begin with fundamental circuits and embedded programming, then work with sensors, motors, displays, wireless communication, cloud services, APIs, and user interfaces. The course concludes with an original physical device and interface.

The course emphasizes:

  • Learning through frequent hands-on construction
  • Connecting software concepts to physical behavior
  • Communicating data between devices, cloud services, and interfaces
  • Documenting circuits, code, and design decisions
  • Considering accessibility when designing embedded devices

Learning Objectives

By the end of the course, students should be able to:

  • Design a device using a microcontroller and electronic components
  • Measure environmental conditions and send readings to a cloud platform
  • Create physical effects using motors, lights, sound, and other actuators
  • Build an interface that communicates with and controls a device
  • Identify accessibility challenges and suggest design improvements

The complete objectives, outcomes, prerequisites, and policies are available in the current syllabus.

Course Structure

The public materials include:

Adapting the Materials

The materials can be used at several scales:

  • Link to a single reference guide or lecture from another course
  • Adapt an assignment to a different microcontroller or component set
  • Use the weekly sequence as a starting point for a physical computing course
  • Combine selected modules into an IoT, prototyping, wearable computing, or embedded systems course

The current implementation uses the Particle Photon 2 and Particle Workbench. Many concepts and activities can be adapted to Arduino-compatible or other embedded platforms, although code, pin assignments, and cloud integrations will require revision.

Licensing and Attribution

Unless otherwise noted, the original course materials are licensed under CC BY-NC-SA 4.0. Some pages also include third-party images, code, or resources governed by their own licenses.

A suggested attribution is:

Rob Parke, TAC 348: Making Smart Devices, University of Southern California, https://reparke.github.io/TAC348-Making-Smart-Devices/, CC BY-NC-SA 4.0.

Share Your Use

If you use or adapt these materials, please use the contact and feedback form to share what you used and how it worked. Reports of classroom use, corrections, adaptations, and suggestions are welcome.