Course Title: Python 1

Curriculum Description: Twenty-lesson introduction to programming in Python uses fun and engaging single-lesson projects to teach students foundational coding concepts.

Prerequisites: None

Course Content:

In this course, students will complete a series of lessons designed to teach the basic syntax, structure, and process of writing programs in Python. These projects will tackle the following concepts: data types, variables, conditionals, loops, lists, algorithms, and debugging. Students create a mid-term project at course completion.

 

Assessment Tools

 

  • Auto graded lessons
  • Multiple choice - Formative assessments
  • Project work graded by rubric
  • Midterm project

Standards addressed in all lessons:

 

Skill Building:

  • CSTA 2-AP-11: Create clearly named variables that represent different data types and perform operations on their values.

  • CSTA 2-AP-13: Decompose problems and subproblems into parts to facilitate the design, implementation, and review of programs.

 

Debugging:

  • CSTA 2-AP-17: Systematically test and refine programs using a range of test cases.
 

Create Projects:

  • CSTA 2-AP-15: Seek and incorporate feedback from team members and users to refine a solution that meets user needs.

Student Activities: How is learning demonstrated?

Lessons are based on a differentiated instruction model with multiple exit points:

 

Skill Build – Learn new concepts to create a project following a step-by-step approach.

Modify – Apply learned concepts to modify and add to the existing project.

Create – Show mastery by building a real-world relevant project on their own or as part of a team.

Lesson 1 - Dance Steps

 

Use the actions toolkit to program a sprite to do a series of dance moves.

 

Create Project: Build a customized sprite dance routine.

Standards:

 

2-AP-11: Use Variables

Learning Targets:

  • Distinguish between strings, integers, and float data types

  • Use string, integer, and float data types in a program

  • Write programs that carry out actions in an intended sequence

  • Debug a program that runs but produces unexpected or unwanted results

  • Use an error message to help debug a non-working program

Lesson 2 - Dialogue

 

Choreograph a dialogue between multiple sprites using dot notation and unique variable names.

 

Create Project: Recreate a fable or folktale in Codesters.

Standards:

 

2-AP-11: Use Variables

Learning Targets:

  • Use unique variables names to refer to different sprites

  • Use dot notation to assign commands to a specific sprite

  • Differentiate between the variable name of a sprite and its image label

  • Debug programs so that they run commands in the intended sequence

  • Write programs that carry out actions in an intended sequence

Lesson 3 - Robot Design

 

Create a robot using the Shapes toolkit while changing variable names and parameters to customize the design.

 

Create Project: Use code to create an emoji.

Standards:

 

2-AP-11: Use Variables

 

2-AP-19: Comments and Documentation

Learning Targets

  • Distinguish between comments and lines of code

  • Use comments to help understand code

  • Use comments as a reference for writing code

  • Use the correct data type (string, integer, float) as parameters in commands

  • Use an event to make the program interactive

Lesson 4 - Night Sky

 

Build a version of the night sky using variables to control the size, color, and number of the stars.

Create Project: Use variables to create a kaleidoscope that can be changed every time the program is run.

Standards:
 

2-AP-11: Use Variables

 

2-AP-19: Comments and Documentation

Learning Targets:

  • Use a variable creation statement to assign a value to a variable

  • Use variables to store integers and strings

  • Use variables as parameters to control size, shape, color, etc of objects on the stage

  • Use variables to control multiple objects at once

  • Improve efficiency in programming by allowing wide scale changes from a single line of code

Lesson 5 - My Friends

 

Use variables and string concatenation to tell a story about a group of friends.

 

Create Project: Make a sprite sing at least one verse from "The Name Game," a classic tune that makes rhymes out of people's names.

Standards:

 

2-AP-11: Use Variables

Learning Targets:

  • Store a string value in a variable
  • Concatenate two strings using +
  • Concatenate a string and string variable using +
  • Change the value of variables to change a story

Lesson 6 - MadLibs

Write a "code lib" that takes in user input to construct a wacky story.

Create Project: Write a funny or nonsense limerick! Make it interactive by having users complete the lines.

Standards:

 

2-AP-11: Use Variables

