Intro to Game Design

Ten project-based lessons that teach students how to create games like Flappy Dino, Brick Breaker, and Basketball. Python 1 is recommended. Students learn collision events, keyboard input, score-keeping, and much more.

Description

In this project-based series of lessons students learn how to use Codesters to create games in Python.

Coding Topics

Taking Turns

Moving Objects

Collisions

Random Numbers

Avoiding Hazards

Getting Points

Concepts

Debugging

Problem Solving

Computational Thinking

Algorithms

Example Projects

Brick Breaker

Our Game Design lessons are designed to show students how to use their Python coding skills to create games. To create the classic BrickBreaker, students use nested loops to add rows of blocks to the screen, then use the physics engine and collision events to create the game mechanics.

Basketball

In this Basketball game, students learn how to add a click-and-drag event to allow the player to control how the the angle and speed of their shot. Then, students use the physics engine and a goal collision event to keep score when the player makes a shot.

Recycling Game

Some games include a positive social message. In the Recycling Game students players are given the goal of cleaning up garbage in the park and recycling it to make new useful items.

Alien Scroller

In this arcade-style scroller, students start by creating a hero, then add hostile characters and other obstacles, and finally challenge the player to maneuver their hero to the goal and will the game.

Codesters Pedagogy

Each project-based lesson has around 20 activities and its divided into 3 phases:
Build, Modify, and Create. The activities in the Build and Modify phases are automatically graded,
including debugging and assessment activities. The capstone Create project for each lesson is graded by
the teacher using a rubric provided by Codesters.

Build

Students start by building an example project, through which they develop key coding skills. Debugging activities help students
learn specific rules about syntax and the structure of code. Assessments include multiple choice questions and journal responses.

Modify

Once students have built their example project they are asked to customize the program to solidify their
understanding and demonstrate proficiency with the skills they learned.

Create

Students create a new project from scratch that uses the same core skills skills they developed
in the example project. This capstone project for each lesson creates opportunities for students to deepen their
understanding and to demonstrate mastery of coding topics.

Standards Alignment

Our curriculum is aligned to the CCSS Standards for Mathematical Practice as well as Computer
Science standards from the most recent draft of the CSTA K-12 Standards (K-8). For Mathematical
Practice standards we address problem-solving skills, perseverance, strategic planning, and place value on developing
an efficient problem solving approach. For Computer Science we address the standards
identified in the Algorithms and Programming.

CCCSS MP1: Make sense of problems and persevere in solving them.
In each lesson, students are given direct instruction as they build a example program that includes the programming
concepts the lesson addresses. Throughout the build process, students are intermittently asked to solve "debugging"
challenges that ask them to figure out a common problem and find a way to fix it. As a culminating activity for each
lesson, students are given a real-world based programming challenge that allows them to use the skills they've
practiced in the lesson.

CCSS MP7: Look for and Make Use of Structure.
The first lessons in our curriculum stress the importance of order and simple data structures in programming.
Programs run in order; students create programs that follow a single path from beginning to end. As they build their
example programs, they get instructions, examples, and non-examples that start to bear out the kind of structure
that is inherent to high quality programs. When they are asked to create their own original programs, they make
use of the structural elements from the lessons.

CCSS MP8: Look for and express regularity in repeated reasoning.
Our curriculum starts students as beginning text-based programmers. Their first tasks are to use pre-built commands
delivered in a certain order so that they get a certain visual outcome. This approach allows students to see
specific output/visual feedback that relates to the individual commands they’ve used.

K-12 CSTA Framework Concept: Algorithms and Programming.
All of our lessons have been developed with this framework concept in mind. We provided scaffolded instructions that
walks students through the most basic programming concepts to levels where students are dealing with sophisticated
and abstract programming concepts.

Project-based Learning

With Codesters, students learn to code by creating fun and engaging projects. Each lesson is structured as a project for students to build. And each project introduces students to new coding topics and concepts while reinforcing ones they have already learned. For example, in Rock Paper Scissors students learn to use if-statements to compare their choice to the computer's random choice and decide who wins. Students are motivated to persevere through learning to code in order to create the project they want to build. And they have fun while in the process.

Monitor Student Progress

Teachers play a critical role in helping students learn to code with Codesters. Teachers monitor each student's progress on their dashboard in order to see which students are struggling and where. They can even drill down to see the actual code a student submitted that did not receive full points. This helps the teacher stay on top of students' learning and guide them to becoming expert coders.

Immediate Feedback

As students follow the instructions in the Build and Modify phases of the project-based lesson, they receive immediate feedback about mistakes they might be making. This feedback is both in the student-friendly error messages and the hints and suggestions built into the automatic scoring system. Immediate feedback helps students to understand and correct their mistakes and smoothes the path to learning to code.