Course Level
CS1
CS0
Knowledge Unit
Algorithms and Design
Collection Item Type
Other Material Type
Synopsis

The Reuniting Families "unplugged" assignment is designed as a first day CS 1/CS 0 activity to both highlight the social relevance of computing and model what it really means to "do" computer science.

For this activity, the class is asked to consider a disaster, such as an earthquake, devastating a smallish city. Regardless of the specifics of the disaster, the local uncovered soccer stadium is left intact and aid workers have directed all survivors to congregate at this single undamaged stadium. Assume that the stadium is sufficient to hold all the survivors. After all the survivors of a nuclear family have been identified, that family can leave the stadium to their waiting Red Cross tent. Students, working in groups of three or four, devise a protocol, i.e. an algorithm, for the aid workers to use to reunite the survivors of each nuclear family unit.

Recommendations

For the algorithm/code review, motivate students to find logic, efficiency, or scalability flaws by rewarding valuable criticisms with prizes (candy, chocolate, etc). 

Once all the algorithms have been presented, ask students to order them by time efficiency.

A commonly proposed solution is to divide the stadium seating into 676 sections (26^2 - first two letters of one's surname). The assumption is each group is now small enough that families will be able to visually locate each other within their section. With 80,000 people, this translates to about 120 people per section. This translates to 4 rows of 30 seats. Students rarely consider the complexity of subdividing the stadium, the bedlam of helping survivors to their correct section, and the probably worse bedlam (and noise) within each section as the 120 survivors of each section attempt to see/hear/meet/identify each other across and down rows, to say nothing that name distribution is not uniform across the alphabet.

Engagement Highlights

The primary engagement practice that this exercise employs is "Make It Matter." The task, by definition, is for student teams to develop an algorithm to assist during a humanitarian crisis. Students work collaboratively to solve the problem which illustrates an area of computing research, effective help in natural disasters.

Additionally, students are also exposed to many key computing concepts.

  •     Computing/algorithm design is done in a group setting. This bursts the basement solo programmer myth.
  •     Algorithm efficiency is critical in real-world problems.
  •     Communication skills (both written and oral) are vital.
     

Materials and Links

Computer Science Details

Programming Language
Pseudocode
None

Material Format and Licensing Information

Creative Commons License
CC BY-NC