Students complete a series of mini-projects designed to teach the basic syntax, structure, and process for writing programs in Python. This is the second installment of the Python Sequence, a complete introduction to programming in Python.
Python 2 is all about learning to create and use functions. In this first lesson student learn to define a function and call it later in their program. Students also learn how to use functions to keep their code organized.
Students learn how to use events such is collisions, key clicks, and mouse motions to trigger functions. They also learn how to set and use inputs into those functions to make interesting game mechanics.
Students create a fun Dino Dodge game that adds physics, a timer, and global variables to what they have already learned about using functions, events, and game mechanics.
Students learn how to use parameters to make their functions more flexible and reusable. In this lesson students create a party invite generator that can use create different cards depending on the input parameters.
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.
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.
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.
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.
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.
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.
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.
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.