Python - Part 3 is the final installment of the Python Sequence. Students who complete the Python Sequence will know all of the basic computer science concepts necessary to write complex programs using Python.
Students learn how to use logical operators in order to write code that makes complex decisions. In this lesson, students use booleans, and/or/not operators, and is in conditionals to implement a truth table to classify animals.
Python has existing modules that can be imported so that students can use code that others have written. In this lesson, students import the datetime module and learn how to perform date and time calculations.
Creating links between two different forms of data is an important coding skill that students need throughout their coding career. In this lesson, students create a whack-a-mole game using dictionaries and key-value pairs.
In this lesson, students learn how to create a video game that has multiple levels using 2D lists to generate new maps for each level. Using nested loops and conditionals, students create new challenges with each new maze!
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.