Computer Science

Course Description

This course begins with web design techniques and implementation. Students are responsible for designing, developing, and maintaining their own personal and professional electronic portfolio in the form of a website. The fundamental concepts of object-oriented programming and methodologies are explored. Students develop computational thinking and problem-solving skills through programming practices and learn how to write and analyze software programs. Mobile application technologies are encountered. Students apply the software engineering lifecycle model to help develop applications that benefit the community.

Independant Computer Science Project

After successfully completing AP Computer Science at my sending school, I was afforded the opportunity to work on an independent CS project during B and C term. Working with my friend and fellow classmate Joseph Yu, we decided to create a comprehensive website-based database for previous MAMS STEM theses. Our research noted that all STEM theses were located within a several hundred page pdf, making it exceptionally difficult to search for specific project types. Our goal for the website is to allow for a more user-friendly project search environment through a parameter and keyword search, as well as to support the future documentation of STEM theses.

Advanced Computer Science Coding Problems

A niche programming interest of mine is finding ways to simplify code to increase the efficiency of the program. Following the completion of our personal websites, I leverage this interest of mine to complete several advanced computer science Java problem solving challenges. I focused on minimizing the complexity of the code to reduce the time the computer required to solve the problems.

Apps for Good Project

As the final project of the Mass Academy Computer Science course, students work in teams to develop mobile applications to address needs observed within our communities. For this project, I worked with Kweku and Emily to design an app to bridge the gap between organizations and volunteers. All three members of our group enjoy engaging with volunteering. Through our shared passion, we identified an area of growth within this field; often, many volunteer opportunities are discovered through word of mouth, and due to the wide variety of methods that organizations advertise these activities, individuals who align with the job necessities may miss these events. To help combat this, we decided to create a mobile application that recommends and pairs volunteers in search of opportunities with locally available positions that align with their interests and skills using the Android Studio development environment and an external database, FireStore.
Within the app, the user has the option to create a profile as an organization admin or a volunteer. As an organization admin, the user enters the organization information into the app, and is greeted with a page where they can add, edit, or delete opportunities they wish to broadcast to the volunteer users of the application. When creating an activity, the organization can add an event title, description, date range, time, and zip code location. Once an event is added or updated, the data is pushed to FireStore, which houses all organization and event data.
If a user selects a volunteer account, they must add their zip code, maximum distance at which they receive activity recommendations, as well as select any skills or interests they wish to disclose. Once the user creates their account, the data is pushed inside Android Studio’s internal database such that it persists when opening and closing the app. The app uses an internal algorithm that pairs the user based on their skill and interest alignment, as well as their location in relation to the activity. On the volunteer home page, the user receives a view of volunteering opportunities in the specified area sorted by their overall ‘fit’ to the user. The user may also click on any of the opportunities to view an expanded information view of the activity.