Computer Science

Course Description

In the Intermediate Computer Science class students are taught the basics of the language of Java and are pushed to use these basics to solve problems which are more complex. There are a plethora of these problems which require the use of concepts such as decisions, loops, conditionals, Booleans, and more. Oftentimes these problems can also be very math-heavy, requiring much critical thinking to plan the code before actually coding.

The Federal Tax Rate assignment was a lab which involved calculating the federal tax rate for a person or couple depending on their income. My solution for this problem is in the pdf on the left. This assignment required around 30 test cases in order to properly check if the code worked due to the numerous different possibilities of income brackets.

The Line Art Program assignment was a lab which involved creating a curved looking figure using only lines. This program involved the use of for loops and even nesting them. It created a beautiful figure, and my code also creates the figure inside of itself, which was the extra credit portion. This program taught me the importance of loops for creating figures and drawing in java.

Problem

If you have ever completed a long-term project—namely, a research project—then you’re likely familiar with the amount of time management required to stay on top of your work. This is especially the case in the Massachusetts Academy of Math and Science’s STEM/STW course. Students are given many drawn-out deadlines that eventually creep up without them realizing it, causing a lot of last-minute stress, rushing, and potentially even compromised grades.

Target Audience

Our app is targeted at helping teens and adults who need a little extra help with time management by creating the most optimal and productive schedule for them, as over 70% of young adults rely on digital calendars to plan their day (ECAL, 2018). While apps such as Google Calendar or Apple Calendar exist and are commonly used for their simplicity or aesthetic, our app improves upon them in several aspects, the most apparent being its automation. A whopping 66% of the U.S. uses Google Calendar (6Sense, n.d.), and a quarter of all Apple customers use its default calendar (ECAL, 2018), yet these existing calendars and task managers require the user to determine when they are going to be completing their tasks/events, whereas the Variny Project Planner does not.

Solution

Our app’s key component is its algorithm, which is what calculates each individual’s S-curve and subsequently implements it into a calendar for them. This is first done with a quiz of ten questions, where each question has a point value that may add to or subtract from the following categories: motivation and session length. Higher motivation indicates that you might start a project slowly but tend to pick up and finish at a quicker pace, while those who are less motivated tend to have a short burst of productivity in the beginning that immediately drops off afterward. As for session length, certain questions aim to address how long you like to work at a time. Some people may prefer to work in longer blocks to get the work over with, while others like having more breaks built in between smaller work periods that are extended over a longer period overall.

With this in mind, we have created nine possible work style categories into which a user might be defined, with a combination of high/medium/low motivation and long/medium/short session length. Whichever category the user falls into will greatly affect the skew of their learning curve—if it has a skew at all—so that they are given an appropriate amount of work according to their work style. Rankings for both categories are on a scale from 1 to 10. For session length, a value less than 3.5 (short) will yield a growth rate of 1.06 in the user’s S-curve. A value from 3.5 to 7 (medium) corresponds to a growth rate of 1.12, and anything over 7 (long) will have a growth rate of 1.2. Motivation works similarly; however, it affects the midpoint and therefore the skew of the graph instead. A motivation ranking of less than 3.5 (low) will have a graph whose midpoint is a quarter of the way through its entire width. Values from 3.5 to 7 (medium) will yield a midpoint exactly halfway through the graph, as one would normally expect. Values greater than 7 (high) will have midpoints three-quarters through the entire width of the graph.

Our minimum viable product (MVP) for this project is an app capable of delegating time successfully throughout a given number of days and a work style. An example of this can be used to help explain the process of time delegation. If someone were to fit into the highly motivated category with a long session length for their work style and then create a project for ten days, this is how the algorithm would handle it: the S-curve corresponding to the motivated category would be used, with a growth rate of 1.2 and a midpoint at the ¾ point in the graph’s width. The resulting graph would then be divided into 10 sections, representing the ten days over which the person will work on their project. It will then calculate the average slope of the graph in each of these sections; the steeper the slope, the more time is delegated toward the task for that day, and vice versa. Therefore, someone with this work style can expect to receive an increasing number of hours each day until their project is finished, with more work concentrated near the end. Due to this project’s short timeline, we will add the quiz only after we confirm that our algorithm can run properly, to give potential users the liberty to customize their work style. Other features, like app aesthetics and user interface, can be improved after the establishment of our main algorithm, which plays the largest role in the app’s functionality. These aspects are secondary and cannot be prioritized over the algorithm for the duration of this project; however, if time permits, they will be continually worked on.

Poster