« Middle School Courses
This course is included with our Coding/STEAM Curriculum - Middle School Plan

Lesson Plan

Lesson: For Loops

Time: 40+ mins

Introduction

In this lesson, students will use for loops to repeat instructions and iterate over lists.

Vocabulary

  • For loop: A loop that automatically creates and updates the iterator variable. A for loop will iterate through each element in a list or each value in the object that is passed to it. The variable name entered after the "for" in the for loop will be the name of the element that is pulled from the list defined after the "in" part of the loop. The iterator variable is an element of the list rather than an index like with while loops. The “for” loop can be used to iterate on strings as well as lists. The “for” loop in Python has the following syntax:

    Here is the syntax for iterating lists:

    For example,

  • Palidrome: A word that is spelled the same forward and back.
  • Nested Loop: A loop that is contained within another loop.

Objectives

Students will...
  • Identify differences between “while” loops and “for” loops
  • Use “for” loops to iterate through lists and manipulate each element
  • Count the number of shared letters in two strings and reverse strings
  • Iterate over a range of numbers and on indexes
  • Create programs to count calendar days depending on the year
  • Use nested loops for drawing shapes and images

Materials

  • Computers (1 per student) with student account access to Tynker.com

Warm-Up (5 minutes)

  • It’s important for any successful programmer to develop strong perseverance skills. As a class, discuss some strategies (e.g., brainstorming with a neighbor, taking a short 1 minute break to look away from the screen, re-reading documents, breaking down problems into smaller components) that your students can use as motivation to keep working through a problem or situation despite obstacles and unexpected outcomes.
  • What are some perseverance skills your students have applied so far in the Python 201 course?

Activities (35 minutes)

Facilitate as students complete the For Loops modules on their own:
1. For Loops (Tutorial)
    • Students will read a short document that explains “for” loops.
    • Optional: Encourage students to experiment with the code in the examples. How did their changes affect the output?
    • Are students struggling with their syntax for the “Try it yourself” puzzle? Direct their attention to the “for loop syntax” section.
    • Tell students to click the “Next” button (located at the bottom of the document) to move on to the next module.
2. Iteration Variable (Tutorial)
    • In this module, students will read a short document that explains the iteration variable.
    • Are students struggling with the “Add 1 to every value” puzzle? Give a hint: Tell students to include a “for” loop and one “in” operator as part of their solution.
3. Iterating on Strings (Tutorial)
    • In this module, students will read a short document that explains how to use a “for” loop to iterate on strings as well as lists.
    • Are students struggling with the “Reverse the name” puzzle? Give a hint: Tell students to use code from the “Reversing a string” example as a reference.
    • Are students struggling with the “Palindrome” puzzle? Give a hint: Tell students to include an “else” statements as part of their solution.
4. Number of Iterations (Tutorial)
    • In this module, students will read a short document that explains how the number of elements in a list determines how many iterations there will be in a “for” loop.
    • Are students struggling with the “Color the polygon” puzzle? Give a hint: Tell students to include the following as part of their solution:
      t.left(360 / len(colors))
    • Optional: Challenge the adventurous coder to create at least three different polygons.
5. Range Function (Tutorial)
    • In this module, students will read a short document that explains the range function, which produces a list containing a sequence of numbers starting at 0 and ending before a given number. For example, “range(10)” will result in a sequence of numbers starting at 0 and ending at 9.
    • Students will need to apply knowledge of math concepts (e.g., squared numbers and factorials) to solve three puzzles in this module. If students are struggling, encourage them to brainstorm possible solutions with a neighbor.
6. Iterating on Indexes (DIY)
    • In this module, students will read a short document that expands on iterating concepts learned in the previous lesson. Additionally, students will complete a DIY project where they will use nested “for” loops to draw their own spiral pattern with a Turtle object.
    • Are students struggling with the “Space the quote” puzzle? Give a hint: Help students get started by providing a line or two of code. For example,
      newQuote = ""
      for letter in range(len(quote)):
    • Remind students to click the “submit project” button when they are done with their DIY projects—that way, you can check out their fabulous creations!
7. Calendar (Tutorial)
    • In this module, students will read a short document that explains how to apply “for” loops to situations involving calendars.
    • Optional: Encourage students to experiment with the code in the provided examples. How did their changes affect the output?
    • Are students struggling with the “Counting days” puzzle? Give a hint: Tell students to use the code from the example as a reference.
8. Printing Shapes (Tutorial)
    • In this module, students will use a nested “for” loop to print various shapes!
    • Check that students are exploring the “Try This” activity, which encourages students to change the size of the rectangle.
    • Are students struggling with the puzzles? Give a hint: Tell them to use a nested “for” loop and to use code from the example as a reference.
9. Quiz
    • This quiz requires students to apply concepts from this lesson to solve 3 different puzzles. There are no multiple choice questions.

Discussion Questions/Follow-Up Activities (20 minutes)

Lead a discussion with your students:
    • Ask students to briefly talk with a neighbor and discuss one thing they learned in today’s lesson.
    • What did they enjoy most about today’s lesson?
    • What did they or someone they know struggle with?
    • Did they enjoy revisiting the turtle tool in some of today’s lessons? Why or why not? What are some of the polygons they created?

US Standards

  • CCSS-ELA: SL.8.1, RI.9-10.3, RI.9-10.6, RI.11-12.3, RI.11-12.6, L.9-10.3, L.9-10.6, L.11-12.3, L.11-12.6
  • CCSS-Math: HSN.Q.A.1, HSN.Q.A.2, HSN.Q.A.3, MP.1, MP.2, MP.4
  • CSTA: 2-AP-11, 2-AP-12, 2-AP-13, 2-AP-15, 2-AP-17, 3A-AP-14, 3A-AP-17, 3B-AP-11, 3B-AP-12
  • CS CA: 6-8.AP.11, 6-8.AP.12, 6-8.AP.13, 6-8.AP.15, 6-8.AP.17, 9-12.AP.12, 9-12.AP.14, 9-12.AP.16
  • ISTE: 1.c, 1.d, 4.d, 5.c, 5.d
This course is not part of your plan. Please upgrade to view all answer keys

Class Presentations

These student-facing slide presentations help educators seamlessly run Tynker lessons in a virtual or physical classroom setting. Each lesson has its own set of slides that introduce the big ideas, suggest unplugged activities, and include a section for each activity module. While running lesson slides, you can switch back and forth between the activity, the slides, answer keys and other lesson materials.
A sample slide presentation is available for your review. Please log in to view all the class presentations available with your plan..
Lesson 1
Welcome to Python
32 Slides
Lesson 2
Variables and I/O
29 Slides
Lesson 3
Data Types
29 Slides
Lesson 4
Math Operators
32 Slides
Lesson 5
Boolean Logic
35 Slides
Lesson 6
Turtle Graphics
31 Slides
Lesson 7
Branching
27 Slides
Lesson 8
While Loops
27 Slides
Lesson 9
Strings
32 Slides
Lesson 10
Lists
28 Slides
Lesson 11
For Loops
24 Slides
Lesson 12
Functions
28 Slides
Lesson 13
Dictionaries
20 Slides
Lesson 14
Classes and Objects
24 Slides
Lesson 15
Recursion
20 Slides