Trapezoid

CS

This course explores computer science concepts through many projects. It starts with a website project in which each student develops a personal website. Some students, like me, later made independent projects for the class that draw from a CS topic of their choice. At the end of the year, students create mobile apps that benefit the public. These projects are interspersed with various CS problem sets and activities that help build skills and computational thinking.

MAMS Sports

You have been given an exclusive preview into a million-dollar game that is unreleased. We hope you enjoy MAMS Soccer.

MAMS Soccer is a new game made in collaboration with my colleague A. Kalashnikov that attempts to bring a sports program to Mass Academy. So far, the game includes a soccer penalty shootout. Although it might not get students physically active, virtual soccer is fun to play!

The game is written in JavaScript, using the ThreeJS library for 3D rendering.

Use your arrow keys to move and space to shoot. Mouse to aim. Block your opponent's goals while making penalties of your own!

Play in fullscreen here.

Agram

This is a program that deals for a card game named Agram. The dealer deals 5 cards to themselves and their opponent. The opponent leads with one of their cards. The dealer then must choose which card to play based on a complicated set of rules.

This Java program takes the dealer's cards and their opponent's lead card as input, and uses these rules to output the card that the dealer must play.

Maps for Good

This app was created as part of the Apps for Good project. This project aims to encourage students to create apps that improve the community. The projects were presented at the Apps for Good fair on May 15th, 2025.

Problem Statement

Navigating public spaces presents significant challenges for individuals with disabilities, particularly when attempting to locate essential amenities such as restrooms, benches, and handicapped parking spaces. While some mapping tools and databases currently exist, they are often limited in scope, lack real-time accuracy, and frequently fail to account for accessibility requirements. The absence of a centralized, user-friendly, and accessibility-focused resource contributes to widespread inconvenience and alienation especially among those with mobility limitations or chronic medical conditions.

Target Audience

This app is primarily intended for those with disabilities who have difficulties locating amenities; however, these amenities can be useful to anyone travelling on foot in a new city or town.

Design

Maps for Good focuses on three main public amenities that are essential for day-to-day life: restrooms, benches, and handicapped parking spaces. When designing our app, we aimed to prioritize inclusivity and convenience, especially for individuals with mobility limitations. After analyzing competitors, we decided that our app must be user-focused and have a wide variety of data, something that other apps lacked.

Solution

Maps for Good aims to offer a comprehensive and community-driven platform designed to address these challenges by mapping key accessible amenities in an integrated and reliable manner. Unlike existing tools that concentrate on a single type of facility or provide static, data-heavy interfaces, this platform consolidates information on handicapped-accessible restrooms, public seating, and designated parking spaces into one interactive and intuitive map. Maps for Good encourages community participation through features that allow users validate the accuracy of reported amenities and report on amenity statuses through a series of preset complaints, such as “broken amenity” or "dirty."

Process

The app was created using the Leaflet library for displaying maps as well as HTML/JS/CSS. Our development began with research. We had to search for data sources for benches, parking spots, and bathrooms in Massachusetts. We eventually used a combination of data on town/state government websites and volunteer-provided data from OpenStreetMap. We filled in the remaining blank spots on the map by simply Googling locations to add as amenities. Firebase was used as a database for liking and disliking amenities, as well as adding additional information.

Features

Our app allows users to sort map features from closest to farthest. This allows them to find amenities nearby. It does this using the Haversine formula, a mathematical formula that finds the distance between two points on Earth, as the crow flies. Our app also allows users to like and dislike features to signal whether or not the feature exists as stated. They could offer additional information about the feature by long pressing. The app allows users to add features as well, by pressing the plus button at the top and filling out the form.

Minimal Viable Product

The app must:

  1. File and pinpoint available amenities into a database and onto a map, allow users to report updates
    1. Handicapped restrooms
    2. Benches
    3. Handicapped parking spaces
  2. Allow users to like or dislike map pins to attest to their accuracy
  3. Continuously update and refresh map based on recent validated responses
    1. Data containing likes corresponding to map pins will be stored on Firebase
    2. They can leave additional info (e.g. specifying whether a bench has a backrest), or create their own pin which must be validated by an administrator

Test

Our app had over sixty tests, ranging from usability to accessibility to security. The app only failed ten of these tests, telling us that it was generally a success, but we have to make improvements. The full test plan can be viewed here.