Learning Targets:

  • Use the .ask() function to prompt the user to answer a question

  • Store the user input in a variable

  • Combine user input (as a string) with other strings to form full sentences

  • Use variables to control multiple objects at once

  • Improve efficiency in programming by allowing wide scale changes from a single line of code

  • Use int() to cast user input as an integer

Lesson 7 - Roll the Dice

 

Generate random dice rolls using Python's random number generator.

 

Create Project: Write a random scene generator to help writers overcome writer's block.

Standards:

 

2-AP-11: Use Variables

Learning Targets:

  • Generate a random number within a certain range and store it in a variable

  • Display the value of a variable

  • Use str() to cast an integer/integer variable to a string so it can be concatenated with other strings

  • Use + as a math operator to add two integer variables

Lesson 8 - Size Shifting Shapes

 

Employ Python's math operations to calculate the area of simple shapes.

Create Project: Use code to draw a city or neighborhood made of shapes, displaying the area or perimeter of the buildings.

Standards:

 

2-AP-11: Use Variables

 

2-AP-13: Decomposition

Learning Targets:

  • Use basic math operators to add, subtract, multiply, and divide
  • Use variables to store integer and float values
  • Store the results of a mathematical formula in a variable
  • Use an event to make the program interactive
  • Use a variable display tool to display a variable whose value changes as your program runs.

Lesson 9 - Spirograph

Review loops and create a complex spiral using Codesters drawing capacity.

 

Create Project: Use loops to create a spirograph drawing.

Standards:

 

2-AP-11: Use Variables

 

2-AP-12: Control Structures

Learning Targets:

  • Use loops to avoid repeating lines of code
  • Understand and modify range in a loop
  • Use variables in a loop

Lesson 10 - Robot Factory
 

Create robots in a robot factory by incrementing variables inside a loop.

 

Create Project: Draw a video game scene using variables in a loop.

Standards:

 

2-AP-11: Use Variables

 

2-AP-12: Control Structures

Learning Targets:

  • Use loops to avoid repeating lines of code
  • Change the value of a variable inside a loop as the loop runs
  • Use increment (+=) and decrement (-=) operators to change the value of a variable

Lesson 11  - Wizard Whiz

 

Make a coded version of a magic eight ball using if statements and random numbers.

Create Project: Create a game where players are prompted to make up a short story based on three pictures that randomly appear on the screen.

Standards:

 

2-AP-11: Use Variables

 

2-AP-12: Control Structures

Learning Targets:

  • Use conditionals and random numbers to produce random results
  • Use .ask() to collect and store user input
  • Use the equality comparison operator (==) to test whether two integers are the same

Lesson 12  - Choose Your Adventure

Construct a choose-your-own adventure game using if statements.

Create Project: Code a custom choose-your-own adventure.

Standards:

 

2-AP-11: Use Variables

 

2-AP-12: Control Structures

Learning Targets:

  • Use .ask() to collect and store user input
  • Use user input in conditionals to control the flow of the program
  • Use the equality comparison operator (==) to test whether two strings are the same
  • Use elif to test additional conditions after an initial if statement
  • Use else to handle situations where all tested conditions are False

Lesson 13  - Begin Rock Paper Scissors

 

Code a version of the game Rock, Paper, Scissors using user input and random numbers.

Standards:

 

2-AP-11: Use Variables

 

2-AP-12: Control Structures

 

2-AP-13: Decomposition

Learning Targets:

  • Use .ask() to collect and store user input
  • Use user input in conditionals to control the creation of sprites that match user input
  • Generate random numbers and use them to create an automatic "opponent"
  • Use random numbers in conditionals to create sprites based on the random number

Lesson 14 - Who Won Rock Paper Scissors?

 

Finish the coded game of Rock, Paper, Scissors by using compound conditionals to determine who wins using user input and random numbers.

 

Create Project: Modify the Rock, Paper, Scissors game so it has five shapes and new rules.

Standards:

 

2-AP-11: Use Variables

 

2-AP-12: Control Structures

 

2-AP-13: Decomposition

Learning Targets:

  • Use conditionals to find the winner of a user vs computer game
  • Use the keyword and to test two conditions at once (compound conditionals)
  • Update text displayed on stage to display the winner

