Skip to content
Technologies · Year 9

Active learning ideas

Data Structures: Lists and Arrays

Hands-on work with lists and arrays helps students move beyond abstract definitions to concrete understanding. Physical simulations and real-time code tracing make memory structures visible, turning ‘indexing’ from a rule to an intuition.

ACARA Content DescriptionsAC9DT10K01
30–45 minPairs → Whole Class4 activities

Activity 01

Stations Rotation35 min · Pairs

Pair Programming: Inventory Manager

Pairs create a list to store shop items and prices. They code functions to add new items, remove sold ones, and display totals using loops. Pairs test with classmate inputs and swap code to debug indexing errors.

Analyze how the choice of data structure impacts algorithm efficiency.

Facilitation TipDuring Pair Programming: Inventory Manager, circulate and listen for students debating whether to insert or append based on whether the item is new or restocked.

What to look forPresent students with a short code snippet that uses a list to store student names. Ask them to identify the index of a specific student and write the code to add a new student to the end of the list.

RememberUnderstandApplyAnalyzeSelf-ManagementRelationship Skills
Generate Complete Lesson

Activity 02

Stations Rotation45 min · Small Groups

Small Groups: Efficiency Comparison Challenge

Groups simulate lists and arrays with card stacks: one fixed size, one expandable. They time adding or accessing 20 items, then code versions in a simple editor to compare run times. Discuss results and predict for larger datasets.

Compare the advantages and disadvantages of lists versus single variables for storing related data.

Facilitation TipFor Small Groups: Efficiency Comparison Challenge, provide identical data sets on paper strips so groups can literally time each other’s ‘remove first element’ steps.

What to look forPose the scenario: 'Imagine you are building a program to track the daily temperature for a week. Would you use seven separate variables or a single list? Explain your reasoning, considering ease of use and potential for future expansion.'

RememberUnderstandApplyAnalyzeSelf-ManagementRelationship Skills
Generate Complete Lesson

Activity 03

Stations Rotation40 min · Whole Class

Whole Class: High Score Board Builder

Project a starter code with a list for game scores. Class suggests append, sort, and slice operations step-by-step, coding live. Vote on modifications and observe output changes to explore collection management.

Construct a program that manages a collection of items using a list.

Facilitation TipIn Whole Class: High Score Board Builder, invite pairs to justify their choice of list versus array when the class size fluctuates mid-semester.

What to look forStudents write down one advantage of using a list compared to individual variables and one common operation they can perform on a list (e.g., add, remove, access).

RememberUnderstandApplyAnalyzeSelf-ManagementRelationship Skills
Generate Complete Lesson

Activity 04

Stations Rotation30 min · Individual

Individual: Personalized Playlist Organizer

Students build a list-based program for music tracks, including insert, delete, and search functions. They input their favorites, test edge cases like empty lists, and reflect on why lists beat variables.

Analyze how the choice of data structure impacts algorithm efficiency.

Facilitation TipFor Individual: Personalized Playlist Organizer, ask students to print their final playlist length and justify why a list was preferable to seven variables.

What to look forPresent students with a short code snippet that uses a list to store student names. Ask them to identify the index of a specific student and write the code to add a new student to the end of the list.

RememberUnderstandApplyAnalyzeSelf-ManagementRelationship Skills
Generate Complete Lesson

A few notes on teaching this unit

Start with physical manipulatives—index cards labeled 0, 1, 2—to establish zero-based indexing before touching keyboards. Avoid teaching array syntax first; let the frustration of fixed-size errors motivate the need for lists. Research shows that students grasp performance concepts more deeply when they feel the slowdown themselves, so time trials are essential.

Students will confidently choose between lists and arrays, correctly use zero-based indexing, and explain why dynamic resizing or fixed capacity matters in everyday programs. Their code will compile without off-by-one errors and complete operations efficiently.


Watch Out for These Misconceptions

  • During Small Groups: Efficiency Comparison Challenge, watch for students assuming ‘append’ always takes the same time regardless of list size.

    Have groups time three appends on a list that already contains 100 items and again on a list with 10,000 items, then present their average times to the class.

  • During Pair Programming: Inventory Manager, watch for students treating lists and arrays as interchangeable.

    Ask each pair to deliberately trigger an IndexError by trying to add to a full array, then discuss why a list would avoid this problem.

  • During Whole Class: High Score Board Builder, watch for students counting positions starting at 1.

    Circulate with a marker and relabel the first cell on the whiteboard as index 0, then have the class re-write the high score insertion code accordingly.


Methods used in this brief