Skip to content
Computer Science · Grade 11

Active learning ideas

Data Structures: Arrays and Lists

Active learning works well for arrays and lists because students often struggle to visualize abstract memory concepts without concrete, hands-on experiences. These data structures become more meaningful when students physically arrange items, test operations, and compare performance in real time rather than just reading about them.

Ontario Curriculum ExpectationsCS.HS.A.3CS.HS.A.4
20–40 minPairs → Whole Class4 activities

Activity 01

Stations Rotation25 min · Small Groups

Unplugged: Physical Array Builder

Provide students with 10 index cards numbered 0-9 and data slips. Instruct them to build an array by placing slips in order, access specific indices, and attempt insertions by shifting cards manually. Conclude with a full-array overflow discussion.

Compare the characteristics and use cases of arrays versus dynamic lists.

Facilitation TipDuring the Physical Array Builder activity, circulate and ask each pair to explain why they placed their cards in a specific order and how zero-based indexing affects their labels.

What to look forPresent students with a scenario: 'You need to store 100 user IDs that will not change.' Ask them to write down whether an array or a dynamic list would be more appropriate and provide one reason for their choice.

RememberUnderstandApplyAnalyzeSelf-ManagementRelationship Skills
Generate Complete Lesson

Activity 02

Stations Rotation35 min · Pairs

Pair Coding: List Manipulator

Pairs write a Python program using lists to add, remove, and search playlist items. Start with empty list, append songs, insert at indices, and delete by value. Have them print states after each operation to observe changes.

Explain how data is stored and accessed in an array.

Facilitation TipFor the List Manipulator pair coding task, require students to write pseudocode before coding to reinforce algorithmic thinking and reduce trial-and-error coding.

What to look forOn an index card, ask students to write: 1) One advantage of using an array. 2) One advantage of using a dynamic list. 3) A scenario where a dynamic list is clearly better than an array.

RememberUnderstandApplyAnalyzeSelf-ManagementRelationship Skills
Generate Complete Lesson

Activity 03

Stations Rotation40 min · Small Groups

Comparison Challenge: Timed Operations

Whole class tests array vs list performance: populate 100 elements, time accesses and insertions. Use stopwatches or code timers. Groups chart results and debate use cases based on data.

Construct a simple program that manipulates data using an array or list.

Facilitation TipIn the Timed Operations challenge, have students record exact times and compare them in a shared class table to highlight the O(n) vs O(1) differences visually.

What to look forFacilitate a class discussion: 'Imagine you are building a music player app. What data structure would you use to store the playlist? Explain why, considering how users add, remove, and reorder songs.'

RememberUnderstandApplyAnalyzeSelf-ManagementRelationship Skills
Generate Complete Lesson

Activity 04

Stations Rotation20 min · Individual

Visualization: Online Array Tool

Individuals use an online array visualizer to input data, step through sorts, and resize lists. Record screenshots of index errors and resizing. Share findings in a quick class gallery walk.

Compare the characteristics and use cases of arrays versus dynamic lists.

Facilitation TipWith the Online Array Tool, provide a guided worksheet that prompts students to draw memory diagrams and explain why logical and physical order may differ.

What to look forPresent students with a scenario: 'You need to store 100 user IDs that will not change.' Ask them to write down whether an array or a dynamic list would be more appropriate and provide one reason for their choice.

RememberUnderstandApplyAnalyzeSelf-ManagementRelationship Skills
Generate Complete Lesson

A few notes on teaching this unit

Teach arrays and lists by starting with unplugged activities to build intuition, then transition to coding and real-world comparisons. Avoid overwhelming students with big-O notation early; instead, let them experience performance differences firsthand. Research shows that students grasp these concepts better when they manipulate physical objects before abstracting to code, and when they articulate their reasoning aloud.

Successful learning looks like students confidently explaining when to use arrays versus lists, justifying their choices with memory and time efficiency. They should also demonstrate accurate indexing, proper bounds checking, and an understanding of trade-offs between fixed and dynamic structures.


Watch Out for These Misconceptions

  • During the Physical Array Builder activity, watch for students numbering cards starting at 1 instead of 0. Correct this immediately by asking them to recount from zero while emphasizing that memory addresses work this way for efficiency.

    After the List Manipulator task, if students assume list operations are always faster, redirect them to their recorded times. Ask them to identify when inserts took longer and guide them to connect this to O(n) complexity.

  • During the Timed Operations challenge, watch for students assuming lists are always better due to flexibility. Correct this by having them analyze their timing data side by side to see where lists slow down.

    During the Online Array Tool visualization, if students think data is stored sequentially in memory by default, use the memory diagram feature to show how Python or Java might allocate space differently than the logical order.


Methods used in this brief