Terminal window showing the RescueBot welcome banner in ASCII art, three scenarios imported, and the judge, run, audit and quit menu.

RescueBot.

  • Programming and Software Development
  • Java
  • Object-oriented design
  • Algorithm ethics

A Java command-line program built on the trolley dilemma. After a disaster, RescueBot must choose which group of people and animals to save, and the user's choices are audited against those of a built-in decision algorithm.

Highlights

Terminal output of a flood scenario with two locations, their trespassing status and characters, and the prompt asking where to deploy RescueBot.

Design.

Humans and animals extend a shared Character class and are grouped into locations within each scenario. Scenarios are read from a CSV file or generated at random, with custom exceptions for bad rows, field values and number formats, and command-line flags for the scenario file, the log file and help.

Terminal statistics after three scenarios, listing the share saved for each characteristic from cat and child down to criminal and pregnant, and the average age.

Decisions.

In judge mode the user chooses where to send the robot in each scenario. In run mode the algorithm decides, always picking the location with the most humans. Each session reports the share of every characteristic that was saved, and an audit compares the user's choices with the algorithm's from the saved log.

Terminal audit comparing the share of each characteristic saved by the algorithm and by the user over the same three scenarios, side by side.

Ethics.

Saving the most humans means the algorithm always matches or beats the user on human survival. But it ignores age, health, occupation and whether people were trespassing, and it leaves smaller groups to bear the harm. The reflection argues that a fairer algorithm must weigh more than a headcount.