Computer Science

Computer science at Mass Academy primarily focuses on the programming language of Java, although students learn and use HTML and CSS for their personal websites, such as this one. Java is taught in preparation for the AP CSA exam and any future uses of the language.

Below is my Java code for creating a Latin Square, which is a square of numbers that has consecutive integers in each row. The program was created using 2-D arrays. This code is similar in complexity to exercises that are done in class, which are assigned when learning a new Java topic.

Labs are larger programs that take longer and generally require content that has already been learned so far in the course. One program for a lab I created found the required amount of federal tax that needed to be paid regarding income and marital status. This was coded through decision-making computations, such as if, else if, else, and switch statements.

Apps fr Good

Apps for Good is a long-term computer science project in which students group up and develop an app to solve an issue. Apps for Good spans from late C-term to the end of D-term.

Problem

Looking for books in-person at libraries and bookstores can be a time-consuming process if one does not have an idea of what they are looking for. To get a better understanding of what books one wants, book suggestion apps are used; however, many apps out there that suggest books are generic and are more targeted to avid readers.

Target Audience

The target audience for our app is not limited to any set of individuals. Rather, the app is targeted for anyone who simply wishes to read more, regardless of how much prior experience with reading they have.

Solution

Our solution was to develop a book suggesting app that, unlike other competitors out there, is simple and useful for anyone regardless of their experience with reading.

MVP

The minimum viable product (MVP) of our app was to create an algorithm that suggested books based upon a user's preference.

Features and Algorithm

Our app uses a database that consists of over 11,000 books stored on the cloud service Firebase. There is an initial survey that users fill out which will give them the top five best books based upon what they entered. The survey consists of different factors, which are used in the algorithm that determines the best five books. The first component is language, which filters books out and leaves books of the language the user specifies. Then is author, in which a user enters their favorite author. Length and time period are the next two elements, in which users select from three lengths (short, medium, and long) and three different time periods (both halves of the 20th century and the 21st century and onwards). The last two are the rating of the book (out of five) and the popularity (number of reviews), which is provided by the dataset. All of these factors, other than language, are to be rated 0-10 by the user, with 0 meaning no importance, and 10 meaning of the most importance. The algorithm uses what the user enters for factors and their corresponding rankings to determine the top five best books. Additionally, the app notifies users if the language code they are typing is valid or not. There is a feedback form at the welcome page that users can fill out, and there is a feature called shared preferences used in the initial survey, which allows users to keep their previous entries instead of having to refill them.

Presentation