Computer Science

What is it about?

Computer science is one of my favorite classes because I enjoy coding. In this class, we explore a variety of topics that aren’t typically covered in an average CS course. We start with Java, where we learn concepts such as data types, arithmetic, conditional statements, loops, and arrays. We also work on AP CSA problems to help us prepare for the AP exam. In addition to programming games and creating art, we also learn how to code in HTML and CSS. This is especially useful since we create our own websites, like the one you see here! At the end of the year, we participate in a project called Apps for Good, where we collaborate to create an app that benefits others. Computer Science class is incredibly fun, and I’ve learned a lot about problem-solving, critical thinking, and programming.

Stars Program

The Stars program was one of the most challenging projects I’ve worked on in CS class. The task was to generate 10 random stars with varying sizes, colors, and positions every time the program was run. To achieve this, I used a Java applet and imported the Random class to introduce randomness into the star’s properties. I created two static arrays to represent the x and y coordinates of each star's points. It’s important to note that each star consists of two circles: one for the inner points and another for the outer points. To draw these, I used two for-loops—one for each circle. I configured each of the 10 elements in both arrays by adjusting the angle and radius of the circles, which allowed the stars to be positioned randomly. I also made the colors random for each of the 10 stars. A sample output can be seen in the PDF to the left. Although this program was very challenging, it was also a lot of fun to complete.

Rock Paper Scissors Program

Everyone loves playing the popular game of rock-paper-scissors, and coding it was just as easy as playing it. The main requirement was understanding how to use conditional statements. For this program, I set it up so the user would play against the computer, which is represented by a random integer generated by the program. As shown in the “System.out.println” statement, I assigned integers to each of the three options. The computer then randomly selects an option by generating the corresponding number. Next, I wrote several if and else-if statements to account for every possible scenario in rock-paper-scissors. Three sample outputs can be found in the PDF. This program was easy to code, and playing it never gets old.

Apps For Good

Problem Statement and Target Audience

With the rising food prices, more people are resorting to home-cooking in order to save time, energy, and money (Gravalese, 2025). In fact, according to the contextual commerce advertising platform Chicory’s “Annual Recipe Usage Report,” 89% of people who responded to this survey indicated that they use digital recipes, which shows that online recipe platforms are a widely accepted meal-planning tool (Zboraj, 2022). Due to the rising customers in digital meal-planning, there is a demand for applications that will provide recipes that need ingredients they already have at home. Many current recipe apps provide generic recommendations without actually accounting for user preferences or their available ingredients. However, many recipe apps on the market currently do not address the user’s specific preferences, and if they do, it does not make that the focus of the app, leading the user to discovering recipes that they cannot make due to allergies, dietary restrictions, or ingredients they may not have available at their house at the moment. The target audience of this app includes everyday users that are looking for easy, personalized meals using ingredients they have ready to use in their fridges and pantries. The designed application, Dishcovery, uses a matching algorithm that feeds the user recipes that accommodate the user's dietary preferences and needs.

Minimum Viable Product

Our Minimum Viable Product has several features that will allow for the user to find their preferred meals based on their dietary restrictions and preferences. First, the MVP will include a screen where the user can input their preferred ingredients, disliked ingredients, and dietary restrictions. As they first enter the application, they will be prompted with their profile page, and that is where they can enter their information and food preferences. At any time, the user can change their information if need be. Using the user’s preferences, the application will generate a feed page. This feed page will include a list of numerous recipes that were based on what the user liked, disliked, and their dietary restrictions. The recipes will show up as thumbnails of the actual recipe, but if the user clicks on the recipe, it will open to the instructions on the cooking process and the list of all the ingredients with their respective quantities. In addition to the feed page, a search bar will be implemented. Instead of scrolling through a list of recipes, if the user wants more specific recipes tailored to their preferences, they can just search up a recipe. Moreover, the user can also just search up a specific ingredient that they want to cook with, and recipes that include that ingredient will pop up on the feed.

The Process

As we started the process for application development, we first researched multiple competitors in the area of interest to see what works and what doesn’t work for their app. We researched applications like Yummly, Mealime, ReciMe, Recipe Keeper, and SuperCook. While these apps have their advantages, there are also many disadvantages that accompany them as well. The most common disadvantage these apps have is that they don’t provide recipes that are tailored to the user’s dietary restrictions or preferences. After finding out the missing component of a successful recipe application, we knew what our main feature was going to be: providing recipes that are based off of the user’s preferences. In order to do this, we first needed a list of recipes that have their respective ingredients and directions so they could be filtered based on what the user fills out as their preference. We found a food recipe API called MealDB, and it had a list of 300+ recipes with all the ingredients, quantities, and directions on how to cook them. We took all these recipes and stored them in a database called Firebase. We then linked the recipes in Firebase to our application. In the app, the user can fill out dietary preferences (Vegetarian, Vegan, Halal, Kosher) and also add a list of allergies they have. Based on these inputs, the feed page will filter amongst the recipes in Firebase and find recipes that accommodate their needs. For the testing phase of the application, we tested the different dietary preferences to see how many recipes will get filtered out. We also tested many aspects of the User Interface to see if they were organized and visually appealing.