Note - This lesson is optional at this point. It has not yet been updated to match the 2018 Create PT Scoring Guidelines and its contents are now covered in the AP Create PT Prep Unit.
Overview
To conclude their introduction to programming, students will design their own App. They will design an app based off of one of the projects they have previously worked on in this programming unit. Specifically, they will determine what kinds of improvements they wish to make to the existing program, demonstrating their ability to make abstractions and implement complex algorithms. Through designing their own app, students should get some further insight into Computer Science Principles using the Quorum Programming Language.
The project concludes with reflection questions similar to those students will encounter on the AP® Create Performance Task. They can either complete the project individually or with a partner. Even if they aren't working in a pair, every student should have a collaborative partner with whom they will give and receive feedback.
Note: This is NOT the official AP Performance Task that will be submitted as part of the Advanced Placement exam; it is a practice activity intended to prepare students for portions of their individual performance at a later time.
Goals
Students will be able to:
- Complete reflection questions in a format similar to those on the AP performance tasks.
- Collaborate to give and receive feedback on program implementation to improve program functionality.
- Update existing code to add new functionality to a program, or create new code using imagination, creativity, and logical thinking process.
- Create a video demonstrating the functionality of a program.
Purpose
A skill that programmers must develop is the ability to plan and execute a project from idea all the way through shipping of a product. Some of the best apps are new ideas brought on by the past work of a programmer themselves or other programmers. In order to execute these new ideas programmers must identify the programming structures needed to implement their idea and create a project plan. Often there are deadlines on projects which require programmers to make choices about the top features which need to be in a release of a new product. Finally, programmers must be able to express to others the work they have done to create their app.
AP® is a trademark registered and/or owned by the College Board, which was not involved in the production of, and does not endorse, this curriculum.
Resources
Getting Started
For students that want to work in pairs, give them a minute to find partners.
Brainstorm: Programming Projects and Concepts So Far
Remember the programming projects, both large and small, done in the unit. Review how they can be used to frame the coming project as a practice for the Create Performance Task. Consider reading to them the following prompt.
- For the project we are beginning today, you are going to create a project of your choice by adding to your past work. To begin with, let's make a list of all the past projects you have worked on and the programming concepts you have learned.
List of past projects
- Musical Keyboard - Lesson 2
- Build Your Own Event-Driven Program - Lesson 3
- "Counter" Game - Lesson 5
- Mad Libs App - Lesson 6
- The Game of Choice - Lesson 10
- "My Favorite Things" App - Lesson 13
- "Image Scroller" App - Lesson 14
- "Soundboard" App - Lesson 17
List of programming concepts
- Event Driven Programming
- Object Oriented Programming
- Quorum Game Engine
- Common Code Structure
- Quorum Turtle Module
- Actions
- Actions with Return Values
- Parameters
- Quorum Standard Libraries
- Repeat (times, while, until)
- Random Numbers
- Commenting
- Debugging
- Debug Mode
- Debug Commands
- Console output and Screen display output
- Events
- UI Elements
- Variables
- Conditionals (if, elseif, else)
- Boolean Expressions
- Boolean Operators
- Keyboard Handling
- Array (Creating and Processing)
After briefly reviewing the above concepts, read the following prompt to students.
- Now that we've jogged your memory... for this final project of the unit you will use one of the projects we've done already as a point of inspiration to make something new.
Activity
First, distribute the "Improve Your App Planning Guide" resource to each pair of students (or to any individual students working alone). It should help them think about how to plan and execute their project. They should also be provided the "Improve Your App Overview and Rubric" resource so they can begin reviewing the project guidelines before getting down to work. This project will take some time, as it has new elements, such as a video, and it asks students to create PDF documents of their write-ups.
A proposed schedule of the steps of this project is included below, as well as more thorough explanations of how to conduct the various stages.
Day 1
- Review the project guidelines and the rubric.
- Assign students to collaborate with partners.
- Have students brainstorm and complete the App Design Guide in the "Improve Your App Planning Guide" resource.
Pro Tip
Complete Project Planning Guide: Students should use the "Improve Your App Planning Guide" resource to develop an overview description of their target app. The first thing students should do as part of planning is to...
- Read Requirements: Read through the guidelines of the project together and address any high-level questions about the aims of the project. Students will have a chance to review the requirements once they start planning.
- Assign Collaborative Partners: On the real Create Performance Task, teachers are not supposed to give much help to you. Instead students are supposed to work with a collaborative partner. Assign each student a specific person as their collaborative partner.
- Note: While students can work with a partner to create an app together, they should probably still consult with someone outside of the partnership who does not know the details of your project. This will help with the feedback process.
Day 2 - Individually program major components.
- Students begin work on programming projects.
- Add at least one or two new features/components to the app.
Pro Tip
- If students are having difficulty developing their project plan, encourage them to talk with their collaboration partner. Develop the expectation that students have consulted one another prior to asking for your help.
- Program: Students should work individually to program their app or portion of their app. While they are responsible for writing their own code for the project, they may still consult with the other members of their class, especially their collaborative partner.
Day 3 - Work with classmates to give and receive feedback.
- Students give and receive feedback with their collaborative partner.
- Students pick two pieces of feedback to act on and improve in your program.
- Continue working on program.
Day 4
- Students finalize their first implementation of the program.
- Students begin their reflection questions and/or video.
Pro Tip
If students work in partners, they will need some way to combine their code. Possible solutions are:
- Write a block of code in a simple text processing program such as "Text Wrangler," "Note Pad," "Word Pad," "Text Edit," etc. Then send the document via an email attachment.
- Using a Google Doc is an option, but students need to be careful not to change their partner's code without a consensus. A better approach may be to copy and paste the entire code to the bottom of the document (with date and their name) - every time one partner makes some additions to the code. *** Note - Students will need to disable the "smart quote" function of the Google Doc, as it creates "faulty quotation marks" for coding purposes.
Peer Consultation: After students have finished implementing a draft of their program, they should meet with their collaborative partner, present their work so far, and provide feedback regarding their progress. They should complete the Feedback Guide. Other potential questions to address are below:
- Other potential questions to address: Is there anything that's particularly clever or gives you ideas for your own project? Do you agree with the choices your partner has made? Is there anything missing?
Day 5 - Complete project reflection questions and create video.
- Students complete their reflection questions and/or video.
- Students submit their projects.
Pro Tip
- Reflection Questions: Students need to complete the reflection questions included in the "Improve Your App Planning Guide" resource.
- Video Creation: Students also need to create a video to demonstrate the functionality of their program. The video should not be longer than 1 minute. It does not need sound.
Video Creation - Suggested Tools:
- LiceCap is an easy way to create gifs of things happening on your computer
- LiceCap
- QuickTime - You can do a screen recording with QuickTime as well. QuickTime works on both Mac and Windows.
Wrap Up
Self-assess: It can be a useful exercise for students to briefly assess themsevles using the rubric they were provided at the beginning of the project. Ask them to identify points where they could improve, and remind them that this rubric is very similar in structure to the one that will be used on the actual AP Performance Tasks they will encounter later in the year.
Presentation (Optional): If time allows, students may wish to have an opportunity to share their final apps with one another. Consider options like creating a "Digital Gallery" by posting all links to a shared document.
Standards Alignment
- Computer Science Principles: 1.1.1 (A, B)
- Computer Science Principles: 1.2.1 (A, B, C, D, E)
- Computer Science Principles: 1.2.2 (A, B)
- Computer Science Principles: 1.2.3 (A, B, C)
- Computer Science Principles: 1.2.4 (A, B, C, D, E, F)
- Computer Science Principles: 2.2.1 (A, B, C)
- Computer Science Principles: 2.2.2 (A, B)
- Computer Science Principles: 4.1.1 (A, B, C, D, E, F, G, H, I)
- Computer Science Principles: 4.1.2 (A, B, C, D, E, F, G, H, I)
- Computer Science Principles: 5.1.1 (A, B, C, D, E)
- Computer Science Principles: 5.1.2 (A, B, C, D, E, F, G, H, I, J)
- Computer Science Principles: 5.1.3 (A, B, C, D, E, F)
- Computer Science Principles: 5.4.1 (C, E, F, G, H, J, L, M, N)
- Computer Science Principles: 5.5.1 (A, B, C, D, E, F, G, H, I, J)