CS Discoveries Beta Preview 2021

Standards Alignment

Unit 4 Overview

Unit 4 extends the problem solving process to incorporate user centered design and software development. By the end of the unit, students should see the design process as a form of problem solving that prioritizes the needs of a user. They should be able to identify user needs and assess how well different designs address them. In particular they know how to develop a paper and digital prototypes, gather and respond to feedback about a prototype, and consider ways different user interfaces do or do not affect the usability of their apps. Students should leave the unit with a basic understand of other roles in software development, such as product management, marketing, design, and testing, and to use what they have learned as a tool for social impact.

Learning Framework

Understanding the user

Students should actively consider the needs of others while developing a solution to a problem. They should identify user needs as central criteria for the development of a computational artifact and distinguish their own needs from those of the user, taking steps to identify those needs through a variety of strategies.

Identify user needs as distinct from the needs of the developer:

Describe the target users for a computational artifact and identify those user’s needs, distinguishing between the needs of the student and those of the user.

Collect and analyze user information to better understand user needs:

Collect information on users, either through research, interviews, or surveys, and analyze that information to create a profile for the user, including the needs that the user may have in interacting with the intended computational artifact.

Designing to criteria

Students should be able to use set criteria to guide their design of a computational artifact, both in the overall design and purpose of the artifact and in the specific ways that users can interact with it.

Generate and evaluate ideas for meeting specific criteria

Generate multiple strategies for meeting user needs, then organize them into meaningful categories so that they can be analyzed. Select the most appropriate strategies from the list.

Design according to specific user needs

Design an artifact, including core functionality and user interface, that meets the needs of a specific user, or design improvements to an existing artifact in order to meet those needs.

Prototyping and Testing

Students should be able to create and use a prototype to test the proposed features and functionality of a computational artifact. They should design prototypes tests that allow them to observe user interaction and get user feedback on the artifact and use that feedback to create a plan for improving the artifact’s design.

Create and test a prototype for a computational artifact

Create a paper or digital prototype that incorporates the user flow for a computational artifact. Design and run tests that use these prototypes to gather feedback on a design before creating the full computational artifact.

Synthesize user feedback to identify needed improvements to a design

Analyze user tests to identify features that should be removed, added, or improved within the design of a computational artifact.

Software Development

Use events to detect and respond to user input

Select the appropriate input element for a given type of information and create an event that detects and responds to that input.

Collaboratively develop a computational artifact

Collaborate with others to develop a computational artifact, developing a plan for splitting work effectively, assigning roles and responsibilities to each team member, and integrating all components into the final artifact.

Communicate and document the design and development of a computational artifact

Communicate the design and intended use of program, as well as the development of an ongoing project, to a variety of audiences, including non-technical users.

Refinine Computational Artifacts

Analyze user feedback and test results on a computational artifact, then categorize and prioritize the issues according to impact and ease of implementation. Create and implement a plan for further development of the artifact.

Evaluation and Feedback

Students should be able to evaluate a computational artifact, such as a web page, app, or program, according to its ability to meet a broad range of user needs and its social impact. Students should understand that computational artifacts may incorporate assumptions that developers have made about users, and should be able to clearly and respectfully critique a design

Evaluate usability of computational artifact

Critically evaluate a design based on a specific set of user needs, identifying which needs are and are not met by the design.

Evaluate the purpose and impact of a computational artifact:

Identify the ways in which a computational artifact will impact the intended users, as well as others. This impact may or may not be related to the intended purpose of the artifact. Evaluate whether or not a computational artifact is successful in its intended purpose.


Download as CSV

The Design Process

Lesson 1: Designing With Empathy

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

CS - Computing Systems
  • 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.

Lesson 2: Understanding Your User

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

CS - Computing Systems
  • 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.

Lesson 3: User-Centered Design - Define and Prepare

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

CS - Computing Systems
  • 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
IC - Impacts of Computing
  • 2-IC-20 - Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.
  • 2-IC-21 - Discuss issues of bias and accessibility in the design of existing technologies.

Lesson 4: User-Centered Design - Try and Reflect

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

CS - Computing Systems
  • 2-CS-02 - Design projects that combine hardware and software components to collect and exchange data.
IC - Impacts of Computing
  • 2-IC-20 - Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.
  • 2-IC-21 - Discuss issues of bias and accessibility in the design of existing technologies.

Lesson 5: User Interfaces

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
  • 2-AP-17 - Systematically test and refine programs using a range of test cases.
CS - Computing Systems
  • 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.

Lesson 6: Feedback and Testing

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
  • 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
  • 2-AP-17 - Systematically test and refine programs using a range of test cases.
