Activity 01
Pair Programming: Score Analyser
Pairs create a Python list of student test scores. They write code to calculate the average, find the highest score using max(), and print results. Extend by adding user input to append new scores.
How do arrays allow us to handle large volumes of data more efficiently than individual variables?
Facilitation TipDuring Pair Programming: Score Analyser, circulate and listen for students explaining why they chose lists over separate variables for scores.
What to look forPresent students with a small Python code snippet that uses a list. Ask them to predict the output and explain how the index is used to access a specific element. For example: `scores = [85, 92, 78]; print(scores[1])`.
ApplyAnalyzeEvaluateCreateSelf-ManagementRelationship SkillsDecision-Making
Generate Complete Lesson→· · ·
Activity 02
Small Groups: Shopping List Sorter
Groups build a list of grocery items with prices. They sort the list alphabetically and by price using sort(), then remove duplicates. Share and test code on shared screens.
Design a program that uses an array to store and process a list of items.
Facilitation TipDuring Small Groups: Shopping List Sorter, give each group a mix of item types to ensure they practice handling strings, numbers, and mixed data.
What to look forOn a slip of paper, ask students to write down one advantage of using a list over individual variables for storing student names in a class. Then, have them write one line of Python code to add a new student's name to an existing list called `student_names`.
ApplyAnalyzeEvaluateCreateSelf-ManagementRelationship SkillsDecision-Making
Generate Complete Lesson→· · ·
Activity 03
Whole Class: Index Hunt Challenge
Display a large list on the board. Class calls out indices for specific items, then codes a loop to print every second item. Discuss indexing starting at zero.
Compare the advantages of using arrays over individual variables for related data.
Facilitation TipDuring Whole Class: Index Hunt Challenge, use a large poster of a list so all students can physically point to indices during the hunt.
What to look forFacilitate a class discussion: 'Imagine you are building a program to manage a library's book collection. What are the benefits of using a list to store book titles compared to having a separate variable for each book?'
ApplyAnalyzeEvaluateCreateSelf-ManagementRelationship SkillsDecision-Making
Generate Complete Lesson→· · ·
Activity 04
Individual: List Debugger
Provide buggy code with common list errors like off-by-one indexing. Students fix and run it, logging changes. Review fixes as a class.
How do arrays allow us to handle large volumes of data more efficiently than individual variables?
Facilitation TipDuring Individual: List Debugger, collect work samples to identify patterns in common errors like off-by-one indexing.
What to look forPresent students with a small Python code snippet that uses a list. Ask them to predict the output and explain how the index is used to access a specific element. For example: `scores = [85, 92, 78]; print(scores[1])`.
ApplyAnalyzeEvaluateCreateSelf-ManagementRelationship SkillsDecision-Making
Generate Complete Lesson→A few notes on teaching this unit
Teach arrays and lists by starting with physical representations before moving to code. Use index cards for lists so students can shuffle and resize them. Emphasize the zero-based index early and often, because this is where most misconceptions take root. Avoid rushing to advanced methods like slicing before students can confidently read and write single elements. Research shows that tactile activities and collaborative debugging build stronger mental models than lectures alone.
Successful learning shows when students confidently use zero-based indexing, explain why lists resize dynamically, and choose lists over individual variables for efficiency. They should also debug code that mixes data types and justify their design choices during discussions.
Watch Out for These Misconceptions
During Whole Class: Index Hunt Challenge, watch for students counting positions from 1 instead of 0 when pointing to items on the poster.
Pause the hunt after the first round and ask students to recount the positions aloud, emphasizing that the first item is always position 0. Have them label the poster with 0, 1, 2 to reinforce the pattern.
During Small Groups: Shopping List Sorter, listen for groups assuming the list size cannot change after creation.
Ask each group to add an item using append() and then remove an item using remove(), then observe how the list size updates. Have them print the list length before and after to see the change.
During Pair Programming: Score Analyser, notice if students try to store scores in separate variables instead of a single list.
Redirect by asking how they would find the highest score if they had 50 scores. When they realize separate variables won’t work, guide them to create a list and use max().
Methods used in this brief