Creative Coding Through Games and Apps
Creative Coding Through Games and Apps
Creative Coding Through Games and Apps
Through Games
And Apps
About the Course
Copyright Notice........................................................................................................................ 3
Contributors .............................................................................................................................. 4
Description ................................................................................................................................ 5
Vision ........................................................................................................................................ 5
Audience ................................................................................................................................... 5
Goals ......................................................................................................................................... 6
Learning Experience and Technology Platform ........................................................................... 6
Classroom Resource and Technical Requirements ...................................................................... 7
Description of Course Materials ................................................................................................. 7
Bill of Materials ......................................................................................................................... 8
Course Delivery ....................................................................................................................... 10
Course Outline ................................................................................................................................. 10
Unit 1- Surveying the Landscape: Examining Games and How they are Made ....................................... 10
Unit 2 -Spinning the Globe: Use of Randomization in Games ................................................................. 13
Unit 3 -Shifting into Gear: Controlling Game Objects .............................................................................. 15
Unit 4 - Gaining Ground: Controlling Game Flow with Events and Conditionals .................................... 17
Unit 5 - Shifting into Overdrive: Using Loops and Custom Functions ...................................................... 19
Unit 6 - Charting New Territory: Making the Game Your Own ................................................................ 21
Unit 7 - Refueling: Adding Animation with Sprite Sheets ........................................................................ 23
Unit 8 - Riding the Momentum: Loops and Collections ........................................................................... 24
Unit 9 - Into the Great Beyond: Cloud Computing................................................................................... 26
Unit 10 - Discovering New Horizons: TouchDevelop App Design ............................................................ 28
Unit 11 - Traveling Safely: Privacy and Encryption .................................................................................. 29
Unit 12 - You Have Arrived: Independent Project Development............................................................. 30
Standards Map ................................................................................................................................. 32
Unit 1: Surveying the Landscape: Examining Games and How they are Made ....................................... 32
Unit 2: Spinning the Globe: Use of Randomization in Games ................................................................. 32
Unit 3: Shifting into Gear: Controlling Game Objects .............................................................................. 33
Unit 4: Gaining Ground: Controlling Game Flow with Events and Conditionals...................................... 33
Unit 5: Shifting into Overdrive: Using Loops and Custom Functions ....................................................... 34
Unit 6: Charting New Territory: Making the Game Your Own ................................................................. 34
Unit 7: Refueling: Adding Animation with Sprite Sheets ......................................................................... 35
Unit 8: Riding the Momentum: Loops and Collections ............................................................................ 35
Unit 9: Into the Great Beyond: Cloud Computing .................................................................................... 36
Unit 10: Discovering New Horizons: TouchDevelop App Design ............................................................. 36
Unit 11: Traveling Safely: Privacy and Encryption ................................................................................... 37
Unit 12: You Have Arrived: Independent Project Development .............................................................. 38
Pacing Guide .................................................................................................................................... 38
Course Duration Options .................................................................................................................. 40
Overview of Options ................................................................................................................................ 40
Teaching the 6-Week Course ................................................................................................................... 41
Teaching the 9-Week Course ................................................................................................................... 42
Glossary .................................................................................................................................. 47
Copyright Notice
This document is provided as-is. Information in this document, including URL and other Internet
Web site references, is subject to change without notice. Unless otherwise noted, the example
companies, organizations, products, domain names, e-mail addresses, logos, people, places, and
events depicted herein are fictitious, and no association with any real company, organization,
product, domain name, e-mail address, logo, person, place or event is intended or should be
inferred.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual
property rights covering subject matter in this document. Except as expressly provided in any
written license agreement from Microsoft, the furnishing of this document does not give you any
license to these patents, trademarks, copyrights, or other intellectual property.
The names of manufacturers, products, or URLs are provided for informational purposes only and
Microsoft makes no representations and warranties, either expressed, implied, or statutory,
regarding these manufacturers or the use of the products with any Microsoft technologies. The
inclusion of a manufacturer or product does not imply endorsement of Microsoft of the
manufacturer or product. Links may be provided to third party sites. Such sites are not under the
control of Microsoft and Microsoft is not responsible for the contents of any linked site or any link
contained in a linked site, or any changes or updates to such sites. Microsoft is not responsible for
webcasting or any other form of transmission received from any linked site. Microsoft is providing
these links to you only as a convenience, and the inclusion of any link does not imply endorsement
of Microsoft of the site or the products contained therein.
2015 Microsoft Corporation. All rights reserved.
Microsoft and the trademarks listed at http://go.microsoft.com/?linkid=9851308 are trademarks
of the Microsoft group of companies. All other trademarks are property of their respective
owners.
Contributors
Sponsored and published by Microsoft, Creative Coding through Games and Apps was developed
by a group of current and former computer science teachers, instructional designers, and artists.
Description
Creative Coding through Games and Apps is a first-semester course for introduction to
programming for the early secondary grades. The course is designed to attract and reach a broad
and diverse range of students, including those who may have never before considered
programming. Students learn how to code by working in a real software development
environment to design, program and publish mobile apps and games. Learning to code by creating
real products, students discover how to make amazing things and have an impact on their world.
Creative Coding through Games and Apps is designed to be delivered with success by any teacher,
regardless of computer science background. Featuring online and in-class lessons that emphasize
hands-on coding, the course can be taught via any modern web browser on phones, tablets,
laptops or desktop computers. The combination of online plus in-class resources provides
flexibility in teaching style, allowing educators to choose the right balance for their students of inclass instruction and out-of-class study. The course length is flexible, deliverable in 6, 9, 12, 18
weeks or more, depending on the time available in your school.
Vision
By developing problem-solving and computational-thinking skills in the context of learning
fundamental computer science concepts, Creative Coding through Games and Apps sets students
of early secondary grades on a journey to become well prepared for life and careers in the
contemporary world. At the core of the learning experience in Creative Coding through Games and
Apps are the beliefs that students invest when they can be creative, that students learn best by
doing, and that social engagement can be a powerful accelerant to learning. These beliefs are
brought to life by using leading-edge technology to create an interactive and immersive learning
experience focused on solving real-world problems that are relevant to students lives.
Audience
In addition to youngsters who are already motivated and curious about coding, Creative Coding
through Games and Apps is intended for students in early secondary grades who have never
expressed interest in programming, have no previous experience in programming, and/or who
may lack confidence in their technical skills. Typically, students who study computer programming
are self-motivated students with a strong affinity for mathematics and complex logical reasoning.
While Creative Coding through Games and Apps will appeal to these students, it is specifically
designed to attract a broad student audience through emphasis on creativity, relevance, and realworld results.
For student success in this course, prerequisite knowledge and skill in reading and mathematics
equivalent to 7th grade level is advised.
Creative Coding through Games and Apps is intended for teachers who come from any discipline,
have an affinity for working with computers, and have basic math skills (9 th grade algebra). While
most introductory programming courses are taught by teachers with some background in
computer science, Creative Coding through Games and Apps teachers are not expected to have
any such background. Teacher materials for the course allow a new-to-programming teacher to
learn ahead of his/her students the first time through the course.
Goals
Creative Coding through Games and Apps is designed to:
Attract interest in computer science from a broad and diverse range of students
Teach how to program computing devices to make things of real-world interest and use
Students who successfully complete this course will be able to:
Ease of use. TouchDevelop makes it easy to build mobile apps and games.
TouchDevelop abstracts much of the complicated engineering that makes games and
apps fun and compelling to use, but difficult to create. For example, TouchDevelop has
a built-in physics engine that makes it easy to simulate gravity and detect collisions.
This feature allows students to learn fundamental programming concepts without
having to understand details they may find tedious at this phase of their development.
Sociability. TouchDevelop enables students to easily share and build upon each others
work. A TouchDevelop program can be published with the click of a button. Once a
program is published, others can use it and/or build upon its functionality.
Creative Coding through Games and Apps uses TouchDevelop to introduce fundamental
programming concepts through a series of interactive lessons that build upon ideas in previous
lessons. In many lessons, students are introduced to concepts through video instruction
embedded within the programming environment. After being introduced to a concept, students
About the Course
are guided through writing code that practices the concept. As such lessons progress, guidance is
reduced, requiring students write code independently. At the conclusion of many lessons,
students are directed to complete unguided projects that reinforce concepts and encourage them
to be creative and to explore further.
Creative Coding through Games and Apps introduces concepts within the context of a game, app,
or puzzle. For example, when learning about conditionals, students may be asked to complete a
partially functioning game by adding the necessary conditional logic to complete the game. As the
course progresses, students bring concepts together by creating simple apps and games of their
own.
Finally, students build upon each others work by publishing and sharing their games and apps.
Student learning materials provided in digital file folders associated with this document
Internet access
Journal
Headphones (recommended)
Teachers need:
Lesson preparation and presentation materials provided in digital file folders associated
with this document
Internet access
The digital files for this course apply a naming convention to organize the curricular unit and
lesson structure. Digital file names for this course begin with U<x>.<y>_<file type>, where
<x> = unit number
<y> = lesson number, and
<file type> = the type of curriculum resource provided by the given file.
About the Course
For example, you will find the following documents in the Unit 1 folder (among others):
Bill of Materials
Document Type
Description
This document is the unit in a nutshell for the teacher. It includes the following
information:
A high-level overview of the unit
A list of big questions that should be answered in the unit
The unit schema, which includes a lesson outline, student learning
objectives, and required resources for each lesson
Required preparation for the unit
Anticipated challenges for the unit
This document should be used when preparing to teach the unit and used as a
reference throughout the unit.
This document is the unit in a nutshell for the student. It includes the following
information:
A high-level overview of the unit, with context for many of the concepts
covered.
Links to all online resources a student will need in the unit.
This document should be provided to students at the start of each unit and should
be kept as a reference throughout the unit.
This document is a set of slides for use throughout the unit. You will generally find a
few slides per lesson. Information contained on slides is not detailed or
comprehensive. The slides are simply intended to help structure each lesson.
This document is the daily lesson plan. There will be multiple such documents in
each unit folder, one for each lesson of the unit. Each lesson plan includes the
following information:
Topic description
Student learning objectives
Materials and preparation required, including links to all online activities
Outline of the lesson
Teaching/Learning strategies (i.e. lesson details)
Many lessons will include the following additional information:
Teaching tips
Additional resources
Extensions
Keys to activities and/or quizzes (when a lesson contains activities and/or
quizzes)
_Teacher_Guide
_Student_Guide
_Slides
_Lesson
Document Type
Description
This document should be used to prepare for each lesson and as a reference during
each lesson.
These documents (there may be multiple activity documents associated with one
lesson) is a worksheet for students. It should be copied and distributed (or
electronically distributed) to students at the appropriate point in the lesson.
Students are expected to submit or otherwise validate their work.
These documents (there may be multiple tutorial exercise documents associated
with one lesson) are worksheets associated with a TouchDevelop tutorial. There are
meant to reinforce concepts introduced in a tutorial. These documents should be
distributed to students prior to students beginning a tutorial and completed while
(or immediately after) students work through the tutorial. Students are expected to
submit or otherwise validate their work.
These documents are quizzes. There will be, at most, one quiz per unit. Students are
expected to submit or otherwise validate their work.
These documents are included in some units and provide students with timely
supplemental reference and guidance material related to the unit or lesson in which
they are introduced.
_Activity
_Tutorial_Ex
_Quiz
_Resource
Course Delivery
Course Outline
Creative Coding through Games and Apps is comprised of 12 units broken into 50-minute lessons
to deliver up to 90 hours of academic instruction. The course is designed for flexibility in duration,
with configurations that may be taught in 6, 9, 12, or 18 weeks. Suggested pacing for units and
lessons is provided later in this document, with recognition the suggested pacing may be
expanded or compressed to suit the needs and interests of individual classrooms, schools, and/or
school systems.
The following table outlines the units, lessons and learning objectives for each lesson of the full
18-week configuration of the course. Further details about the 6, 9, and 12-week course
configurations follow later in this document.
Unit 1- Surveying the Landscape: Examining Games and How they are Made
Students analyze the structure, elements, and logic of computer games. Students define program and algorithm,
examine the concept of computationally hard problems, and create a personal collage in TouchDevelop.
Lesson Outline of Lesson
Students will be able to
Required Resources
1.1
Brainstorm definitions for
Follow a TouchDevelop tutorial U1.01_Lesson
computer program
Explain the rules, goals, and
Coding Jetpack Jumper tutorial:
Tutorial: Coding Jetpack Jumper
structure of the Jetpack Jumper
http://aka.ms/StartCoding
game
Analyze Jetpack Jumper
Jetpack Jumper Complete game:
Complete game flow
http://aka.ms/JetpackComplete
Journal entry: Revisit definitions
Student journals
for computer program
Headphones for students
(recommended)
1.2
Review rules, goals, and structure Explain the concept of a
U1.02_Lesson
of Jetpack Jumper Complete
computer program
Jetpack Jumper Complete game:
game
Describe the structure and
http://aka.ms/JetpackComplete
Sign in to TouchDevelop
goals of this course
Jetpack Jumper Code:
Examine the code for the Jetpack Sign in to their TouchDevelop
U1.02_Activity1
Jumper Complete game
accounts
Computer Program Definition:
Find scripts in TouchDevelop
Find scripts in their
U1.02_Activity2
TouchDevelop accounts
Define computer program
Large space for writing
ideas/definitions
Discuss course structure and
goals
Course Overview - Creative
Coding with Games and Apps:
U1.02_Resource
Students will need a Microsoft,
Facebook, Google, or Yahoo!
account
1.3
Think-Pair-Share: Identify
Describe characteristics that
U1.03_Lesson
favorite game and characteristics
make games fun
Note cards (or similarly sized
Categorize games
Define genre and describe
pieces of paper), four for each
genres for games
student
Define genre and identify
computer game genres
Categorize games into genres
Student journals
Define fun
Describe characteristics of
successful games
Journal entry
1.4
Review the definition of fun
Identify and name basic
U1.04_Lesson
features and tools in the
Video: Welcome to
Chase and Gather Pro
10
Unit 1- Surveying the Landscape: Examining Games and How they are Made
Students analyze the structure, elements, and logic of computer games. Students define program and algorithm,
examine the concept of computationally hard problems, and create a personal collage in TouchDevelop.
Lesson Outline of Lesson
Students will be able to
Required Resources
TouchDevelop
TouchDevelop programming
game:http://aka.ms/ChasePro
environment
Analyze rules, goals, and
Analyzing Game Play and
structure of Chase and Gather
Describe rules, goals, and
Processes: U1.04_Activity
Pro game
structure of the Chase and
Video: Welcome to
Gather Pro game
Examine the code for Chase and
TouchDevelop:
Gather Pro
Describe the elements of Chase
http://aka.ms/WelcomeToTouc
and Gather Pro that make it
hDevelop
successful
Identify code for Chase and
Gather Pro that relates to the
games rules, goals, and
structure
1.5
Think-Pair-Share: Identify hard
Decompose a familiar problem U1.05_Lesson
problems
into simple steps
Notecards
Decompose a problem: How to
Illustrate a process with
Large paper for
make toast?
precision and clarity
arranging/taping notecards
Define algorithm
Define algorithm
Decomposing Problems:
Categorize problems as hard or
Identify problems as hard or
U1.05_Activity
easy
easy for a computer to solve
Video: Whats an algorithm?
http://ed.ted.com/lessons/your
-brain-can-solve-algorithmsdavid-j-malan
1.6
Review hard problems
Collaborate to solve The 4 U1.06_Lesson
Color Map Problem
Unplugged activity: Exploring a
The 4-Color Map Problem:
hard problem
Identify characteristics of
U1.06_Activity
problems that are hard for
Quiz
Colored pencils
computers to solve
U1.06_Quiz
Demonstrate problem-solving
skills (decomposition and
algorithms) in a quiz
1.7
Complete the Collage Tutorial
Plot points on a gaming
U1.07_Lesson
coordinate
system
Mark the Spot! game
Collage Tutorial:
Identify code used to create
http://aka.ms/CollageTutorial
Journal entry
and position sprites
Collage Tutorial Exercise:
U1.07_Tutorial_Ex
Mark the Spot!:
http://aka.ms/MarkTheSpot
Student journals
Headphones for students
(recommended)
1.8
Review the coordinate system
Create a personal collage in
U1.08_Lesson
TouchDevelop
Introduce the Personal Collage
Mark the Spot!:
Project
Apply coordinate system
http://aka.ms/MarkTheSpot
knowledge to a Personal
Work on the Personal Collage
Personal Collage Project:
Collage Project
Project
U1.08_Activity
Assess progress and plan for the
About the Course 11
Unit 1- Surveying the Landscape: Examining Games and How they are Made
Students analyze the structure, elements, and logic of computer games. Students define program and algorithm,
examine the concept of computationally hard problems, and create a personal collage in TouchDevelop.
Lesson Outline of Lesson
Students will be able to
Required Resources
next class period
1.9
Review Personal Collage Project
Create a personalized collage in U1.09_Lesson
status
TouchDevelop
Personal Collage Project:
Finish Personal Collage Project
Apply coordinate system
U1.08_Activity
knowledge to a Personal
Self-assessment and reflection
Sticky notes of at least three
Collage Project
different colors
Demonstration of a gallery walk
Describe the process for giving
feedback in a gallery walk
1.10
Define gallery walk rules
Give and receive constructive
U1.10_Lesson
feedback in a gallery walk
Gallery walk activity
Personal Collage Project:
Incorporate feedback into
U1.08_Activity
Review feedback
Personal Collage Projects
Sticky notes of at least three
Revise Personal Collage Project
different colors (enough for
Journal entry
each student to have five of
each color)
Student journals
12
Outline of Lesson
Review the TouchDevelop
programming environment
Random Tutorial
Brainstorm uses ofrandom
numbers in programs
2.2
2.4
2.5
2.6
2.3
13
Required Resources
U2.01_Lesson
TouchDevelop Tutorials video:
http://aka.ms/ExploringTouchD
evelop
Welcome to TouchDevelop
video:
http://aka.ms/WelcomeToTouc
hDevelop
Random Tutorial:
http://aka.ms/RandomTutorial
Random Tutorial Exercise:
U2.01_Tutorial_Ex
U2.02_Lesson
http://aka.ms/RollTheDice
Enough dice for every pair of
students to have one die
U2.03_Lesson
Pecha KuchaThe wide world
of Games: U2.03_Activity
How I found my passion in a
dumpster:
http://www.pechakucha.org/pr
esentations/how-i-found-mypassion-in-a-dumpster
A presentation program such as
Microsoft PowerPoint for
students to use in creating their
Pecha Kucha presentations
U2.04_Lesson
http://www.pechakucha.org/pr
esentations/how-i-found-mypassion-in-a-dumpster
http://www.pechakucha.org/
U2.05_Lesson
Peer Evaluation Form:
U2.05_Activity
U2.06_Lesson
Unit 2 Quiz: U2.06_Quiz
Poster-size (16 X 20) or larger
Outline of Lesson
share game designs
Quiz
14
Required Resources
pieces of paper and markers
Chase and Gather Basic game:
http://aka.ms/ChaseBasic
15
16
Unit 4 - Gaining Ground: Controlling Game Flow with Events and Conditionals
Students learn about events (as used in games) and conditional statements.
Lesson
4.1
Outline of Lesson
Define and identify an event
Events Tutorial
Events within games
Journal entry
4.2
Review Events
Chase and Gather- Events
Tutorial
Learn to Code with CODExist: the
Birth of Bot - Module 4 video
Journal entry
Create an event in
TouchDevelop
Write the code for an event in
TouchDevelop
4.3
4.4
17
Required Resources
U4.01_Lesson
Events Tutorial 1:
http://aka.ms/EventsTutorial1
Events Tutorial Exercise:
U4.01_Tutorial_Ex
The best Rube Goldberg
Machine videos:
http://www.oobject.com/bestrube-goldberg-machinesvideos/
Student journals
Headphones for students
(recommended)
U4.02_Lesson
Chase and Gather Events
Tutorial:
http://aka.ms/EventsTutorial2
Learn to Code with CODExist:
the Birth of Bot - Module 4
video:
http://www.microsoftvirtualaca
demy.com/trainingcourses/codexist-the-birth-ofbot?m=14252&ct=39145
Student journals
Headphones for students
(recommended)
U4.03_Lesson
Conditionals Tutorial 1:
http://aka.ms/ConditionalsTuto
rial1
Conditionals Tutorial Exercise:
U4.03_Tutorial_Ex
Conditionals Tutorial 2:
http://aka.ms/ConditionalsTuto
rial2
Student Journals
Headphones for students
(recommended)
U4.04_Lesson
Objects for and, or, and not
unplugged activity
Roll the Dice! game:
http://aka.ms/RollTheDice
Student journals
Headphones for students
Unit 4 - Gaining Ground: Controlling Game Flow with Events and Conditionals
Students learn about events (as used in games) and conditional statements.
Lesson
Outline of Lesson
4.5
18
Required Resources
(recommended)
U4.05_Lesson
Roll the Dice! game:
http://aka.ms/RollTheDice
Roll the Dice Tutorial:
http://aka.ms/DiceTutorial
Roll the Dice Tutorial Exercise:
U4.05_Tutorial_Ex
Conditionals Quiz: U4.05_Quiz
Student journals
Headphones for students
(recommended)
Outline of Lesson
Introduction of repetitive events
On Every Frame Tutorial
Apply the on every frame
statement to the Chase and
Gather Basic game
Journal entry
5.2
5.3
5.4
5.5
Loops Tutorial 1
Unplugged activity
Loops Tutorial 2
Exploring loops on your own
Journal entry
19
Required Resources
U5.01_Lesson
On Every Frame Tutorial:
http://aka.ms/EveryFrameTutor
ial1
On Every Frame Tutorial
Exercise: U5.01_Tutorial_Ex
Chase and Gather Basic game:
http://aka.ms/ChaseBasic
Student journals
Headphones for students
(recommended)
U5.02_Lesson
Loops Tutorial 1:
http://aka.ms/LoopsTutorial1
Loops Tutorial 2:
http://aka.ms/LoopsTutorial2
Loops Tutorial Exercise:
U5.02_Tutorial_Ex
Headphones for students
(recommended)
U5.03_Lesson
Custom Functions Tutorial 1:
http://aka.ms/FunctionsTutorial
1
Custom Functions Tutorial 1
Exercise: U5.03_Tutorial_Ex
Dream House Activity:
U5.03_Activity
Student journals
Headphones for students
(recommended)
U5.04_Lesson
Dream House Activity:
U5.03_Activity
U5.05_Lesson
Custom Functions Tutorial 2:
http://aka.ms/FunctionsTutorial
2
Custom Functions Tutorial 2
Exercise: U5.05_Tutorial_Ex
Student journals
Headphones for students
(recommended)
Outline of Lesson
Adding Bells and Whistles
Tutorial
Ideas for adding bells and
whistles to the Chase and Gather
Basic
Unit 5 Quiz
20
Required Resources
U5.06_Lesson
Adding Bells and Whistles
Tutorial:
http://aka.ms/BellsTutorial
Adding Bells and Whistles
Tutorial Exercise:
U5.06_Tutorial_Ex
Headphones for students
(recommended)
Unit 5 Quiz: U5.06_Quiz
Outline of Lesson
Half-Baked Pitch
Project overview and rubric
Game Developer Resume activity
6.2
6.3
6.4
6.5
6.10
21
Required Resources
U6.01_Lesson
Game Developer Resume:
U6.01_Activity
Fix Chase and Gather:
U6.01_Activity2a
Build Chase and Gather:
U6.01_Activity2b
Build Your Own Game:
U6.01_Activity2c
Two containers
U6.02_Lesson
Storyboard Your Game:
U6.02_Activity1
U6.03_Lesson
Project Pitch Evaluation:
U6.03_Activity
U6.04_Lesson
Ready, Set, Go: U6.04_Activity
TouchDevelop Beyond the
Basics video:
http://aka.ms/BeyondBasicsInT
ouchDevelop
U6.05-10_Lesson
Draft Version Review:
U6.09_Activity
User Observation:
U6.10_Activity1
User Interview: U6.10_Activity2
6.12
6.13
Outline of Lesson
Define presentation
requirements
Prepare presentation
Create a users manual or other
documentation
Group Presentations and
feedback
Assess the project as a team
Complete the Project Reflection
activity
22
Required Resources
U6.12_Lesson
Outline of Lesson
Creating animations
Create a flip book
Flip books to sprite sheets
Design a sprite sheet
7.2
7.3
7.4
23
Required Resources
U7.01_Lesson
Sticky notes (at least 10 per
student)
How to make a Flip Book
Animation
https://www.youtube.com/wat
ch?v=Njl-uqnmBGA
What is a sprite sheet?
https://www.codeandweb.com/
what-is-a-sprite-sheet
U7.02_Lesson
http://aka.ms/SpritesheetsTuto
rial
Animation with Sprite Sheets
Exercise: U7.02_Tutorial_Ex
Sprite sheet used in the tutorial:
http://aka.ms/spritesheet1
Student journals
Headphones for students
(recommended)
U7.03_Lesson
Jetpack Jumper Complete game:
http://aka.ms/JetpackComplete
Animated Sprites:
U7.03_Activity
Piskel online sprite creator:
http://www.piskelapp.com
U7.04_Lesson
Sprite Sheet Animation:
U7.04_Activity
Outline of Lesson
Review loops
Counting Birthday Money
Loop Counter Tutorial
Challenge activity
8.2
Introduction to Collections
Collections Tutorial
Journal entry
Understand collections
Understand and apply
knowledge to add, remove, and
insert at elements
Use a for loop and a for each
loop to iterate through the
collection
8.3
8.4
8.5
Review plans
Code a wacky tale game
24
Required Resources
U8.01_Lesson
Loop Counter Tutorial:
http://aka.ms/LoopCounterTuto
rial
Loop Counter Tutorial Exercise:
U8.01_Tutorial_Ex
Birthday Money:
U8.01_Activity1
More Obstacles:
U8.01_Activity2
U8.02_Lesson
Collections Tutorial:
http://aka.ms/CollectionsTutori
al
Collections Tutorial Exercise:
U8.02_Tutorial_Ex
Variables vs. Arrays Vs. Objects
video
https://www.youtube.com/wat
ch?v=FjSCdXd04Cs&list=PLS9eK
aCePM68xlSJC3a9KGQEDwmoK
WbxC
Student journals
Headphones for students
(recommended)
U8.03_Lesson
Notecards with words
(prepared before class) and dice
(1 die per group)
Brand Name Generator:
http://www.bandnamemaker.c
om
Random Words:
http://aka.ms/RandomWords
U8.04_Lesson
A Wacky Family Vacation:
U8.04_Activity1
Mad Libs:
http://www.madglibs.com/
Wacky Tales: U8.04_Activity2
U8.05_Lesson
Wacky Tales: U8.04_Activity2
Outline of Lesson
8.6
25
Required Resources
U8.06_Lesson
Wacky Tales: U8.04_Activity2
Outline of Lesson
How the Internet works video
Messages in a Bottle
What is cloud computing?
How do we use the cloud?
9.2
9.3
9.4
What is a Database?
Create a table with a tutorial
Tables On Your Own activity
26
Required Resources
U9.01_Lesson
How The Internet Works video:
http://www.wimp.com/internet
works/
The Internet Explained:
U9.01_Activity1
Command Cards:
U9.01_Resource
Cloud Computing video:
http://www.schooltube.com/vi
deo/84a8c36a7b534643939b/Cl
oud%20Computeing
Cloud Computing:
U9.01_Activity2
Student Journals
U9.02_Lesson
Running Cloud Apps:
U9.02_Resource
Cloud Tutorial:
http://aka.ms/CloudTutorial
Cloud Tutorial Exercise:
U9.02_Tutorial_Ex
Instant Messenger:
http://aka.ms/InstantMessenge
r
Chat using The Cloud:
U9.02_Activity
Headphones for students
(recommended)
U9.03_Lesson
How IM Works video:
https://www.youtube.com/wat
ch?v=ybcHjUP3TtY
Instant Messenger Tutorial:
http://aka.ms/IMTutorial
Instant Messenger Tutorial
Exercise: U9.03_Tutorial_Ex
Headphones for students
(recommended)
U9.04_Lesson
What is a Database video:
https://www.youtube.com/wat
ch?v=t8jgX1f8kc4
Table Tutorial:
http://aka.ms/TableTutorial
Outline of Lesson
9.5
27
Required Resources
Table Tutorial Exercise:
U9.04_Tutorial_Ex
Tables On Your Own:
U9.04_Activity
Headphones for students
(recommended)
U9.05_Lesson
Creating a Table: U9.05_Activity
Outline of Lesson
Brainstorm elements of useful
apps
Comparing games and apps
Basic user interface (UI) design
Group story creation
10.2
10.3
Parameters Review
App Tutorial 2
Journal entry: Improving the
multiplication practice app
10.4
10.5
Flashcard Ideas
Examine the App Example
Create a Flashcard App
Journal entry: Flashcard
Challenges
28
Required Resources
U10.01_Lesson
App Design Rules:
U10.01_Activity1
Group Story: U10.01_Activity2
3 Rules of App Design
http://www.fastcodesign.com/3
041374/3-rules-of-app-designaccording-to-yahoos-marissamayer
App Example:
http://aka.ms/AppExample
U10.02_Lesson
App Tutorial 1:
http://aka.ms/AppTutorial1
App Tutorial 1 Exercise:
U10.02_Tutorial_Ex
Student journals
Headphones for students
(recommended)
U10.03_Lesson
App Tutorial 2:
http://aka.ms/AppTutorial2
App Tutorial 2 Exercise:
U10.03_Tutorial_Ex
Student journals
Headphones for students
(recommended)
U10.04_Lesson
App Example:
http://aka.ms/AppExample
Flashcard App Activity:
U10.04_Activity
Student journals
U10.05_Lesson
App Example:
http://aka.ms/AppExample
Flashcard App Activity:
U10.04_Activity
Outline of Lesson
What is Digital Privacy?
Why Use Encryption?
Converting Text to Unicode
Journal entry
11.2
11.3
Journal Entry
Class Discussion about sign-in
security
Creating Strong Passwords
Activity
Cryptographic Hash Functions
Activity
11.4
29
Required Resources
U11.01_Lesson
Internet of Things:
https://www.youtube.com/wat
ch?v=GApYwlnO0G4
8.5 x 11 pieces of scrap paper
Tape
Unicode Activity:
U11.01_Activity
Student journals
U11.02_Lesson
Encryption Tutorial:
http://aka.ms/EncryptionTutori
al
Encryption Tutorial Exercise:
U11.02_Tutorial_Ex
Decryption Example:
http://aka.ms/DecryptionExamp
le
Headphones for students
(recommended)
U11.03_Lesson
Creating Strong Passwords:
U11.03_Activity1
Cryptographic Hash Functions:
U11.03_Activity2
Online Hash Calculator:
http://www.xorbin.com/tools/s
ha1-hash-calculator
How NOT to Store Passwords!:
https://www.youtube.com/wat
ch?v=8ZtInClXe1Q
Student journals
U11.04_Lesson
Password Example:
http://aka.ms/PasswordExampl
e (for teacher use)
Creating a Password Hash:
U11.04_Activity
Required Resources
U12.01_Lesson
Build Your App or Game:
U12.01_Activity1
Project Application:
U12.01_Activity2
Audience List:
U12.01_Resource.
U12.02_Lesson
Scrum task board
User Interviews and Research:
U12.02_Activity1
Thumbnail Sketches:
U12.02_Activity2
12.4
U12.03_Lesson
Scrum boards
UX Principles: U12.03_Activity1
What the heck is UX Design?:
https://www.youtube.com/wat
ch?v=Ovj4hFxko7c
How giant websites design for
you:
https://www.ted.com/talks/mar
garet_gould_stewart_how_gian
t_websites_design_for_you_an
d_a_billion_others_too?languag
e=en
U12.04_Lesson
Scrum boards
Empathy Map: U12.04_Activity1
Storyboard Your Game or App:
U12.04_Activity2
Predevelopment User Testing:
U12.04_Activity3
U12.05_Lesson
Scrum boards
Project Pitch Feedback and
Revisions: U12.05_Activity
31
Required Resources
U12.06-17_Lesson
Scrum boards
User Observation:
U12.14_Activity1
User Interview:
U12.14_Activity2
Draft Review: U12.15_Activity
U12.18-19_Lesson
U12.20-21_Lesson
Project Reflection:
U12.21_Activity
Build Your App or Game:
U12.01_Activity1
Standards Map
A quality computer science curriculum not only engages students in interesting, collaborative
learning activities using sound pedagogical strategies, but it also ensures that students are
learning concepts vital to the deep and broad field of computer science. Creative Coding through
Games and Apps has been designed to achieve this goal by aligning with the CSTA K12 Computer
Science Standards. While this is course is primarily an introductory programming course, units are
grounded in an array of standards from the strands of Computational Thinking, Collaboration,
Computing Practice and Programming, Computer and Communication Devices, and Community,
Global, and Ethical Impacts.
Unit 1: Surveying the Landscape: Examining Games and How they are Made
Students analyze the structure, elements, and logic of computer games. Students define program
and algorithm, examine the concept of computationally hard problems, and create a personal
collage in TouchDevelop.
Collaboration
CL 2-2. Collaboratively design, develop, publish, and present products (e.g., videos, podcasts, websites)
using technology resources that demonstrate and communicate curriculum concepts.
CL 2-3. Collaborate with peers, experts, and others using collaborative practices such as pair programming,
working in project teams, and participating in group active learning activities.
Computational Thinking
CT 2-1. Use the basic steps in algorithmic problem-solving to design solutions.
CT 2-3. Define an algorithm as a sequence of instructions that can be processed by a computer.
CT 2-6. Describe and analyze a sequence of instructions being followed (e.g., describe a characters
behavior in a video game as driven by rules and algorithms).
CT 2-10. Evaluate what kinds of problems can be solved using modeling and simulation.
CT 2-12. Use abstraction to decompose a problem into sub problems.
CT 2-14. Examine connections between elements of mathematics and computer science including binary
numbers, logic, sets and functions.
CT 3A-3. Explain how sequence, selection, iteration, and recursion are building blocks of algorithms.
Computing Practice and Programming
CPP 2-3. Design, develop, publish, and present products using technology resources that demonstrate and
communicate curriculum concepts.
CPP 2-4. Demonstrate an understanding of algorithms and their practical application.
32
Unit 1: Surveying the Landscape: Examining Games and How they are Made
Students analyze the structure, elements, and logic of computer games. Students define program
and algorithm, examine the concept of computationally hard problems, and create a personal
collage in TouchDevelop.
CT 2-14. Examine connections between elements of mathematics and computer science including binary
numbers, logic, sets and functions.
CT 3A-3. Explain how sequence, selection, iteration, and recursion are building blocks of algorithms.
Computing Practice and Programming
CPP 2-3. Design, develop, publish, and present products using technology resources that demonstrate and
communicate curriculum concepts.
CPP 2-4. Demonstrate an understanding of algorithms and their practical application.
Community, Global, and Ethical Impacts
CI 2-3. Analyze the positive and negative impacts of computing on human culture.
Unit 4: Gaining Ground: Controlling Game Flow with Events and Conditionals
Students learn about events (as used in games) and conditional statements.
Collaboration
CL 2-2. Collaboratively design, develop, publish, and present products (e.g., videos, podcasts, websites)
using technology resources that demonstrate and communicate curriculum concepts.
CL 2-3. Collaborate with peers, experts, and others using collaborative practices such as pair programming,
working in project teams, and participating in group active learning activities.
Computational Thinking
CT 2-1. Use the basic steps in algorithmic problem-solving to design solutions.
CT 2-6. Describe and analyze a sequence of instructions being followed (e.g., describe a characters
33
Unit 1: Surveying the Landscape: Examining Games and How they are Made
Students analyze the structure, elements, and logic of computer games. Students define program
and algorithm, examine the concept of computationally hard problems, and create a personal
collage in TouchDevelop.
behavior in a video game as driven by rules and algorithms).
CT 2-12. Use abstraction to decompose a problem into sub problems.
CT 2-14. Examine connections between elements of mathematics and computer science including binary
numbers, logic, sets and functions.
CT 3A-1. Use predefined functions and parameters, classes and methods to divide a complex problem into
simpler parts.
CT 3A-3. Explain how sequence, selection, iteration, and recursion are building blocks of algorithms.
CT 3A-8. Use modeling and simulation to represent and understand natural phenomena,
Computing Practice and Programming
CPP 2-3. Design, develop, publish, and present products using technology resources that demonstrate and
communicate curriculum concepts.
CPP 2-4. Demonstrate an understanding of algorithms and their practical application.
CPP 2-5. Implement problem solutions using a programming language including: looping behavior,
conditional statements, logic, expressions, variables, and functions
34
Unit 1: Surveying the Landscape: Examining Games and How they are Made
Students analyze the structure, elements, and logic of computer games. Students define program
and algorithm, examine the concept of computationally hard problems, and create a personal
collage in TouchDevelop.
CT 2-1. Use the basic steps in algorithmic problem-solving to design solutions.
CT 2-6. Describe and analyze a sequence of instructions being followed (e.g., describe a characters
behavior in a video game as driven by rules and algorithms).
CT 2-12. Use abstraction to decompose a problem into sub problems.
CT 3A-1. Use predefined functions and parameters, classes and methods to divide a complex problem into
simpler parts.
CT 3A-3. Explain how sequence, selection, iteration, and recursion are building blocks of algorithms.
CT 3A-8. Use modeling and simulation to represent and understand natural phenomena.
Computing Practice and Programming
CPP 2-3. Design, develop, publish, and present products using technology resources that demonstrate and
communicate curriculum concepts.
CPP 2-4. Demonstrate an understanding of algorithms and their practical application.
CPP 2-5. Implement problem solutions using a programming language, including: looping behavior,
conditional statements, logic, expressions, variables, and functions.
Community, Global, and Ethical Impacts
CI 2-3. Analyze the positive and negative impacts of computing on human culture.
35
Unit 1: Surveying the Landscape: Examining Games and How they are Made
Students analyze the structure, elements, and logic of computer games. Students define program
and algorithm, examine the concept of computationally hard problems, and create a personal
collage in TouchDevelop.
Computational Thinking
CT 2-1. Use the basic steps in algorithmic problem-solving to design solutions.
CT 2-6. Describe and analyze a sequence of instructions being followed (e.g., describe a characters
behavior in a video game as driven by rules and algorithms).
CT 2-12. Use abstraction to decompose a problem into sub problems.
CT 2-14. Examine connections between elements of mathematics and computer science including binary
numbers, logic, sets and functions.
CT 3A-1. Use predefined functions and parameters, classes and methods to divide a complex problem into
simpler parts.
CT 3A-3. Explain how sequence, selection, iteration, and recursion are building blocks of algorithms.
CT 3A-8. Use modeling and simulation to represent and understand natural phenomena.
Computing Practice and Programming
CPP 2-3. Design, develop, publish, and present products using technology resources that demonstrate and
communicate curriculum concepts.
CPP 2-4. Demonstrate an understanding of algorithms and their practical application.
CPP 2-5. Implement problem solutions using a programming language including: looping behavior,
conditional statements, logic, expressions, variables, and functions.
36
Unit 1: Surveying the Landscape: Examining Games and How they are Made
Students analyze the structure, elements, and logic of computer games. Students define program
and algorithm, examine the concept of computationally hard problems, and create a personal
collage in TouchDevelop.
CT 2-1. Use the basic steps in algorithmic problem-solving to design solutions.
CT 2-6. Describe and analyze a sequence of instructions being followed (e.g., describe a characters
behavior in a video game as driven by rules and algorithms).
CT 2-12. Use abstraction to decompose a problem into sub problems.
CT 3A-1. Use predefined functions and parameters, classes and methods to divide a complex problem into
simpler parts.
CT 3A-3. Explain how sequence, selection, iteration, and recursion are building blocks of algorithms.
CT 3B-6. Compare and contrast simple data structures and their uses (e.g., arrays and lists).
Computing Practice and Programming
CPP 2-4. Demonstrate an understanding of algorithms and their practical application.
CPP 2-5. Implement problem solutions using a programming language including: looping behavior,
conditional statements, logic, expressions, variables, and functions.
CPP 3A-1. Create and organize Web pages through the use of a variety of web programming design tools.
CPP 3A-2. Use mobile devices/emulators to design, develop, and implement mobile
computing applications.
Computers and Communications Devices
CD 3A-9. Describe how the Internet facilitates global communication.
37
Unit 1: Surveying the Landscape: Examining Games and How they are Made
Students analyze the structure, elements, and logic of computer games. Students define program
and algorithm, examine the concept of computationally hard problems, and create a personal
collage in TouchDevelop.
Unit 12: You Have Arrived: Independent Project Development
Students explore how effective teams work together through collaboratively planning and creating
a TouchDevelop game or app that incorporates concepts from the second nine weeks of the
course.
Collaboration
CL 2-2. Collaboratively design, develop, publish, and present products (e.g., videos, podcasts, websites)
using technology resources that demonstrate and communicate curriculum concepts.
CL 2-3. Collaborate with peers, experts, and others using collaborative practices such as pair programming,
working in project teams, and participating in group active learning activities.
Computational Thinking
CT 2-1. Use the basic steps in algorithmic problem-solving to design solutions.
CT 2-6. Describe and analyze a sequence of instructions being followed (e.g., describe a characters
behavior in a video game as driven by rules and algorithms).
CT 2-12. Use abstraction to decompose a problem into sub problems.
CT 3A-1. Use predefined functions and parameters, classes and methods to divide a complex problem into
simpler parts.
CT 3A-3. Explain how sequence, selection, iteration, and recursion are building blocks of algorithms.
CT 3A-8. Use modeling and simulation to represent and understand natural phenomena.
Computing Practice and Programming
CPP 2-3. Design, develop, publish, and present products using technology resources that demonstrate and
communicate curriculum concepts.
CPP 2-4. Demonstrate an understanding of algorithms and their practical application.
CPP 2-5. Implement problem solutions using a programming language including: looping behavior,
conditional statements, logic, expressions, variables, and functions.
CPP 3A-1. Create and organize Web pages through the use of a variety of web programming design tools.
CPP 3A-2. Use mobile devices/emulators to design, develop, and implement mobile
computing applications.
Computers and Communications Devices
3A-9. Describe how the Internet facilitates global communication.
Community, Global, and Ethical Impacts
CI 2-3. Analyze the positive and negative impacts of computing on human culture.
Pacing Guide
The diagram below provides suggested pacing guidance for Creative Coding through Games and
Apps. For a day-by-day breakdown of lessons, see the Course Outline section above.
Note that each lesson is designed to be 50 minutes in duration. It is recognized that the suggested
pacing for individual lessons and/or units of the course may be expanded or compressed to suit
the needs and interests of individual classrooms, schools, and/or school systems.
38
39
9-Week
Course
(45 lessons)
12-Week
Course
(60 lessons)
18-Week
Course
(90 lessons)
Unit 6
Unit 1
Surveying the Landscape: Examining Games and How
they are Made
Unit 2
Spinning the Globe: Spinning the Globe: Use of
Randomization in Games
Unit 3
Shifting into Gear: Controlling Game Objects
Unit 4
Gaining Ground: Controlling Game Flow with Events
and Conditionals
Selected
lessons
from Units
1-6.
Unit 5
Unit 7
Refueling: Adding Animation with Sprite Sheets
Unit 8
Riding the Momentum: Loops and Collections
Unit 9
Into the Great Beyond: Cloud Computing
Unit 10
Discovering New Horizons: TouchDevelop App Design
Unit 11
Traveling Safely: Privacy and Encryption
Unit 12
You Have Arrived: Independent Project Development
40
41
42
Preparing to Teach
General Guidance
Creative Coding through Games and Apps is designed to be taught by any teacher with an interest
in teaching the course, regardless of prior knowledge about coding. If you have experience in this
area, you will be able to enrich the course with your expertise. But, if you do not, you will find
that you can learn along with your students.
Regardless of your prior knowledge you will want to focus on two areas prior to teaching Creative
Coding through Games and Apps:
1. Become familiar with TouchDevelop. If you have experience with coding, you will find that
all of the concepts covered in this course are familiar, but applying them in TouchDevelop
may be new to you. If you do not have experience in coding, you will want to learn basic
coding concepts and become familiar with TouchDevelop. The following free resources will
help you do both:
2. Integrate TouchDevelop into your classroom. The TouchDevelop website has many useful
tips about integrating TouchDevelop into your classroom:
https://www.touchdevelop.com/docs/teach.
If you are a teacher with no prior knowledge about coding, you will want to focus on two
additional areas prior to teaching Creative Coding through Games and Apps:
1. Have a beginners mindset. Learning alongside your students is not something that all
teachers are comfortable with. However, doing so reflects the real world of software
development. The world of technology is changing at an incredibly rapid pace. Todays
experts are tomorrows dinosaurs. The one true skill in this world is the ability to learn. By
learning alongside your students, by not being an authority on the subject, and by
encouraging students to arrive at answers on their own, you may provide a very valuable
experience, one that reflects the nature of the real world and that will serve them well in
any future endeavor.
2. Learn coding fundamentals. As valuable as having a beginners mindset may be, we all
want to be at least one step ahead of our students. You should find that TouchDevelop
tutorials and resources in each lesson allow you to do just that. Additionally, as a head
start to the course, the resources above will give you a great jump on learning coding
fundamentals.
43
http://aka.ms/WelcomeToTouchDevelop
http://aka.ms/ExploringTouchDevelop
http://aka.ms/CodingInTouchDevelop
http://aka.ms/BeyondBasicsInTouchDevelop
How do I integrate TouchDevelop into my classroom?
The TouchDevelop website has many resources for integrating TouchDevelop into your classroom,
including information about joining a teachers group and managing your classroom:
https://www.touchdevelop.com/docs/teach.
One integration point that will require some forethought has to do with reviewing students work.
The simplest way to do this is to have students publish finished scripts and share the script URL
with you. So that you can identify the student who created the script, require that students put
their names in the script description. Another option is to create a TouchDevelop group for your
class and have students share finished scripts with the group. Information about TouchDevelop
groups can be found here: https://www.touchdevelop.com/docs/groups.
Of note when using TouchDevelop to teach and learn
As you learn TouchDevelop and become familiar with using it as a teaching tool, these are
important things to keep in mind.
TouchDevelop changes. The engineers at Microsoft Research are continually looks for
ways to make TouchDevelop more intuitive and easier to use. This means that you may
see subtle changes in the TouchDevelop interface from time to time. These changes
generally do not affect functionality you just need to be aware that changes do occur.
Students can upload and share any image. This means that students can upload and
share copyrighted and/or offensive images to use in their games and apps. This places
the burden of discretion on students. This is best addressed as a teaching opportunity:
Make sure students think twice and understand the potential impact when uploading
or using a shared image. To report abuse, follow the report abuse link in a published
script. For more information about using art in TouchDevelop scripts, see
https://www.touchdevelop.com/app/beta#list:topics:topic:art:overview.
Students can share and copy each others work. This can be extremely beneficial,
allowing students to learn from each other and build upon each others work.
However, it also presents an opportunity for plagiarism. For major projects, it is
important to monitor students work throughout the development process to insure
that a students work is his/her own and that he/she understands the code.
TouchDevelop has different skill levels. TouchDevelop has 3 different skill levels:
beginner, coder, and expert. Each level exposes increasingly complex functionality and
44
features. The TouchDevelop tutorials for this course are designed to be done in coder
mode and will change a students skill level accordingly. Students may change between
skill levels by clicking Skill level from the TouchDevelop hub. However, the coder skill
level provides the best set of functionality and features for middle and high school
students.
Always sign in/sign out on shared computers. TouchDevelop stores data locally on a
per user basis. This can pose issues when students are using shared computers. To
make sure students have access to their account information, students should always
sign in and sign out when using a shared computer. Another way to make sure that
students access only their own account data is to do the following:
Have students open a browser in private mode. In Internet Explorer, this is
called InPrivate browsing mode. In Chrome, it is called incognito mode. In
Firefox, its simply called private mode.
Students then sign in to their TouchDevelop accounts.
When the browser is closed, the student is automatically signed out.
Students can skip instructional videos in tutorials. TouchDevelop does not force
students to watch instructional videos that are embedded in tutorials. Students can
skip the video instruction and go directly to the programming portions of tutorials.
However, by doing so, students will miss very important information concepts,
details, and context that are critical to their success in the course. For this reason, you
should emphasize the importance of watching these instructional videos in tutorials. In
fact, its worth encouraging students to re-play videos to make sure they grasp
concepts. Finally, it is worth noting that these videos can be played in full-screen mode.
You can print code for TouchDevelop scripts. While online lessons and working in an
online environment have their benefits, it is sometimes nice to have something
tangible to share and work with. TouchDevelop makes it possible to do this. You can
print the code for a script by navigating to a script and clicking the printer icon. A new
browser tab will open with nicely formatted, ready-to-print code.
45
46
Glossary
algorithm A set of (often repeated) steps used to solve a problem. The set of steps
for doing long division of number is an algorithm.
app In TouchDevelop, an a script created from the blank app template and consisting
of one or more pages. An app is different than a game in that it is created from a
different template, is made up of one or more pages that can be navigated, and
includes libraries that make user interaction with text and buttons easy. In general, an
app is a computer program often designed for a particular purpose and often designed
for mobile devices.
assign To set the value of a variable. The symbol for assign in TouchDevelop is :=. The
following code assigns a value of 5 to the variable x: x := 5.
Boolean A variable type that can be either true or false. A Boolean condition is a
condition that evaluates to either true or false.
the cloud The group of computers that are accessible via the Internet and are used
for remote storage and computation.
cloud variable a variable whose value is stored in the cloud. Also see replicated
variable.
computer program A set of instructions that a computer can follow. Apps and games
are examples of computer programs. In TouchDevelop, a computer program is called a
script.
concatenate To put two strings end-to-end to form a single string. For example, the
concatenation of Hello and world is Helloworld. The symbol for concatenate in
TouchDevelop is two vertical lines.
debug The process of correcting errors within a program. i.e. The process of removing
bugs from a program.
encrypt The process of making data unusable to anyone who doesnt understand
how to decrypt the data. Encrypting data usually involves using an algorithm, known as
47
the encryption key, to map characters to other characters in such a way that the data is
only usable if the encryption key is known and used to decrypt the data.
event Something that happens outside a program (like a screen tap or mouse click)
that the program can respond to.
for loop A programming construct that allows for a block of code to be executed a
specified number of times.
for each loop A programming construct that allows for a block of code to be executed
one time for each object in a collection, table, or other data structure with multiple
elements. For example, a for each loop allows for a block of code to be executed for
each element in a collection or for each row in a table.
Frayer Model A graphical tool for building definitions. For more information, see
http://www.readingeducator.com/strategies/frayer.htm.
game In TouchDevelop, a script created using the blank game template, with a player
earning points and losing lives based on the logic of the script. A game is different than
an app in that it is created from a different template and includes libraries for making
movement and scoring easy.
initialize To set the value of a variable for the first time. In TouchDevelop, variable
declaration and initialization usually happen at the same time. The following code
declares a variable named x and initializes its value to 5: var x := 5. When a
variable is initialized, its variable type is also determined. In the example shown, the
variable type for x is number. i.e. The variable x can only be assigned values that are of
variable type number.
loop See for loop or for each loop. In general, a programming construct that allows
for a block of code to be repeated multiple times.
loop counter The variable used in a for loop to determine the number of times the
loop will execute.
object A fundamental building block for any computer program, designed to hole
data and allow for manipulation of that data through functions and properties.
replicated variable A variable whose value is replicated (i.e. copied or stored) in the
cloud.
48
sprite An object that is usually a character in a game. Sprites have properties and
functions that are used to control their look and behavior.
sprite sheet A single file with multiple images that, when viewed in rapid succession,
create an animation.
table In TouchDevelop, a table is a data structure that contains rows and columns. All
data in each column is of the same variable type and each row can be referenced by its
index.
variable A container for data. Every variable has a name that is used to reference the
data that it contains. Every variable also has a variable type.
variable type The type of data that a variable can contain. Examples of variable types
are number, string, and sprite. In TouchDevelop, the variable type for a variable is
determined when the variable is initialized. Once the variable type for a variable has
been determined, the variable can only contain data of the same type.
variable scope The part of a program where a variable can be read. For example, a
variable declared in one function is said to be a local variable, and cannot be read from
other functions. However, variables can be declared with a global scope, making them
readable in all functions of a program.
49