Computer Science

First Time With CS

Taught by Ms. Taricco, this course introduces students to the concepts of programming. We learn how to code in java, working on various small projects and lessons. Additionally, we learn how to design and code our own websites, teaching us how to use HTML and CSS.

Line Art

This mini-project is mainly graphical, where the goal is to create the optical illusion of a curve through the creation of a large quantity of lines. As an expansion, the assignment also asked to make the program place a copy of this “curve” within the original “curve,” making a semi-recursive code. To personally expand upon this myself, I chose to make the program fully recursive, more customizable in size and detail, and shifting in color as well as position.

Trouble accessing the document? Click here.

A sample image of the graphics generated by my line art code

Stars

This mini-project is also mainly graphical, where the goal is to create stars of random position. This was tricky because there is no given function that draws a star, so we had to learn how to use arrays in order to efficiently complete the task. As a personal extension, I made the stars also have a random number of points, random colors, and random sizes in addition to the random positions.

Trouble accessing the document? Click here.

A sample image of the graphics generated by my stars code

Apps For Good: AdaptEDU

Problem:

For our project, we decided to tackle the problem of procrastination and bad planning, especially within an academic setting. This is important because short deadlines and scheduling issues can be a major source of stress, leading to loss of sleep and other detrimental impacts. We especially observed this within our own peers, so this issue was very important for us to attempt to remedy.

Solution:

My group's solution to this problem was to design a form of adaptive calendar, able to automatically take into account fixed events and flexible tasks to create a well paced schedule. By planning a task-by-task calendar of activities, all kept within healthy sleeping parameters and accounting for procrastination, our calendar can be much better than a default calendar, allowing students to plan ahead without the pressure of doing the planning.

Process:

Research

When searching for potential competitors, we researched calendar services such as google calendar, apple calendar, Howbout, and Monday.com. However, all of these examples were lacking a key component which we would require. While apple and google provide cheap and easy to use calendars, their functionalities are much too limited, requiring the user to schedule everything manually. Howbout had similar problems of limited autonomous capability, but was better in its integration of collaboration. Conversely to these, Monday.com did have many of the features needed for our solution, but required a fee to use that made the service inaccessible to students.

Design

After research, we decided on what app capabilities we would prioritize, and what was less important to achieve. In the end, we decided to heavily prioritize algorithm completeness and user friendliness, as this aspect would be the main capability not accessible through other services. With this priority, we laid out the general structure and functionality of the algorithm and data, as can be seen in the accompanying figure.

A flow chart depicting the manipulation of data within the calendar.

Implementation

To implement our code, we split up the work to perfect different aspects of the app. While I mainly worked on coding and testing the pure algorithm, my group members Sam and Prisha worked on creating a user friendly calendar interface, connecting the algorithm to the calendar, and implementing general improvements and tools. While much of this was quite challenging, especially when it came to tying the algorithm and interface together in the end, the end result was something that we were quite proud of. A link to the calendar can be accessed here.

Testing

To test this calendar, we ran through a vast variety of different checks, spanning from simple button checks to intensive algorithm stress testing. From this testing, we determined that, while most controls work well, it would be better to have some more manual controls to better manipulate tasks. Additionally, algorithm testing revealed that, while the algorithm could handle small to medium loads of tasks, large quantities of large tasks can lead to late submissions or even crash the algorithm. Thus, we would like to continue adding capabilities to the calendar, as well as adding more balance to the algorithm's scheduling factors.

Poster:

Trouble accessing the document? Click here.

Personal Project: My Game

This is a video demo of a personal project I started over Thanksgiving break. Although this is not part of the curriculum, I have received significant help in this from Ms. Taricco. The game is essentially a puzzle game, much like a pre-existing game called "Lights Out." However, my version is different in that it is much more customizable and potentially difficult. I really like working on this project whenever I have free time.

Trouble accessing the video? Click here.