Lesson 15 - Guess the Number


Implement a number guessing game that gives the user a specific amount of guesses using for loops and conditionals.

Create Project: Design an interactive quiz on an endangered animal.

Standards:

 

2-AP-11: Use Variables

 

2-AP-12: Control Structures

Learning Targets:

  • Use a loop to repeat a series of actions
  • Nest conditionals inside a loop
  • Use the greater than > and less than < comparison operators in conditionals
  • Use data type casting to convert data values to the type needed for the specific command
  • Use the break keyword to end a loop

Lesson 16 - Pet Shop

 

Learn how to use lists and loops to group a set of items and then assign actions to each item in the group.

 

Create Project: Create an animated action scene.

Standards:

 

2-AP-11: Use Variables

 

2-AP-12: Control Structures

 

2-AP-13: Decomposition

Learning Targets:

  • Use a list to store a collection of strings
  • Use a variable to name and store a list
  • Use a variable display tool to display a list
  • Use basic list functions to add and remove items from a list
  • Loop through a list to repeat a set of commands for every item stored in the list

Lesson 17 - Password

 

Use loops and lists to create a word guessing game.

 

Create Project: Make a program that allows users to enter a word and then write their own an acrostic poem based on that theme.

Standards:

 

2-DA-08: Data Visualization

 

2-AP-11: Use Variables

 

2-AP-12: Control Structures

Learning Targets:

  • Loop through a string to repeat a set of commands for every character in the string
  • Initialize an empty string variable
  • Store an updated value in the initially empty string variable with each iteration of a loop
  • Nest blocks of code by managing indentation

Lesson 18 - Piggy Bank Mystery

 

Use loops, lists, and list operations to create a piggy bank guessing game.

 

Create Project: Make a program that allows users to generate and analyze data.

Standards:

 

2-DA-08: Data Visualization

 

2-AP-11: Use Variables

 

2-AP-12: Control Structures

Learning Targets:

  • Use a list to store a collection of float values

  • Initialize an empty list

  • Add a  value to the initially empty list with each iteration of a loop

  • Randomly choose a value from a list

  • Use basic list functions to count items in a list, add all values in a list, and find the maximum and minimum value stored in a list

Lesson 19 - Concept Review

 

Practice the coding skills and concepts learned in the previous lessons by completing a series of puzzles and activities.

2-AP-11: Use Variables

 

2-AP-12: Control Structures

 

2-AP-13: Decomposition

Learning Targets:

  • All prior learning targets

Lesson 20a - Midterm: Which Sprite are You?

 

Practice making a "which ___ are you" quiz before making one's own.

 

Standards:

 

2-AP-11: Use Variables

 

2-AP-12: Control Structures

 

2-AP-13: Decomposition

Learning Targets:

  • Use a list to store a collection of strings

  • Use a list to store a collection of integer variables

  • Use a variable to name and store a list

  • Initialize an empty list

  • Store user input in a list

  • Loop through a list to repeat a set of commands for every item stored in the list

  • Use basic list functions to add items to a list; to count how many times a specific value appears in a list

  • Use conditionals to produce different results depending on user input

  • Use elif to test additional conditions after an initial if statement

Lesson 20b - Midterm: Make Your Own Quiz

 

Design a "which ___ are you" quiz using concepts covered in previous lessons.

Standards:

 

2-AP-11: Use Variables

 

2-AP-12: Control Structures

 

2-AP-13: Decomposition

Learning Targets:

  • Use a list to store a collection of strings

  • Use a list to store a collection of integer variables

  • Use a variable to name and store a list

  • Initialize an empty list

  • Store user input in a list

  • Loop through a list to repeat a set of commands for every item stored in the list

  • Use basic list functions to add items to a list; to count how many times a specific value appears in a list

  • Use conditionals to produce different results depending on user input

  • Use elif to test additional conditions after an initial if statement

Lesson 21 - Extra Credit Project

 

Make a program that reviews something recently learned in school.

Standards:

 

N/A

Learning Targets:

  • Add backgrounds and sprites to the stage.

  • Use the Say tool or Text sprites to display information.

  • Request and store user input.

  • Compare information using if statements.

Create your own Knowledge Base