You are here

Alice game programming for middle school students

Campe, Shannon ; Denner, Jill ; Werner, Linda
Issue Date: 
Monday, February 20, 2012
We are pleased to share this set of materials that can be used or adapted by K-12 teachers who want to offer a unit on computer game programming. They were created as part of a research study that was designed to define, measure, and promote computational thinking among middle school students. Computational thinking is a problem solving process used by computer scientists. The study involved developing, implementing, and collecting research data on a curriculum to teach students to design and program computer games with the Alice programming environment. The study was implemented at 7 schools for two years as part of elective technology classes during and after school. The classes ran for approximately 20 hours over one semester, and students either worked alone or with a partner. Students spent two hours playing sample games and completing built-in Alice tutorials, approximately 10 hours completing step-by-step, self-paced written instructions called “challenges,” and approximately 8 hours programming their own game.
game programming, Alice instructional materials
Education Levels: 
Middle School
High School
Intended Audience: 
Instructional Material : Activity
ETR Associates
CSTA Classification: 


Construct a program as a set of step-by-step instructions to be acted out (e.g., make a peanut butter and jelly sandwich activity).


Apply analysis, design, and implementation techniques to solve problems (e.g., use one or more software lifecycle models).


Decompose a problem by defining new functions and classes.


Use tools of abstraction to decompose a large-scale computational problem (e.g., procedural abstraction, object-oriented design, functional design).


Use Application Program Interfaces (APIs) and libraries to facilitate programming solutions.


Use advanced tools to create digital artifacts (e.g., web design, animation, video, multimedia).


Describe a software development process used to solve software problems (e.g., design, coding, testing, verification).


Use the basic steps in algorithmic problem-solving to design solutions (e.g., problem statement and exploration, examination of sample instances, design, implementing a solution, testing, evaluation).


Demonstrate an understanding of algorithms and their practical application.


Implement problem solutions using a programming language, including: looping behavior, conditional statements, logic, expressions, variables, and functions.