Computer Science Page

Computer Science at Mass Academy is an accelerated course in web development, Java, and app-building. Students learn proficient problem-solving skills and gain a new understanding of programming logic through this class.

Apps for Good Project: Cerebral

Problem Statement

Many students do not feel motivated while studying for long periods of time. The problem stems from the fact that often students have trouble feeling accomplished after their studying session since they do not have a visual representation of their work. Some students found studying tedious due to lack of incentive.

Solution

Our project aims to develop an app targeted at high school students that integrates studying in an engaging and immersive, yet effective way. The project's goal is to 'game-ify' studying to provide motivation and give students evidence of their progress and hard work. It will have features like coins and XP which will be obtained from usage of the app. Cloud storage will be implemented to create a social aspect of the app: a leaderboard and the ability for users to add their own questions.

Target Audience

Our app aims for the audience of STEM students in middle school through early college classes. The goal is to improve the user’s motivation towards studying to therefore increase their productivity and studying gain. With this in mind, the app would appeal towards students who struggle staying on task, and cause them to enjoy studying. In general, students who prefer and learn best with interactive, or game-based, learning would benefit greatly from the variety of game studying options to appeal to various users’ tastes and styles.

MVP Features

The primary criteria for the MVP focus on creating trivia as a preliminary format for our app. The MVP must be capable of building a trivia question/answer studying format for a given database of questions and respective answers. The database includes sets of questions/answers and each are defined with: a category, sub-category, difficulty, problem, and answer. The app must record and calculate scores and accuracy from the number of questions and the number answered correctly. Finally, the app must include at least one game-based learning feature.

The secondary criteria for the MVP further develop the scoring and point systems within the app. The MVP should be capable of taking in input from a database of questions and respective answers and building a question/answer format for users The app should record the accuracy of the studying session to measure the user’s ability and record the user’s scores. The MVP should calculate XP and in-game currency with the score and accuracy information. The XP should increment after continuous studying as like participation points. Users should gain XP after using the app a.k.a studying. Gaining enough XP can increase your “XP Level”. A higher XP Level would be a good measure for showing active studying as it shows consistency in studying which is a vital component of proper studying (discouraging cramming). A higher XP Level could also give higher daily bonuses of in-game currency as XP Level goes up (incentive to use the app more, study more). The MVP should also calculate high scores, store them locally, and create a leaderboard using shared and compared high scores amongst users

The third-level criteria focus on the expansion of the app past the initial trivia format. The MVP can implement various studying methods, such as flashcards, card matching, and game-based learning. The app can also use separate features to measure the progress of the user, including quizzes, multiple-choice questions, and short answer questions.

Research

Student interest is the core factor for a student's success in an academic subject. When students have interest in a subject, they are more likely to go to class, pay attention, become engaged, take more courses, process effectively and are overall more likely to do well (Hidi & Harackiewicz, 2000). Unfortunately, most students never develop this interest due to the lack of quantifiable progress that comes with studying. A study by Hanover Research found the students take a greater increase in a subject matter when they make visible progress.. Furthermore, students struggle with the impersonal nature commonly attributed to studying. A study from Rowan University found that high schoolers who studied in groups received higher scores than those who studied individually (Walker, 2004). Therefore the concept of studying with other students, creates motivation to study for prolonged periods of time.

After careful consideration, the method decided for increasing student motivation towards studying was an implementation of a system of game-based learning. Game-based learning is a learning style designed to balance subject matter with gameplay, increase student retention, and apply said subject matter to the real world; it creates an effective studying situation by making students work toward a goal, allow them to learn through experimentation, and practice behaviors and thought processes that are easily applicable from a simulated environment to real life (Falciani, 2022). Games often include a competitive aspect which motivates students to compete with their peers. When directing this motivation towards academic purposes, students take interest in their own learning and achieve their teacher’s goals. According to a study by Tracy Sitz, Game based learning increases self-confidence (20%), conceptual understanding (11%), and learning retention (90%) significantly.

In conclusion, the best way to improve a student’s academic performance is by instilling an interest in the topic. Studies have shown that many factors that prevent student interest are countered by game-based Learning. Thus game-based learning is the key to improving student performance.

Competition

Current products that aim to make students enjoy learning are Quizlet, Prodigy, and Art of Problem Solving. Although these apps and programs are great resources for those already interested in learning more and enhancing their knowledge, they do not generate new interest and only cater to those with already a strong interest in the subject. Quizlet is designed mainly for students who need to review for tests. As a result it encourages cramming habits and memorization. As it fails to generate interest, there is very little storage of long term knowledge. For this reason, Quizlet fails to aid the STEM based student population that our app targets. With Prodigy, although it generates interest, it focuses the attention on the gameplay rather than the learning. The concepts covered are too simple and repetitive to be useful to the target audience and would also fail to serve them. Furthermore, although the gameplay is engaging, there is little variation, causing users to quit in little time. Finally, out of the three options listed, Art of Problem is the best available app, but it requires an interest in the subject and a basic understanding. The problems on Art of Problem Solving are often too difficult for beginners, and the explanations are often not thorough enough to bridge the gap. Thus, it requires a significant amount of pre-existing interest to succeed with Art of Problem Solving.

Our app improves upon the flaws of previous apps by including varied interesting gameplay options, possessing unique curriculum for grades K-12, and engaging features. This will create a fun and educational experience for the user that will help them retain concepts in an appealing way.

Design

diagram

Implementation

app screenshots

Testing - 50 Test Cases

test cases

Board

poster board

General Course: Java Object-Oriented Programming

For this coding assignment, our goal was to give the tax rate for any individual according to their marital status and income. Tax rates differ based on whether the taxpayers are filing jointly or single, and both of these categories have seven tax brackets. Knowing this information, I knew I first had to collect information from the user about their marital status and income. I used a scanner to get this information, storing the marital status as a character and the income as a double. Then, I used a conditional to determine if the user was filing jointly or single. Then, within each marital status category, I created eight conditional statements: one for each income bracket and one for detecting negative income. Within each tax bracket conditional, I calculated the tax for the user according to their bracket and stored the amount of tax in a double. At the end of the program, I rounded the tax value to the nearest penny and reported this value back to the user.

The Sieve of Eratosthenes is a method for identifying prime numbers by marking every multiple of a prime number as a composite number. For example, since two is the first prime number, every multiple of two is a composite number. In order to program this method of finding primes, we used a static boolean array. After obtaining the upper bound of the numbers from the user using a scanner, I created a static boolean array to hold all of the indicated values. Then I created two different methods: one to compute the primes and one to display them. To start computing the primes, I used a for-loop to set all values in the array to 'true.' Then, I created another for-loop which iterated through the list starting from i = 2. Next, I coded a conditional within the loop to check whether the element at i-1 is true. Since, in the first iteration, this would be the second element, it is true that it is a prime. After this, I coded another loop within the conditional to set all multiples of the element at i-1 to false. This nested loop and conditional will iterate through the entire static array and turn every composite number false while leaving the prime numbers true. To display these prime numbers, I created a decimal format. Then, I created a loop to iterate through each element in the array and a conditional within it to check if that element is true. If the element is true, it is printed with the previously created decimal format.