ALEX Classroom Resource

  

Computer Science Principles Unit 5 Chapter 1 Lesson 5: Building an App: Clicker Game

  Classroom Resource Information  

Title:

Computer Science Principles Unit 5 Chapter 1 Lesson 5: Building an App: Clicker Game

URL:

https://curriculum.code.org/csp-18/unit5/5/

Content Source:

Code.org
Type: Lesson/Unit Plan

Overview:

In this lesson, students add variables to two different exemplary apps to keep track of a score or a count of some number of button clicks. The major topic is variable in scope and understanding the differences, benefits, and drawbacks, of using global versus local variables. This lesson focuses more on using global variables since in event-driven apps that’s what you need to keep track of data across multiple events.

The very basics of a simple if statement are also presented in this lesson, mostly to highlight the difference between the = and == operators. Finally, students are asked to apply what they’ve learned about variables, scope, and if statements, to make their own “clicker” game modeled after one of the exemplars they saw during the lesson.

Students will be able to:
- use global variables to track numeric data in an app.
- give a high-level explanation of what “variable scope” means.
- debug problems related to variable scoping issues.
- modify existing programs to add and update variables to track information.
- create a multi-screen "clicker" game from scratch.

Note: You will need to create a free account on code.org before you can view this resource.

Content Standard(s):
Digital Literacy and Computer Science
DLIT (2018)
Grade: 9-12
6) Decompose problems into smaller components through systematic analysis, using constructs such as procedures, modules, and/or objects, with parameters, and which return a result.

Insight Unpacked Content
Evidence Of Student Attainment:
Students will:
  • decompose a problem into smaller components.
  • abstract a process into simpler processes which one defines through programming.
Teacher Vocabulary:
  • parameters
  • procedures
  • modules
  • objects
  • control structures
Knowledge:
Students know:
  • removing unessential details can make a process simpler.
  • control structures can assist in programming decisions.
  • how to create a program that returns a result.
Skills:
Students are able to:
  • decompose a problem.
  • create a program that returns a result.
  • implement control structures.
Understanding:
Students understand that:
  • removing unessential details can make a process simpler.
  • control structures can assist in programming decisions.
Digital Literacy and Computer Science
DLIT (2018)
Grade: 9-12
9) Demonstrate the ability to verify the correctness of a program.

a. Develop and use a series of test cases to verify that a program performs according to its design specifications.

b. Collaborate in a code review process to identify correctness, efficiency, scalability and readability of program code.

Insight Unpacked Content
Evidence Of Student Attainment:
Students will:
  • apply the problem
  • solving process to a program to verify the correctness of the program.
a.
  • develop test cases to verify the performance of a program.
  • apply test cases to verify the performance of a program.
b.
  • identify correctness of program code while collaborating in a code review process.
  • identify efficiency of program code while collaborating in a code review process.
  • identify scalability of program code while collaborating in a code review process.
  • identify readability of program code while collaborating in a code review process.
Teacher Vocabulary:
  • compile
  • program
  • syntax
Knowledge:
Students know:
  • proper syntax and formatting for a coding language.
  • how to identify coding errors in a programming language.
a.
  • programs must be tested to verify that the desired task is executed properly.
  • testing a program requires a scenario where you can easily verify that the result of the program is correct/accurate.
b.
  • a program can contain one of the following properties, but not be an appropriate program: correctness, efficiency, scalability and readability
  • it is important to have others review your code.
  • that to be a quality program, code must be correct, efficient, scalable and readable.
Skills:
Students are able to:
  • analyze code for proper syntax and formatting.
a.
  • create a test case with verifiable results.
  • execute a program with the created test case to verify program performance.
  • locate errors in programming by executing test cases.
b.
  • work with others to review their code for correctness, efficiency, scalability and readability.
Understanding:
Students understand that:
  • programming languages each have their own required formatting which must be adhered to for a program to run correctly.
  • errors in programming languages prevent the program from executing its task.
  • each language has its own syntax and method for identifying potential errors.
a.
  • code can be formatted correctly and a program can still produce unintended results.
  • a test case is vital to verifying that a program is executing a task as intended.
b.
  • to be a quality program, code must be correct, efficient, scalable and readable.
  • it is important to have others proofread your code.
Digital Literacy and Computer Science
DLIT (2018)
Grade: 9-12
10) Resolve or debug errors encountered during testing using iterative design process.

Examples: Test for infinite loops, check for bad input, check edge-cases.

Insight Unpacked Content
Evidence Of Student Attainment:
Students will:
  • troubleshoot errors encountered during testing using an iterative design process.
  • resolve or debug errors encountered during testing using an iterative design process.
Teacher Vocabulary:
  • debug
Knowledge:
Students know:
  • steps of the problem solving process.
  • how to identify errors in an iterative design process.
Skills:
Students are able to:
  • review a process and identify errors in procedure.
  • rectify errors found in a process.
  • test resolution to verify that the process now runs as intended.
Understanding:
Students understand that:
  • errors in a process can prevent a solution.
  • resolving an error will allow the process to function as intended.
Digital Literacy and Computer Science
DLIT (2018)
Grade: 9-12
38) Systematically design and develop programs for broad audiences by incorporating feedback from users.
Examples: Games, utilities, mobile applications.

Insight Unpacked Content
Evidence Of Student Attainment:
Students will:
  • design programs iteratively, with feedback from users.
  • develop programs iteratively, with feedback from users.
Knowledge:
Students know:
  • it is vital to seek feedback from others on programs and products.
  • feedback can help make a program or product better.
Skills:
Students are able to:
  • design and develop a program.
  • publish a program, seeking feedback.
  • make edits to a program based upon user feedback.
Understanding:
Students understand that:
  • when designing a program, it is important to receive input from your target audience to ensure your product meets their expectations or need.
Digital Literacy and Computer Science
DLIT (2018)
Grade: 9-12
40) Use an iterative design process, including learning from mistakes, to gain a better understanding of a problem domain.

Insight Unpacked Content
Evidence Of Student Attainment:
Students will:
  • create, publish, seek feedback on, and revise artifacts.
Knowledge:
Students know:
  • that creating an artifact is an iterative process.
  • that feedback serves to make products better.
  • that mistakes are teaching tools that help determine how not to solve a problem.
Skills:
Students are able to:
  • create and publish.
  • process constructive feedback.
  • persevere through mistakes.
Understanding:
Students understand that:
  • creating an artifact is an iterative process.
  • feedback serves to make products better.
  • mistakes are teaching tools that help determine how not to solve a problem.
Tags: app lab, global variable, if statement, local variable, project, variable scope
License Type: Custom Permission Type
See Terms: https://code.org/tos
For full descriptions of license types and a guide to usage, visit :
https://creativecommons.org/licenses
Accessibility
Comments
  This resource provided by:  
Author: Aimee Bates