Unit 3 - Intro to App Design
Unit Overview
Students design their first app while learning both fundamental programming concepts and collaborative software development processes. Students work with partners to develop a simple app that teaches classmates about a topic of personal interest. Throughout the unit, they learn how to use Code.org’s programming environment, App Lab, to design user interfaces and write simple event-driven programs. Along the way, students learn practices like debugging, pair programming, and collecting and responding to feedback, which they will be able to use throughout the course as they build ever more complex projects. The unit concludes with students sharing the apps they develop with their classmates.
Teaching Tip
Modifications for Virtual and Socially-Distanced Classrooms
Are you teaching in a virtual setting or in a socially-distanced classroom? Check out this document for ideas and resources to help you tailor common practices like Think Pair Share or Peer Feedback to your learning environment.
For lesson-specific modifications, check out the Lesson Modifications section within Lesson Plans.
Learn more about how to use these resources here.
Unit Philosophy and Pedagogy
-
New Topics, Same Classroom Culture: This unit is students' first experience with programming but it is designed to maintain the collaborative and inclusive classroom environment developed in the previous two units. The collaborative project, fun unplugged activities, and the focus on experimenting should help keep your whole class working together and trying out ideas.
-
Emphasizing Skills: Since this is the first of many programming units, it emphasizes attitudes and skills that will serve your students well for the remainder of the year. The project that runs through this unit emphasizes that programming is a creative and collaborative endeavor that can be used to help others. Key practices like pair programming and debugging help normalize working with a partner, asking for help, and making mistakes. While students have a lot to learn about programming and App Lab, there is just as much emphasis on establishing these positive habits and mindsets.
-
Empowering "Creators": This unit empowers students to be creators with a major emphasis on making projects that are personally meaningful. Students have a lot to learn about programming, but the goal is that they come away from this unit seeing programming as a powerful form of personal expression that allows them to draw on their innate talents and interests to help solve problems in their community.
Major Assessment and Projects
The unit project asks students to collaborate with a classmate to design an app that can teach others about a topic of shared interest. Students practice interviewing classmates to identify the goals of the project, mock up designs, collaboratively program the app, and run simple user tests. The app itself must include at least three screens and demonstrate what students have learned about user interface design and event-driven programming. Students submit their app, project guide, and written responses to reflection questions about how the app is designed and the development process used to make it. Students will also complete an end-of-unit assessment aligned with CS Principles framework objectives covered in this unit.
AP Connections
This unit and unit project helps build towards the enduring understandings listed below. For a detailed mapping of units to Learning Objectives and EKs please see the "Standards" page for this unit.
- CRD-1: incorporating multiple perspectives through collaboration improves computing innovations as they are developed.
- CRD-2: developers create and innovate using an iterative design process that is user-focused, that incorporates implementation/feedback cycles, and that leaves ample room for experimentation and risk-taking.
- AAP-2: The way statements are sequenced and combined in a program determines the computed result. Programs incorporate iteration and selection constructs to represent repetition and make decisions to handle varied input values.
- AAP-3: Programmers break down problems into smaller and more manageable pieces. By creating procedures and leveraging parameters, programmers generalize processes that can be reused. Procedures allow programmers to draw upon existing code that has already been tested, allowing them to write programs more quickly and with more confidence.
This unit includes content from the following topics from the AP CS Principles Framework. For more detailed information on topic coverage in the course review Code.org CSP Topic Coverage.
- 1.1 Collaboration
- 1.2 Program Function and Purpose
- 1.3 Program Design and Development
The College Board has supplied formative Create PT questions to help prepare students to complete the Create Task. We recommend that students complete the following prompts with the unit project. More information can be found in Code.org CS Principles Topic Coverage.
- 3.a.i.
- 3.a.ii.
- 3.a.iii
Week 1
Lesson 1: Introduction to Apps
App Lab
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
Welcome to the Introduction to App Development! We begin this unit by examining the basics of an app.
Teacher Links: Presentation Students Links: Video
Lesson 2: Introduction to Design Mode
App Lab
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
Learn how to create screens, buttons, images, text, and more inside of App Lab.
Teacher Links: Presentation
Lesson 3: Project - Designing an App Part 1
Project
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
This is the first in a series of lessons where students will make progress on building their own functional app.
Teacher Links: Presentation Students Links: Activity Guide
Lesson 4: Project - Designing an App Part 2
Project | App Lab
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
Students continue working on the unit projects in this lesson that is primarily designed to be work time. Students continue to follow the app development process outlined in their App Development Guide by transferring their user interfaces designs from their planning guides over to App Lab
Teacher Links: Presentation Students Links: Activity Guide
Lesson 5: The Need for Programming Languages
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
This is the first in a series of lessons where students will make progress on building their own functional app.
Teacher Links: Presentation
Week 2
Lesson 6: Intro to Programming
App Lab
- Lesson Modifications
- Warm Up (0 mins)
- Activity (30 mins)
- Wrap Up (15 mins)
Get familiar with what programs are and how they run by using and modifying several working apps.
Teacher Links: Presentation
Lesson 7: Debugging
App Lab
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
Learn how to identify and fix problems in your code through the debugging process. Then practice using it with a classmate.
Teacher Links: Presentation
Lesson 8: Project - Designing an App Part 3
Project | App Lab
- Lesson Modifications
- Warm Up (5 mins)
- Activity (35 mins)
- Wrap Up (5 mins)
Start programming your app and learn how to effectively use pair programming to collaborate while writing code.
Teacher Links: Presentation Students Links: Activity Guide
Lesson 9: Project - Designing an App Part 4
Project | App Lab
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
Continue working on your app and get feedback to make sure you're on the right track.
Teacher Links: Presentation Students Links: Activity Guide
Lesson 10: Project - Designing an App Part 5
Project | App Lab
- Lesson Modifications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
Complete your app and share it with classmates before reflecting on the overall process of designing the app.
Teacher Links: Presentation Students Links: Activity Guide
Week 3
Lesson 11: Assessment Day
Project
- Lesson Modfications
- Warm Up (5 mins)
- Activity (30 mins)
- Wrap Up (10 mins)
Complete your app and share it with classmates before reflecting on the overall process of designing the app.