This lesson introduces students to an overview of the Intro to Python course while probing their thinking on what it means to be successful in an online (or blended learning) course.
Students will be able to:
In this lesson, students are introduced to coding with turtle graphics. Students will begin to recognize programs as sequences and groups of commands. Students will learn a few basic commands and then apply them right away by writing their first program.
Students will be able to:
In this lesson, students will be introduced to the layout of Tracy’s grid world and will learn how to use coordinate pairs to locate Tracy on the coordinate plane. They will add to the list of commands they know and can use to create Tracy graphics.
Students will be able to:
penup()
, pendown()
, and backward()
commands in their programsIn this lesson, students will learn how to use the left and right commands in order to move Tracy to more locations on the canvas. They will now have many commands that can be used to have Tracy create more complex graphics.
Students will be able to:
In this lesson, students are introduced to for loops. They learn how for loops simplify the process of making small changes to a program and help avoid repeating code. For loops are written like this:
for i in range (4):
// Code to be repeated 4 times
Students will be able to:
In this lesson, students are introduced to the ability to turn Tracy at any angle. With this feature, Tracy can now draw diagonal lines which opens up the possibility to draw multiple shapes that weren’t previously available.
Students will be able to:
In this lesson, students learn how to use comments to describe their programs. Comments are helpful because they allow programmers to leave notes about the programs they are writing. Students will also learn about the different types of comments that can be used and the benefits of using them.
Students will be able to:
In this short lesson, students will be introduced to the rules for naming elements in their code. Variables and functions that are used inside their programs will be named by students, so the following guidelines should be obeyed to be sure that the programs written are readable and successful.
Students will be able to:
In this lesson, students are introduced to functions. They start with the basics of defining a function and why we need them and will revisit a program they coded earlier in the unit to rewrite it using functions.
Students will be able to:
In this lesson, students are able to add some flair to their turtle graphics programs by controlling color, pensize, and fill. These new commands are added to the list of commands that have been already practiced in order to allow for more creativity in student programs.
Students will be able to:
circle()
command to draw different shapescolor()
, pensize()
, begin_fill()
, and end_fill()
commands to add more creativity to their programsIn this lesson, students are introduced to the concept of Top Down Design. Top Down Design is the process of breaking down a program into functions or smaller parts to avoid repeated code and to make our programs more readable.
Students will be able to:
In this lesson, students will learn about a fundamental aspect of every programming language: Variables. A variable is something that stores information in a program that can be used later.
Students will be able to:
In this lesson, students will learn how to incorporate user input into their programs. Students will learn how to request user input as both strings and integers, where the input is stored, and how to convert strings and integers.
Students will be able to:
In this lesson, students will dive deeper into the concept of functions by exploring how to use parameters to customize their code.
Students will be able to:
In this lesson, students will expand their knowledge of for loops. They are aware that for loops execute the same lines of code a given number of times but will learn that i is actually a variable that can be used to control commands inside the loop as it is running.
Students will be able to:
In this lesson, students will learn the extended parameters that can be used to control the value of i in for loops. They will then be able to use the variable i to control much more of their code by setting specific values.
Students will be able to:
In this lesson, students will learn how to use If Statements which will allow them to use conditions to determine how their code should run.
Students will be able to:
In this lesson, students will learn how to expand on If Statements by including a way to have Tracy make decisions between multiple scenarios.
Students will be able to:
In this lesson, students will learn that while loops allow code to be executed repeatedly based on a condition. They will also be warned that infinite loops are created if the exit condition of the while loop is never met, causing the code inside the while loop to repeat continuously which causes the program to crash.
Students will be able to:
In this lesson, students will put together all the concepts they’ve learned thus far. They will be able to use top down design and to write programs that will solve complex problems.
Students will be able to:
In this lesson, students review content with a 25 question End-of-Unit Quiz.
Students will be able to:
In this lesson, students will learn how to make the most basic python program- one that displays text on the screen. Students will learn how to print in python using the print statement. They will also learn how to use quotations, apostrophes, and strings.
Students will be able to:
In this lesson, students will be reintroduced to the concept of variables, which store information in a program to be used later. Students will also learn about three different variable types- strings, integers, and floating point numbers.
Students will be able to:
In this lesson, students revisit user input. They learn how to request user input as both strings and integers, learn where the input is stored, and learn how to convert strings and integers.
Students will be able to:
In this lesson, students will learn about using mathematical operators in their Python programs. They will work through multiple examples to get comfortable with operator precedence and using different types of operators.
Students will be able to:
In this lesson, students will be able to perform string operations in order to concatenate values together.
Students will be able to:
In this lesson, students revisit the concept of comments. Comments are helpful because they allow programmers to leave notes about the program they are writing.
Students will be able to:
In this lesson, students review content with a 20 question Unit Quiz.
Students will be able to:
In this lesson, students will revisit the concept of boolean values. Booleans refer to a value that is either true or false. Named after English-born mathematician, philosopher and logician, George Boole, Booleans are used to test whether a condition is true or false.
Students will be able to:
In this lesson, students will review how to use If and if/else statements. These statements allow programmers to use conditions to determine how their code should run.
Students will be able to:
In this lesson, students will dive into comparison operators. Comparison operators give the ability to compare two values. Using comparison operators in programming is similar to math in that less than <, greater than >, less than or equal to <=, and greater than or equal to >= are the same. The differences are that operators for equal to are == and not equal are !=. Using comparison operators allow programs to make decisions.
Students will be able to:
In this lesson, students will look at logical operators. Logical operators give the ability to connect or modify Boolean expressions. Three logical operators are NOT
(!), or
and and
. These logical operators can be used in combination. With these logical operators, logical statements can be constructed, such as “I go to sleep when I am tired OR it’s after 9pm”, “I wear flip flops when I am outside AND it is NOT raining”.
Students will be able to:
or
, and
, and NOT
(!) In this lesson, students learn about the intricacies of floating point numbers. When using comparison operators with floating point numbers in Python, we will sometimes see strange behavior because of bizarre rounding methods. When using a comparison operator with floating point numbers, you should use round(x)
to avoid strange rounding behavior. round(x, n)
will round the float x
to n
decimal places. round(x)
will round the float x
to 0 decimal places.
Students will be able to:
In this lesson, students review content with a 15 question Unit Quiz.
Students will be able to:
In this lesson, students learn to use while loops in their Python programs. While loops allow code to be executed repeatedly based on a condition. They are also reminded of the possibility of creating an infinite loop, which occurs if the exit condition of the while loop is never met, causing the code inside the while loop to repeat continuously.
Students will be able to:
In this lesson, students will explore how to use for loops in their Python programs. They will be reminded how to use i
as a variable in their programs as well as how to control the values of i
by altering the starting, ending, and interval values.
Students will be able to:
i
as a counteri
in a for loopIn this lesson, students learn about break and continue statements. A break
statement is used to immediately terminates a loop. A continue
statement is used to skip out of future commands inside a loop and return back to the top of the loop. These statements can be used with for or while loops.
Students will be able to:
In this lesson, students will use control structures within control structures, which are referred to as nested control structures.
Students will be able to:
In this lesson, students review content with a 15 question Unit Quiz.
Students will be able to:
In this lesson, we learn about Functions. Functions let us break our program into different parts that we can organize and reuse however we like. Functions are the main building block of complex Python programs.
Students will be able to:
In this lesson, we dive deeper into the concept of functions by exploring how to use parameters.
Students will be able to:
In this lesson, we explore where variables exist and what the difference is between a local and global variable.
Students will be able to:
In this lesson, students explore functions with return values and deepen their understanding of and ability to use functions.
Students will be able to:
In this lesson, students explore Python’s way of handling errors with exceptions.
Students will be able to:
In this lesson, students review content with a 15 question Unit Quiz.
Students will be able to:
Students will learn how indexing can be used to specify a specific character in a string based on location.
Students will be able to:
Students will learn how slicing allows them to select multiple string values at once from a given string.
Students will be able to:
In Python, strings have the property of “immutability” which means they cannot be mutated or changed. You can assign strings to variables, and reassign new strings to the same variable, but individual characters within a string cannot be reassigned.
Students will be able to:
In this lesson, students will look at the use of for loops with strings. Since both string indices and for loops index at zero, the len
value can be used to go through strings in a for loop. Indicies don’t need to be explicitly used. The syntax for character in my_string
can be used to go through a for loop one character at a time.
Students will be able to:
In this lesson, students will see how the in
keyword can be used in an if
statement to see if a particular letter or substring is in a string.
Students will be able to:
in
keyword to check if a character is in a stringIn this lesson, students will learn about string methods. Methods are basically functions that you call on objects and can be used to alter our strings in different ways.
Students will be able to:
In this lesson, students review content with a 20 question Unit Quiz.
Students will be able to:
In this lesson, students will learn about and practice using tuples. A tuple is a heterogenous, immutable data type that stores an ordered sequence of things that can be accessed using indices.
Students will be able to:
In this lesson, students will learn about their second data structure, lists. A list is a mutable, heterogeneous data type that stores an ordered sequence of things.
Students will be able to:
In this lesson, students will learn how lists can be iterated over in a similar way to strings.
Students will be able to:
Methods, in general, are like functions that can be called on objects. Students have seen previously how string methods are called on strings. In this lesson, students will learn about the various list methods that can be called on lists!
Students will be able to:
In this lesson, students review content with a 15 question Unit Quiz.
Students will be able to:
In this lesson, students will learn how 2d lists are stored and how to use indexing and slicing to extract specific items from a list of lists.
Students will be able to:
In this lesson, students will learn how to use list comprehensions to alter the items in a list with one line of code.
Students will be able to:
In this lesson, students will learn how packing and unpacking makes assigning variables to list items very easy and quick.
Students will be able to:
In this lesson, students will see how dictionaries differ from other data structures and why they are useful.
Students will be able to:
In this lesson, students will learn the difference between equivalence and identity of values.
Students will be able to:
In this lesson, students review content with a 15 question Unit Quiz.
Students will be able to:
This project is broken up into several pieces to guide students through the game development.
Students will be able to:
Student has completed the entirety of the Intro to Computer Science in Python course!
Encourage to continue learning about Python with the supplemental lessons and projects.
N/A
In this lesson, students review content with a final exam.
Students will be able to:
In this lesson, we will define what classes and objects are and learn how to break code down in this structure. They will learn how to use the init method to give attributes to objects.
SWBAT define class and object as well as create them inside their programs.
SWBAT create an init method to give attributes to objects.
In this lesson, we will begin defining and calling methods on objects.
SWBAT create methods inside class definitions and call them on objects.
In this lesson, we will learn how to override the built-in methods repr and eq in order to define how the object will create a string representation of itself and define equivalence for a specific class.
SWBAT override the repr method to define how the object will create a string representation of itself.
SWBAT override the eq method to define equivalence for this specific class.
In this lesson, students will learn about operator overloading and how mathematical methods can be redefined by overriding their method in the class definition.
SWBAT override mathematical operators to redefine the way mathematical functions are performed.
In this lesson, students will learn about the difference between class and instance variables and how they are located.
SWBAT describe the differences between class and instance variables.
In this lesson, students will learn how to use inheritance to make classes that are given attributes by other classes.
SWBAT use inheritance to create new classes that are given attributes by another class.
In this lesson, students will explore hidden attributes and why they are used. They will learn how to create getter and setter methods to retrieve and assign values of hidden attributes.
SWBAT assign hidden attributes in a program.
SWBAT retrieve and assign hidden values by writing and using getter and setter methods.
In this lesson, we explore how attributes are linked between objects and classes and the path they follow based on namespaces.
SWBAT describe the different namespaces with regards to classes and objects.
In this lesson, we explore different ways to import modules to be used in our programs.
SWBAT import and use modules in their programs.
Students review content with a 20 question Unit Quiz.
SWBAT complete Unit Quiz.
In this lesson, students review content with a midterm.
Students will be able to:
True or anything
evaluates to True
regardless of the second value, Python will read the statement as true without evaluating the second expression.False and anything
evaluates to False
regardless of the second value, Python will read the statement as false without evaluating the second expression.Students learn how to short circuit their program.
not (A or B)
is equivalent to the expression not A and not B
not (A and B)
is equivalent to the expression not A or not B
Students will be able to explain how we can negate expressions with and
and or
.
In this lesson, students will learn about abstraction. Abstraction is the act of managing complexity by dissociating information and details in order to focus on relevant concepts.
Students will be able to:
In this lesson, students will learn how to use the write
function to add text labels to their programs.
Students will be able to:
write
command to add text to their programsstr
keywordIn this lesson, students will begin working with Tkinter to develop graphics programs in Python. They will learn how to create, size, and color a canvas and add lines using the Tkinter coordinate system.
Students will be able to:
Students will learn about functions and parameters, and take an in-depth look at a function that prints text to the screen. They will write an equation to calculate area of a triangle and use a function to print the area value to the screen.
SWBAT use functions, parameters, and variables to calculate area of a triangle and print the area to the screen.
Students will learn about if/else statements and conditions in order to categorize triangles into one of 4 categories- Acute, Obtuse, Right, and Equilateral. They will also learn how to write and use comparison and logical operators in Python programs.
SWBAT use comparison and logical operators to write if/else statements that correctly categorize triangles.
Students will learn more about variables and will use algebra to rearrange equations to solve for unknown values. They will also learn to use the ‘round’ and ‘sqrt’ functions.
SWBAT write a more reusable program that will check for triangle type with any given base value.
In this lesson, students will begin working with Brython to develop graphics programs in Python. They will learn how to create, size, and color a canvas and add lines using the Brython coordinate system.
Students will be able to:
In this lesson, students will discuss how computing is used. They will also set goals for this course and beyond.
Students will be able to:
In this lesson, students are introduced to Karel the Dog and how Karel can be given a set of instructions to perform a simple task.
Students will be able to:
move()
, put_ball()
, take_ball()
and turn_left()
.In this lesson, students build on their understanding of how Karel the Dog can be given a set of instructions to perform a simple task.
Students will be able to:
In this lesson, students will learn how to define and call a function using proper syntax.
Students will be able to:
In this lesson, functions will be used to teach Karel a new word or command. Using functions allows programs to be broken down into smaller pieces and makes it easier to understand.
Students will be able to:
In this lesson, students learn top down design and decomposition as the processes of breaking big problems into smaller, manageable pieces. The functions improve the readability of the code and avoid repeated code.
Students will be able to:
In this lesson, students will learn how to utilize comments in their code to explain what their code is doing. Comments should include preconditions and postconditions. Preconditions are assumptions we make about what is true before a function is called in our program. Postconditions are what should be true after a function is called in our program.
Students will be able to:
In this lesson, students will learn about abstraction. Abstraction is the act of managing complexity by dissociating information and details in order to focus on relevant concepts.
Students will be able to:
In this lesson, students will be introduced to SuperKarel and APIs. SuperKarel includes commands like turn_right()
and turn_around()
since they are so commonly used. These commands come prepackaged with the SuperKarel library (API).
Students will be able to:
In this lesson, students learn how to use for loops in their programs. The for loop allows you to repeat a specific part of code a fixed number of times.
A for loops is written as follows:
for i in range(4):
# Code to be repeated 4 times
Students will be able to:
In this lesson, students will learn about conditions and if statements. A condition is a function that returns a true/false answer. Python uses if statements as a way to make decisions and execute specific code. If statements are helpful in writing code that can be used in different situations.
Students will be able to:
In this lesson, students will take a deeper look into conditional statements, more specifically if/else statements. If/else statements allow for one thing to be done if a condition is true, and something else otherwise.
We write if/else statements like this:
if front_is_clear():
# code to execute if front is clear
elif balls_present():
# code to execute otherwise
Students will be able to:
In this lesson, students are introduced to a new type of loop: while loops. While loops allow Karel to repeat code while a certain condition is true. While loops allow for the creation of general solutions to problems that will work on multiple Karel worlds, rather than just one.
Students will be able to:
In this lesson, students take a look at all of the control structures. Control structures can be selective, like if and if / else statements and are based on a condition. Other control structures are iterative and allow for repeated code like for loops and while loops. Basically, control structures control the way the commands execute.
Students will be able to:
Debugging is a very important part of programming. In this lesson, students learn how to effectively debug their programs.
Students will be able to use debugging strategies to find and fix errors in their code.
In this lesson, students are introduced to algorithms which are step by step instructions that solve a problem. Programs implement algorithms. All algorithms are built using sequencing, selection, and iteration. Karel has control structures for each of these. This lesson is designed to test students’ knowledge of control structures and algorithm design in preparation for upcoming Karel challenges.
Students will be able to:
In this lesson, students are introduced to Ultra Karel! Ultra Karel has all the abilities of Super Karel, plus two new functions (paint
and color_is
) added to the API.
Students will explore the Ultra Karel API and use Ultra Karel’s ability to paint the grid world to create digital images. Students will create generalized algorithms that solve Ultra Karel problems for multiple worlds.
This lesson is the first time students will use functions that accept parameters as inputs.
Students will be able to:
In this lesson, students will synthesize all of the skills and concepts learned in the Karel unit to solve increasingly challenging Karel puzzles.
Students will be able to:
In this lesson, students complete a summative assessment of the unit’s learning objectives.
Students will be able to:
Sign up for a free teacher account to get access to curriculum, teacher tools and teacher resources.
Teacher SignupSign up as a student if you are in a school and have a class code given to you by your teacher.
Student Signup