# letter up lesson

create a guessing game that can be played with your friends.

## Topic

String Functions

## Quick Links

* [tutorial](/lessons/letter-up/tutorial)

## Class

Year 7

## Prior learning/place of lesson in scheme of work

Learn how to create a guessing game with **global variables** `var str: "this is a string" ` and **strings functions**, ` var first char := str -> at(0) ` , to develop a sequence of characters and get a character within a string . We will be learning how to create a guessing game using local variables, strings functions, input on logo up, string related functions, on screen up, the game library as well as simple commands, such as show string and show number.

## What the teacher needs to know

* Algorithm: An unambiguous set of rules or a precise step-bystep guide to solve a problem or achieve a particular objective.
* Command: An instruction for the computer to execute, written in a particular programming language.
* Data: A structured set of numbers, possibly representing digitised text, images, sound or video, which can be processed or transmitted by a computer, also used for numerical (quantitative) information.
* Decomposing: The process through which problems or systems are broken down into their component parts, each of which may then be considered separately.
* Input: Data provided to a computer system, such as via a keyboard, mouse, microphone, camera or physical sensors.
* Output: The information produced by a computer system for its user, typically on a screen, through speakers or on a printer, but possibly through the control of motors in physical systems.
* Programmable toys: Robots designed for children to use, accepting input, storing short sequences of simple instructions and moving according to this stored program.
* Program: A stored set of instructions encoded in a language understood by the computer that does some form of computation, processing input and/or stored data to generate output.
* Script: A computer program typically executed one line at a time through an interpreter, such as the instructions for a Scratch character.
* Selection: A programming construct in which one section of code or another is executed depending on whether a particular condition is met.
* Sequence: To place program instructions in order, with each executed one after the other.
* Simulation: Using a computer to model the state and behaviour of real-world (or imaginary) systems, including physical or social systems; an integral part of most computer games.
* Variables: A way in which computer programs can store, retrieve or change data, such as a score, the time left, or the user’s name.

**QuickStart Computing Glossary

## Documentation

* **string** : [read more...](/reference/types/string)
* **string functions** : [read more...](/reference/types/string-functions)
* **show string** : [read more...](/reference/basic/show-string)
* **local variables** : [read more...](/reference/variables/var)
* **assignment operator** : [read more...](/reference/variables/assign)
* **math random** : [read more...](/js/math)

## Resources

* Activity: [tutorial](/lessons/letter-up/tutorial)

## Objectives

* learn how to create a sequences of characters
* learn how to get a character within a string, using the specified index
* learn how to show a string on the LED screen
* learn how to create a local variable to store data so that you can use it later in your code
* learn how to set and change the value of a local variable
* learn how to register an event handler that executes whenever the LED screen is perpendicular to the ground and the @boardname@ logo is above the LED screen
* learn how to register an event handler that executes whenever the LED screen is facing the floor
* learn how to register an event handler that executes whenever the LED screen is facing the ceiling/sky
* learn how to return a random number
* learn how to use the game library to set the score, lives, and countdown

## Links to the National Curriculum Programmes of Study for Computing

## Progression Pathways / Computational Thinking Framework

#### Algorithms

*  Uses logical reasoning to predict  outputs, showing an awareness of inputs (AL)
* Represents solutions using a structured notation (AL) (AB)

#### Programming & Development

* Creates programs that implement algorithms to achieve given goals (AL)
*  Declares and assigns variables(AB)
* Uses a variable and relational operators within a loop to govern termination (AL) (GE)
* Has practical experience of a high-level textual language, including using standard libraries when programming(AB) (AL)
* Uses a range of operators and expressions e.g. Boolean, and applies them in the context of program control. (AL)
* Selects the appropriate data types(AL) (AB

#### Data & Data Representation

* Understands the difference between data and information(AB)
* Performs more complex searches for information e.g. using Boolean and relational operators(AL) (GE) (EV)

#### Hardware & Processing

* Knows that computers collect data from various input devices, including sensors and application software (AB)

#### Communication Networks

* Demonstrates responsible use of technologies and online services, and knows a range of ways to report concerns Understands how search engines rank search results (AL)

#### Information Technology

* Collects, organizes, and presents data and information in digital content (AB)
* Makes appropriate improvements to solutions based on feedback received, and can comment on the success of the solution (EV)
* Uses criteria to evaluate the quality of solutions, can identify improvements making some refinements to the solution, and future  solutions (EV)

Computational Thinking Concept: AB = Abstraction; DE = Decomposition; AL = Algorithmic Thinking; EV = Evaluation; GE = Generalisation

## Activity

* time: 20 min.
* [tutorial](/lessons/letter-up/tutorial)

## Intended follow on

Publish script to the classroom.