Computer Science

About the Course: We are taught CS by Mrs. Taricco. We learn to program HTML and CSS for our websites in the beginning of the year, as well as Java for concepts we cover in class. We learn material through interactive coding problems and labs, as well as fun coding competitions like the American Computer Science League (ACSL). You don't need any prior experience to do well in this class!

Our very first assignment to start off the year was a simple character display program. We were tasked with drawing little creatures or animals using keyboard characters. Since then we have learned so much more Java. Looking back as someone who came to MAMS with almost no coding experience, it's safe to say I've learned a lot! To the left is the code and below is the display result.

Animal display code

This was one of our coding labs. We are usually given more time for to complete labs, as they are longer, more challenging problems than our usual exercises. For this one in particular, we had to use AWT Graphics code to create this 3D illusion. Of course, it would be inefficient to draw each line one by one, so we using looping concepts to make it. Creating the center image was also pretty challenging, as it was an extra credit extension.

Line Art Display

Apps For Good:

Problem and Audience: High schoolers often have long deadlines that eventually creep up without them realizing it, causing lots of stress and cramming.

Our App: An automated time management calendar that will split a project into work time blocks depending on productivity

Process: We conducted research on standard calendar apps, and saw that none of them had this element of personalization. We used flutter to simultaneously code the back end algorithm and front end app, and later join them. This was all done through Flutter and Visual Studio Code.

MVP Features:

> User can create a new project and enter its due date with a duration estimate

> Project will be broken up into days with a certain amount of time (according to an S-curve)

> User can navigate to the calendar page to see this breakdown

> Persistent storage so that projects aren't lost

How it Works:

> User will subjectively rank their motivation for the project and how long they want to work

> Ratings will be used to tweak the midpoint and slope of a standard S-curve

> New personalized S-curve is used to delegate time

> Slope at different points in the graph is taken to assign time on different days (higher slope = more time to work)