Unit 1

Section 1 (Getting Started)

  • Understand the function of the commands “go”, “left”, “right”, “get”, “put” by pressing buttons
  • Read task descriptions and understand game objectives
  • Plan ahead before implementing a solution
  • Practice logic while solving puzzles

Section 2 (Typing Code)

  • Type basic commands
  • Understand basic syntax rules:
    • Type one command per line
    • All commands must start at the beginning of the line
  • Syntax similarity to Python
  • Understand error messages
  • Multiple programs can solve a given task

Section 3 (Counting Loop I)

  • Keyword “repeat”
  • Repeat one command
  • Body of the loop, indentation
  • Identify the number of repetitions
  • Repeat multiple commands

Section 4 (Counting Loop II)

  • Identify repeating patterns that include sequences of commands
  • Use additional operations before the repeat loop
  • Use additional operations after a repeat loop
  • Use additional operations before and after a repeat loop
  • Use multiple consecutive repeat loops

Section 5 (Counting Loop III)

  • Identify repeating patterns that combine sequences of commands with multiple repeat loops
  • Use nested loops

Unit 2

Section 6 (Conditions I)

  • The if-statement, indentation
  • Combine if-statement and repeat loops in simple settings

Section 7 (Conditions II)

  • Combine if-statement and repeat loops in complex settings
  • Detect various obstacles, collectible objects and containers
  • Check if robot faces North
  • Keyword “else”
  • Keyword “not”
  • Keyword “pass”

Section 8 (Conditions III)

  • Combine multiple conditions
  • Combine conditions and nested loops
  • Sensor “empty”
  • Keywords “and” and “or”

Section 9 (Conditional Loop I)

  • Keyword “while”
  • Body of the loop, indentation
  • Use keyword “not” in while loops
  • Use conditions in while loops
  • Use additional commands before and after the while loop
  • Use multiple sequential while loops

Section 10 (Conditional Loop II)

  • Solve complex tasks that combine while loops, repeat loop and conditions
  • First maze algorithm (follow a path that only leads straight, turns left or turns right)
  • Solve simple tasks using the First maze algorithm

Unit 3

Section 11 (Custom Commands I)

  • Keyword “def”
  • Keyword “return”
  • Defining and using custom commands
  • Reuse existing custom commands to solve new tasks
  • Use multiple custom commands to solve a task

Section 12 (Custom Commands II)

  • Solve complex tasks by splitting them into simpler ones
  • Reuse existing custom commands to solve new tasks
  • Second maze algorithm (follow an arbitrary wall that is on your right)
  • Follow an arbitrary wall that is on your left
  • Solve simple tasks using the Second maze algorithm

Section 13 (Custom Commands III)

  • Solve complex problems that require the Second maze algorithm
  • Number of operations and program efficiency
  • Shorter program is not necessarily more efficient
  • Reuse existing custom commands to solve new tasks
  • Simplify a problem and solve it, then return to the original complex task

Section 14 (Variables)

  • Understand the role of variables
  • Various ways to initialize a new variable
  • Keywords “inc”, “dec”
  • Display values of variables using “print”
  • Use variables to count objects
  • Use variables to count other features in the maze

Section 15 (Functions)

  • Returning values
  • Measure the dimensions of objects
  • Understand the difference between global and local variables
  • Importance of using local variables

Unit 4

Section 16 (Comparison Symbols)

  • GPS device: keywords “gpsx”, “gpsy”
  • Using symbols ==, !=, <, > in conditions and while loops
  • Combining comparison symbols with keywords “and”, “or”

Section 17 (Boolean Values “True”, “False”)

  • Keywords “True” and “False”
  • Understand that sensors are functions that return either True or False
  • Use functions that return True or False
  • Combine True and False values with keywords “and”, “or”

Section 18 (Random Numbers)

  • Keyword “randint”
  • Model rolling one die
  • Model rolling two dice
  • Create random objects
  • Calculate minimum of a sequence of numbers
  • Calculate maximum of a sequence of numbers
  • Break complex tasks into simpler ones

 Section 19 (Lists I)

  • Create empty and non-empty lists
  • Append items to a list
  • Display lists
  • Use a list to store horizontal and vertical positions of objects in the maze
  • Store full GPS positions as [gpsx, gpsy] pairs
  • Keyword “for”
  • Use the “for” loop to parse lists
  • Check if an item is present in a list
  • Measure length of lists using the keyword “len”
  • Use a list to store the robot’s path in the maze

Section 20 (Lists II)

  • Keyword “pop”
  • Remove items from the end, beginning, and arbitrary position in a list
  • Use lists that contain Boolean values
  • Merge lists

Unit 5

Section 21 (Probability)

  • Keyword “rand” that returns randomly True or False
  • Use keyword “rand” to model coin toss
  • Understand that equal probability leads to a similar number of events
  • Understand that lower probability leads to a smaller number of events
  • Understand that higher probability leads to a larger number of events
  • Understand that the First and Second maze algorithm will not solve all mazes
  • Use coin toss for random walks in the maze
  • Solve mazes which cannot be solved using the First and Second Maze algorithms
  • Simulate the Binomial Distribution

Section 22 (Recursion I)

  • Understand what recursion is and when it should be used
  • Understand the importance of stopping condition
  • Always make the recursive call in a stopping condition
  • Typical mistakes in recursive algorithms
  • Solve problems using recursion
  • Use multiple recursive commands to solve a task

Section 23 (Recursion II)

  • Advanced applications of recursion
  • Combine recursive algorithms together
  • Use recursion to add a sequence of numbers
  • Use recursion to add lists
  • Use recursion to collect objects

 Section 24 (Advanced Applications)

  • Solve a task that requires three times nested loops
  • Collect objects in a complex maze, save their GPS positions
  • Find holes in a fence, and save their GPS coordinates
  • Recognize a number that is made from multiple maze objects
  • Save your path to a list, use the list to reproduce your path