Course Description

The Computer Science course is taught by Mrs. Taricco. This course begins with web design techniques and implementation. Students are responsible for designing, developing, and maintaining their own personal and professional electronic portfolios 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.

Line Art

The Line Art lab is one of my favorite assignments that I have completed in computer science this year. It amazed me that such a complex picture could be coded with basic Java skills, as when I did this program I didn’t know much Java. Using only for-loops and if-else statements, I was able to efficiently complete the objective of the lab, which was to create a specific optical illusion using only straight lines. Along with the computer science aspect of the program, there was also a math component to the program which I would say was the more challenging part to work through. To learn more about my work and process, feel free to check out the code and the final product on the right!

Bulgarian Solitare

While the Bulgarian Solitare program was a very unique and interesting programming problem, I found it to be one of the more challenging programs I have completed this year. The objective of this program was to model the game of Bulgarian Solitare, which is a game that starts with N cards (where N is any triangular number). Then, the N cards are randomly divided into some number of piles of random size. In each round, you take one card from each pile, forming a new pile with these cards. The solitaire is over when the piles have size, for example, 1, 2, 3, 4, 5, 6, 7, 8, and 9, in some order, for a deck with 45 cards. As for my approach, I successfully completed the program using array lists and the array lists’ class. For more information on how I accomplished the objective of this program, feel free to take a look at my code on the left!

Apps for Good

Problem

As technology becomes more prominent in our increasingly digitized society, adolescents have been spending more and more time on their devices instead of being active members of society. A recent study found that in 2021, teenagers in the United States spent on average 8 hours and 39 minutes on their phones each day (Cosmo, 2024). Based on the total amount of time teenagers are awake each day, this statistic shows that teenagers spend half of their waking hours on their phones. While some of this screen usage is necessary, most of the time spent is simply mindless stimulation of their brain while there are much healthier and more productive alternatives to achieve the same stimulation. Teenagers are not only losing time as they stay on their phones, it can also negatively impact their health. Excessive amounts of screen use, such as the daily average many teenagers spend on their phones, have been linked with a variety of physical and mental health problems. These problems include impaired social-emotional development, obesity, problems sleeping, depression, and anxiety. (Mupalla et al., 2023). Kashmir Hill, a technology reporter, writes the following in her New York Times article: “My biggest regret of 2023 was my relationship to my smartphone, or my ‘tech appendage’...My Apple Screen Time reports regularly clocked in at more than five hours a day”(Hill, 2024). Even though Hill was not a teenager in 2023, the addiction to her smartphone that she experienced is very much like most teenagers nowadays. With most teenagers having access to their phones throughout the day, even in most schools, screen times can easily surpass the five-hour mark that Kashmir Hill mentions. This will not only ruin their health at the moment but it will also be something that many teenagers regret when they become adults, as the time they waste on their phones could be utilized in a much more productive manner. Additionally, there is a huge percentage of teenagers who avoid in-person social interaction with one another and instead, prefer to communicate via online platforms. An infographic from a blog from SlickText states that 33% of teens spend more time socializing with close friends online than in person (44 Smartphone Addiction Statistics for 2023 [INFOGRAPHIC], 2023). Not only are teenagers avoiding in-person social interactions with friends, but even when they decide to hang out together, 52% of them have long periods of silence on their phones (44 Smartphone Addiction Statistics for 2023 [INFOGRAPHIC], 2023). If hanging out with friends means sitting together and staring at your phones, what’s the purpose of in-person social interaction? Without a doubt, phones are destroying the social connections between teenagers and there is a significant problem to address within that. There are two potential factors contributing to teenagers excessively using their phones. First, they might lack alternative activities, unsure of what else to do. Second, even if they have other options, they might lack motivation and opt for the easy entertainment provided by smartphones. This project aims to address the issue by developing an application focused on providing teenagers with engaging activities when they are not using their phones, including times spent with friends.

Target Audience

The audience includes a majority of smartphone users; specifically, the individuals who exceed the healthy threshold for using their phones every day. After doing research, the specific group of individuals that benefit most from this app are teenagers/adolescents. 54% of teenagers acknowledge the fact that they spend an excessive amount of time on their phones. Among that group, 52% of them have attempted to cut back but have been unsuccessful. (Majority of Teens Admit to Excessive Cellphone Usage [​​INFOGRAPHIC], 2018). Therefore, teenagers are the specific audience for this app, as there is a critical need to help them find alternative activities to indulge in and avoid using their phones. In particular, teenagers need activities that they would be interested in enough for them to participate in. Although out app requires users to utilize their smartphones, as this app can only be accessed via electronic devices, the app ultimately pushes users away from their phones and out into the real world, where they are free to do fun activities that appeal to their interests. In doing so, this app’s goal is to give users ideas on things they can do, using an algorithm that makes suggestions based on the user’s personal profiles, which comprises of their interests, budget, and distance willing to travel.

Solution

The Minimum Viable Product (MVP) for this application includes the following:
Feature 1: The app generates different activities the user can partake in, helping to reduce people's screen time and eliminate boredom. These activities are taken from a database of ideas that the team of developers have created. Each idea is connected to a distinct category from the profile-building process, making it easy to suggest activities based on user preferences.
Feature 2: Generated ideas are based on user preference and the profile that is built by a user. The app tailors recommendations based on the categories that the user identifies to be interested in. The app knows the user’s interests through a profile-building process that consists of the user selecting categories they’re fond of from a pool of categories provided by the app.
Feature 3: The app allows the user to change the distance they are willing to travel for the activity and the amount of money they are willing to spend on the activity in between idea generations which the generator abides by. When any idea is then generated and displayed to the user, the information is also displayed along with the idea.

Technical and Data Feasibility

First and foremost, the app relies on a comprehensive database of activities curated based on feasibility, legality, and safety considerations. This database serves as the foundation for activity recommendations, ensuring that users are presented with options that align with their well-being and local regulations. This activity database takes the form of an array list of activity objects. The activity class creates an activity object that contains all the activity information, such as name, category, price, and distance. All activities are stored in an ArrayList.
Then, using parameters inputted by the user, the app picks a random idea from the array and check its information against the user's preferences. If the idea does not fit the user’s input parameters, then a new idea is chosen and checked. This process repeats until the app finds an idea that matches what the user wants. It is then be displayed to them on the home screen.
User engagement is essential to the app's functionality. Thus, data is collected directly from users regarding their preferences, interests, and favored activities. By obtaining this information through user input, we can refine recommendations and enhance the overall user experience. Specifically, the user has buttons available to adjust their preferences at any given moment.
Firstly, the user has a slider that they can move depending on how much money they want to spend, going from $0 to $100. By incorporating data on pricing and costs associated with various activities, users can make informed decisions that align with their financial requirements. The data on prices of activities are sourced through the internet, researching the cost or average cost of an activity and adding to the activity object.
Next, they have a switch to determine whether they would like activity ideas that are in their own house or ideas that constitute leaving the house and traveling somewhere. In the future, this switch will be turned into a slider to determine how far they are willing to travel based on location data of their current location and the location of the activities, which will be sourced from a GPS service such as Google Maps.
Finally, the user has their profile screen which includes various categories, each with an individual check box the user can check off or not check off. If the category is unchecked, then the app does not provide recommendations from those categories.

MVP/Poster