IC - Impacts of Computing
  • 2-IC-21 - Discuss issues of bias and accessibility in the design of existing technologies.
  • 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

Lesson 7: Identifying User Needs

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
  • 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
  • 2-AP-17 - Systematically test and refine programs using a range of test cases.
IC - Impacts of Computing
  • 2-IC-21 - Discuss issues of bias and accessibility in the design of existing technologies.
  • 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

Lesson 8: Project - Paper Prototype

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
  • 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
  • 2-AP-17 - Systematically test and refine programs using a range of test cases.

Lesson 9: Designing Apps for Good

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

IC - Impacts of Computing
  • 2-IC-20 - Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.
  • 2-IC-21 - Discuss issues of bias and accessibility in the design of existing technologies.

Lesson 10: Market Research

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

IC - Impacts of Computing
  • 2-IC-20 - Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.
  • 2-IC-21 - Discuss issues of bias and accessibility in the design of existing technologies.

Lesson 11: Exploring UI Elements

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
  • 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
  • 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.

Lesson 12: Build a Paper Prototype

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
  • 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
  • 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.

Lesson 13: Prototype Testing

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-10 - Use flowcharts and/or pseudocode to address complex problems as algorithms.
  • 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
  • 2-AP-17 - Systematically test and refine programs using a range of test cases.
CS - Computing Systems
  • 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
DA - Data & Analysis
  • 2-DA-08 - Collect data using computational tools and transform the data to make it more useful and reliable.
  • 2-DA-09 - Refine computational models based on the data they have generated.
IC - Impacts of Computing
  • 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

Lesson 14: Design Mode in App Lab

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
  • 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
  • 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
  • 2-AP-18 - Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
  • 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
  • 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
IC - Impacts of Computing
  • 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

Lesson 15: Build a Digital Prototype

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
  • 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
  • 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
  • 2-AP-18 - Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
  • 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
  • 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
IC - Impacts of Computing
  • 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

Lesson 16: Events in App Lab

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
  • 2-AP-14 - Create procedures with parameters to organize code and make it easier to reuse.
  • 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
  • 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
  • 2-AP-18 - Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
  • 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
IC - Impacts of Computing
  • 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

Lesson 17: Linking Prototype Screens

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
  • 2-AP-14 - Create procedures with parameters to organize code and make it easier to reuse.
  • 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
  • 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
  • 2-AP-18 - Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
  • 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
IC - Impacts of Computing
  • 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

Lesson 18: Testing the App

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
  • 2-AP-17 - Systematically test and refine programs using a range of test cases.
  • 2-AP-18 - Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
CS - Computing Systems
  • 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
DA - Data & Analysis
  • 2-DA-08 - Collect data using computational tools and transform the data to make it more useful and reliable.
IC - Impacts of Computing
  • 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

Lesson 19: Bugs and Features

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
  • 2-AP-14 - Create procedures with parameters to organize code and make it easier to reuse.
  • 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
  • 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
  • 2-AP-17 - Systematically test and refine programs using a range of test cases.
  • 2-AP-18 - Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
  • 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
  • 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
DA - Data & Analysis
  • 2-DA-09 - Refine computational models based on the data they have generated.
IC - Impacts of Computing
  • 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

Lesson 20: Updating Your Prototype

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-13 - Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.
  • 2-AP-14 - Create procedures with parameters to organize code and make it easier to reuse.
  • 2-AP-15 - Seek and incorporate feedback from team members and users to refine a solution that meets user needs.
  • 2-AP-16 - Incorporate existing code, media, and libraries into original programs, and give attribution.
  • 2-AP-17 - Systematically test and refine programs using a range of test cases.
  • 2-AP-18 - Distribute tasks and maintain a project timeline when collaboratively developing computational artifacts.
  • 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
  • 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
DA - Data & Analysis
  • 2-DA-09 - Refine computational models based on the data they have generated.
IC - Impacts of Computing
  • 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.

Lesson 21: Project - App Presentation

Standards Alignment

CSTA K-12 Computer Science Standards (2017)

AP - Algorithms & Programming
  • 2-AP-19 - Document programs in order to make them easier to follow, test, and debug.
CS - Computing Systems
  • 2-CS-01 - Recommend improvements to the design of computing devices, based on an analysis of how users interact with the devices.
DA - Data & Analysis
  • 2-DA-09 - Refine computational models based on the data they have generated.
IC - Impacts of Computing
  • 2-IC-20 - Compare tradeoffs associated with computing technologies that affect people's everyday activities and career options.
  • 2-IC-21 - Discuss issues of bias and accessibility in the design of existing technologies.
  • 2-IC-22 - Collaborate with many contributors through strategies such as crowdsourcing or surveys when creating a computational artifact.