Teaching interaction design, prototyping, and product thinking

Overview

Alongside my product design work, I’ve taught 2 university courses focused on interaction design, product design, and the end-to-end design process. Across two different programs:

  1. the University of Michigan in Ann Arbor

  2. The College for Creative Studies in Detroit

Both courses were grounded in the product design lifecycle: identifying a meaningful problem, shaping a clear problem statement, researching users and context, uncovering patterns and pain points, generating concepts, prototyping, and testing. But each class required a different teaching approach because the students brought very different backgrounds, skills, and expectations.

What made this work especially meaningful to me was helping students see design not just as aesthetics or software screens, but as a way of thinking — a way to understand people, frame problems, and make better decisions through iteration.

390: Intro to Product Design

University of Michigan, College of Engineering / Center for Entrepreneurship

Context

This course introduced product design to engineering students, many of whom were encountering design, HCI, and user-centered methods for the first time. The goal was not only to expose them to design vocabulary and process, but to help them build practical confidence in moving from an idea to a small, testable prototype.

The class had about 50 students and was co-taught with another instructor. We rotated lecture responsibilities while the other instructor supported students during class time, which created a collaborative rhythm that helped us balance structured teaching with more individualized guidance.

The challenge

The main challenge was teaching students who were often strong analytical thinkers but new to design as a discipline. Many were comfortable solving technical problems, but less familiar with ambiguity, open-ended exploration, and the idea that good design starts by framing the right problem rather than rushing to a solution.

This meant the course had to do several things at once:

  • introduce the fundamentals of product design and HCI

  • help students define stronger problem statements

  • teach methods for uncovering user pain points and patterns

  • build comfort with critique, iteration, and prototyping

  • make the design lifecycle feel approachable rather than abstract

Approach

We structured the course around the product design lifecycle, helping students work step by step from problem identification to prototype development.

Core topics included:

  • defining and refining a strong problem statement

  • identifying user needs and contexts

  • recognizing patterns and pain points through observation and synthesis

  • ideation and concept development

  • prototyping and testing

  • preparing a small product concept to communicate and share

Because many of the students were new to design, I focused heavily on helping them understand why each step mattered, not just what deliverable to produce. The teaching approach balanced lectures, examples, critique, and hands-on discussion so students could gradually connect process to outcomes.

The co-teaching structure also helped. By rotating lectures and student support roles, we were able to keep the class dynamic while still giving students more direct feedback during working sessions.

Outcomes

The course resulted in positive student feedback and a set of final projects that demonstrated meaningful growth over the semester. Students were able to move from broad or underdeveloped ideas toward clearer problem framing, better-defined user needs, and more intentional prototype decisions.

For many, the course served as an introduction not only to product design, but to a more human-centered way of building. That made the work especially rewarding: the class was not just about teaching methods, but about helping students expand how they think.

Project 2: Interaction Design I

College for Creative Studies, Communication Design Program

Context

At the College for Creative Studies in Detroit, I taught an interaction design course within the Communication Design program. This course was the first of a three-course sequence, which meant it played an important foundational role in how students would understand interaction, interface thinking, and digital product design moving forward.

This class had 16 students, and the smaller cohort created space for deeper critique, more individualized feedback, and more hands-on discussion throughout the semester.

The challenge

Unlike the engineering course, these students came in with stronger backgrounds in visual communication and design fundamentals. That shifted the teaching opportunity.

Because they were already more comfortable with composition, form, and communication, we could go further into the complexity of interaction design: not just how something looks, but how structure, sequence, feedback, and interface behavior shape understanding.

The challenge here was helping students connect their visual design instincts to the logic of product and interface design — and then extend that work into code.

Approach

As with the Michigan course, I guided students through the broader product design lifecycle:

  • identifying a problem or opportunity

  • framing a strong design brief

  • researching user needs and patterns

  • generating concepts and iterating on direction

  • prototyping and refining an experience

But in this course, we were able to push further into implementation. Students designed their concepts in Figma and then translated them into working front-end outcomes using HTML, CSS, and JavaScript.

That allowed the class to connect visual communication design with interaction design and code in a much more tangible way. Students could see how design decisions affected behavior, structure, usability, and expression — not just static composition.

Because this was the first course in a sequence, I also focused on building a strong foundation:

  • understanding interface structure

  • thinking through interaction states and transitions

  • learning how visual communication supports usability

  • recognizing the relationship between design intent and implementation

Outcomes

The course produced a strong range of final outcomes, with students moving from Figma concepts into coded interactive work. The smaller class size helped support thoughtful critique and more detailed mentoring, and students were able to engage with both the visual and technical dimensions of interaction design.

This course was especially rewarding because it gave students an early foundation they could continue building on in later classes. It also reflected a teaching approach I care deeply about: helping students understand design as both a communication discipline and a practical, buildable process.

What these experiences taught me

Teaching has made me a stronger design leader.

It has sharpened how I explain design decisions, structure feedback, break down complex ideas, and support people with very different levels of experience. It has also reinforced how important it is to meet people where they are — whether they are engineers new to HCI or communication designers learning how interfaces behave in code.

Across both courses, I was helping students learn more than tools. I was helping them build a mindset:

  • define the right problem

  • pay attention to people and patterns

  • test ideas before overcommitting

  • communicate clearly

  • iterate toward something more useful and more thoughtful

That mindset is central to how I work as a product designer, and teaching it has become one of the most meaningful extensions of my practice.

Previous
Previous

Modernizing JSTOR’s B2C subscription experience

Next
Next

Expanding business reach with a new website