Overview

To conclude their introduction to programming, students will design a program that draws a digital scene of their choosing. They will use Top-Down Design to identify the high-level actions necessary to create that image. Then, they will work on these components one by one. Finally, they'll combine all of their code to compose the whole pattern. The project concludes with reflection questions similar to those they will see on the AP Performance Tasks. If possible, it is recommended that they go through this programming task in small groups - not with a teacher. In a group, they would assign each member of the group to write individual actions; then, they would combine these actions into one completed program to produce the digital pattern.

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 them for some portions of their individual performance task at a later time.

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.

Vocabulary

Goals

Students will be able to:

Purpose

Abstraction is an important tool in programming, not only because it allows individual programmers to break down complex problems, but because it enables effective forms of collaboration. Once a problem has been broken down into its component parts, teams of programmers (sometimes dozens or more) can attack individual components of that problem in parallel. This style of programming requires clear communication and a shared understanding of the high-level requirements of the software. If implemented carefully, however, it can be an effective strategy for rapidly producing large and complex pieces of software.

Resources

Practice PT - Written Responses Template

Design a Digital Scene - Project Guide

Design a Digital Scene - AP Rubric

Design a Digital Scene - Project and Programming Rubric

Getting Started

The list of documents given in the "Resources" section are the same documents used in the Code.org CSP curriculum. These documents are still very applicable to the Quorum CSP curriculum, though they come with some exceptions:

Reading Requirements: Read through the guidelines of the project together and address any high-level questions about the aims of the project. The students will have a chance to review the requirements once they are placed in groups.

Emphasize and call out connections to the AP Create PT: the students will be going through many of the same processes for this project as they will for the AP Create PT. The things we are not doing here are:

Don't worry, we'll address these things later in Unit 5.

Proposed Schedule

Once placed in groups (ideally 3 or 4 people for this project), 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:

Activity: Final Project "Diamond in a Frame"

This is the last project that the students will use the Quorum Turtle Module for. It is also the most difficult. Students will need to write the entire program (preferably with a partner). Once they have completed the program, each student should use his or her completed code to practice writing the PT (Performance Task) report for AP Computer Science Principles credit.

Teacher's Tip

For the students who do not have the benefit of accessing the computer screen visually, this project can still be done with listening to the sound cue of the QTM and meticulously checking with which lines are drawn when the program finished running. However, if they have access to a tactile graphic enhancer, it would certainly help them to better understand the project and write their code for it.

Three Different Projects to Try

First Project

The picture below shows a jagged diamond shape inside of a picture frame. The diamond has four sides. One side consists of the turtle movements of up, left, up, left, up. The frame looks like stacked up squares - with each side of a square being one block length. The entire frame consists of 9 squares on left end, right end, top end and bottom end. Note: Of the 9 squares for each side, the first and last squares overlap with the first or last square of the adjacent side. In other words, the frame has corner squares that are included in the count of 9 squares for two sides.

Large Diamond in Large Frame

Quorum Turtle Module: Challenge Unit 10 Number 1


Second Project

The picture below shows a small diamond shape - which looks like a plus sign - inside of a picture frame. The diamond has four sides. One side consists of the turtle movements of up, left, up. The frame looks like stacked up squares - with one side of the square being one block length. The entire frame consists of 8 squares on the left end, right end, top end and bottom end. Note: Of the 8 squares for each side, the first and last squares overlap with the first or last square of the adjacent side. In other words, the frame has corner squares that are included in the count of 8 squares for two sides.

Small Diamond in Medium Frame

Quorum Turtle Module: Challenge Unit 10 Number 2


Third Project

The picture below has a small diamond shape - which looks like a plus sign - inside of a picture frame. The diamond has four sides. One side consists of the turtle movements of up, left, up. The frame looks like stacked up squares - with one side of the square being one block length. The entire frame consists of 7 squares on left end, right end, top end, and bottom end. Note: Of the 7 squares for each side, the first and last squares overlap with the first or last square of the adjacent side. In other words, the frame has corner squares that are included in the count of 7 squares for two sides.

Small Diamond in Small Frame

Quorum Turtle Module: Challenge Unit 10 Number 3

Tips for coding this project

While students are writing these programs, ask them to be consistent with the PT requirement described in the "Design a Digital Pattern - AP Rubric" and "Design a Digital Pattern - Project and Programming Rubric." When completed, their code in the Main Coding Area should be just one line, calling an action. Their action needs to be able to accept multiple parameters that control: (1) how large the picture frame should be, (2) how large the diamond should be, (3) where the diamond appears inside of the frame.

When calling their action in the Main Coding Area, however, students should quickly notice some limitations in the range of the parameter they can put in, due to the practical limitation of the working space in QTM. If they input parameters without care, their diamond may overlap with a part of the frame, or it may not even fit in the frame at all.

Once they complete their code, revisit the "Design a Digital Pattern - Project Guide" and "Practice PT - Written Responses" with students before they practice their PT report.

Activity: Written Reflection and Program Code

Project Submission

The following suggestions may benefit students when preparing their documentation for this project's PT report.

  1. Student written responses - the students can use a digital document (e.g. Google doc, Word doc) and send an AP-style PDF of their responses to the teacher by some means (digital drive, email, etc.) or even a printed hardcopy. Use the "Design a Digital Pattern - AP Rubric" to score it.
  2. Student code - ask the students to mimic the AP requirement of submitting: a PDF of their code with the abstraction they developed highlighted with a rectangle drawn around it. We recommend using "CodePrint" to do this. The teacher can collect this as a PDF or ask students to print out a hardcopy. If the teacher would like to assess the students' code for the programming concepts and skills developed in this unit, use the "Design a Digital Pattern - Project and Programming Rubric."
  3. Group planning guide - we do not recommend evaluating or assessing the group planning guide beyond basic completion if the teacher plans to use the "Design a Digital Pattern - Project and Programming Rubric."

Wrap Up

Optional Presentation

If time allows, students may wish to have an opportunity to share their projects with one another. One option is to create a "Digital Art Gallery" by posting all projects to a shared document or folder.

Extended Learning

For the students who finished early, they can read through other students' code and see which functions of another students' code can be incorporated into their own code.

Standards Alignment