Unit 4 - The Design Process

This unit transitions students from thinking about computer science as a tool to solve their own problems towards considering the broader social impacts of computing. Through a series of design challenges, students are asked to consider and understand the needs of others while developing a solution to a problem. The second half of the unit consists of an iterative team project, during which students have the opportunity to identify a need that they care about, prototype solutions both on paper and in App Lab, and test their solutions with real users to get feedback and drive further iteration.

Chapter 1: User Centered Design

Big Questions

  • How do designers identify the needs of their user?
  • How can we ensure that a user's needs are met by our designs?
  • What processes will best allow us to efficiently create, test, and iterate upon our designs?

Week 1

Lesson 1: Analysis of Design


The class explores a variety of different teapot designs to consider how design choices or made and why. Using the teapots as an example, the class will explore the relationship between users, their needs, and the design of objects they use.

Student Links: Activity Guide | Image

Lesson 2: Understanding Your User


Using user profiles, the class explores how different users might react to a variety of products. Role playing as a different person, each member of the class will get to experience designs through someone else's eyes.

Teacher Links: Slide Deck Student Links: Activity Guide | User Profile | User Profile | User Profile | User Profile

Lesson 3: User-Centered Design Micro Activity


In small groups, the class uses the design process to come up with ideas for smart clothing. From brainstorming, to identifying users, to finally proposing a design, this is the first of several opportunities in this unit to practicing designing a solution for the needs of others.

Student Links: Activity Guide

Week 2

Lesson 4: User Interfaces


See how a paper prototype can be used to test and get feedback on software before writing any code. To help out a developer with their idea, the class tests and provides an app prototype made of paper.

Student Links: Activity Guide | Activity Guide | Activity Guide

Lesson 5: Feedback and Testing


Users have been testing an app, and they have lots of feedback for the developer. The class needs to sort through all of this feedback, identify the common themes and needs, and start revising the prototype to make it better meet the users' needs.

Student Links: Activity Guide | Activity Guide | Activity Guide

Lesson 6: Identifying User Needs


Up to this point the users that the class has considered have all been remote, and the only information from users has come through text or role playing. Now the class will rely on each other as potential users, and pairs will get to interview each other to identify needs that could be addressed by developing an app.

Student Links: Activity Guide | Project Guide

Lesson 7: Project - Paper Prototype

Unplugged | Project

Using the interview information from the previous lesson, the class comes up with app ideas to address the needs of their users. To express those ideas, and test out their effectiveness, each student creates and tests paper prototypes of their own.

Student Links: Rubric | Project Guide

Chapter Commentary

This chapter introduces the design process as a specific version of the problem solving process in which empathy for a user's needs is consistently integrated. Students learn strategies for identifying user needs and assessing how well different designs address them. In particular they learn how to develop a paper prototype, how to gather and respond to feedback about a prototype, and consider ways different user interfaces do or do not affect the usability of their apps.

Chapter 2: App Prototyping

Big Questions

  • How do teams effectively work together to develop software?
  • What roles beyond programming are necessary to design and develop software?
  • How do designers incorporate feedback into multiple iterations of a product?

Week 3

Lesson 8: Designing Apps for Good


To kick off the app design project, the class organizes into teams and starts exploring app topics. Several example socially impactful apps serve as inspiration for the project.

Teacher Links: Teacher Resource Student Links: Activity Guide

Lesson 9: Market Research

Dive into app development by exploring existing apps that may serve similar users. Each group identifies a handful of apps that address the same topic they are working on, using those apps to help refine the app idea they will pursue.

Student Links: Activity Guide

Week 4

Lesson 10: Paper Prototypes


Paper prototypes allow developers to quickly test ideas before investing a lot of time writing code. In this lesson teams explore some example apps created in App Lab, using those apps to help inform the first paper prototypes of their apps.

Student Links: Template | Wireframe | Activity Guide

Lesson 11: Prototype Testing


In this lesson teams test out their paper prototypes with other members of the class. With one student role playing the computer, one narrating, and the rest observing, teams will get immediate feedback on their app designs which will inform the next version of their app prototypes.

Student Links: Activity Guide | Video

Week 5

Lesson 12: Digital Design

App Lab

Having developed, tested, and gathered feedback on a paper prototype, teams now moves to App Lab to build the next iteration of their apps. Using the drag-and-drop Design Mode, each team member builds out at least one page of their team's app, responding to feedback that was received in the previous round of testing.

Student Links: Activity Guide | Activity Guide

Lesson 13: Event Driven Programming

App Lab

Building on the screens that the class designed in the previous lesson, teams combine screens into a single app. Simple code can then be added to make button clicks change to the appropriate screen.

Lesson 14: Basic App Functionality

App Lab

Teams add a bit more polish and functionality to their apps before testing. Several examples are provided to demonstrate simple code that adds cool features.

Week 6

Lesson 15: Testing the App

Teams run another round of user testing, this time with their interactive prototype. Feedback gathered from this round of testing will inform the final iteration of the app prototypes.

Student Links: Activity Guide

Lesson 16: Improving and Iterating

Using the feedback from the last round of testing, teams implement changes that address the needs of their users. Each team tracks and prioritizes the features they want to add and the bugs they need to fix.

Student Links: Activity Guide

Week 7

Lesson 17: Project - App Presentation


Each team prepares a presentation to "pitch" the app they've developed. This is the time to share struggles, triumphs, and plans for the future.

Student Links: Slide Deck | Exemplar | Rubric

Chapter Commentary

This chapter is focused on a long running group project that allows students to apply all they've learned about User-Centered Design to develop an app prototype. Working in teams, students identify a social issue that they care about and design and prototype an app to address that issue. This is an opportunity for students to explore other roles in software development, such as product management, marketing, design, and testing.