Active Learning is a term that is almost used generically when we discuss educational interventions. McConnell (1996) defined active learning in the computer science classroom as approaches that “…get students involved in activity in the classroom rather than passively listening to a lecture. Kramer and Nicoletti (2023) note in an article discussing the positive impacts of an active learning approach in the mathematics classroom that it also allows students to “work together to solve problems and explain ideas to each other. Active learning is about understanding the “why” behind a subject versus merely trying to memorize it… [However] a vexing challenge in calculus instruction – and across the STEM disciplines – is broad adoption of active learning strategies that work.”
Linked Lists (“Scavenger Hunt”). Students participate in a “scavenger hunt” around the lab. Students begin with a paper note with a location written on one side and a clue written on the other side. The location represents the contents of the linked list node, and the clue represents the pointer, which gives a hint to where the next note is located. The last note contains the clue “NULL” to specify that it is the end of the list. Afterward, students hold the paper notes and physically simulate different linked list operations, such as inserting a node into the middle of a list and deleting nodes in different positions. The peer mentor then draws out an ArrayList. The participants compare and contrast both list data structures in a wrap-up discussion.
Stacks and Queues (“Serving Pancakes”). The peer mentor begins with a review of terms. Then the class simulates a queue by lining up to be served from a stack of paper “pancakes.” Students are then divided into small groups to discuss and write pseudocode for how objects (student and pancake) would use stack or queue data structures. Additional prompts are presented, such as how to get to the pancake at the bottom of a stack. A discussion compares stacks and queues with other data structures (e.g., arrays and lists).
Recursion (“Russian Dolls”).The peer mentor reviews a math factorial example before moving into an analogy of nested Russian dolls. Students are asked how the total number of dolls could be counted, or how to determine if a doll of a certain color exists within the set. In small groups, students write pseudocode for recursive methods; the peer mentor circulates to answer questions before groups explain their pseudocodes.
Binary Trees (“Storytelling”).The peer mentor explains binary trees and the different ways they can be created, then introduces a storytelling activity. Participants tell a chronological story by numbering sentences, each depicting a story event, and placing them in a binary tree structure; the root node is the “present,” the left node is the “past,” and the right node is the “future.” The activity first creates a balanced binary tree, before participants create an unbalanced binary tree where are there no left nodes, so they can address insertion and traversal.
Program Design (“Let’s Build a Museum”). The aim is to demonstrate how one program can be designed in several different ways using a museum curation analogy. Participants sort through a list of items that may be exhibited in a museum and group them via appropriate exhibits: Individual display pieces are variables; exhibits represent classes; and sub-exhibits (such as “airplanes” within “transportation”) represent inheritance or interfaces. Students work as a whole class, then in smaller groups, and then the peer mentor facilitates a wrap-up discussion.
Mergesort (“Automotive Sorting”). Participants work with a simulation involving numbered toy cars that can change lanes on a multi-lane highway. The peer mentor demonstrates how lane changes can represent the splits and merges in the mergesort algorithm before each student takes control of a car, and the class works together to order the cars on the highway. The class then practices with pseudocode to examine the recursive nature of the algorithm before discussing common mistakes and debugging strategies.
Leave a Reply