Computer Science is taught by Mrs. Taricco. This class incorporates a variety of CS topics, including website design, object oriented programming, and app design. We started off the year by creating our own personal websites with HTML, CSS, and (optionally) JavaScript. In fact, you can see the results of this project right now by continuing to look around the website you are currently on! Because MAMS students have a wide variety of CS experience, the class then splits into tracks - most people will then learn about object oriented programming and the Java language with a curriculum roughly aligned to AP Computer Science A. However, students with enough prior programming experience instead use class time to work on independent projects, furthering their knowledge in an area of CS they are interested in. Since I've already taken AP CS A, I am in this group. You can see a description of my project below! We also participate in the ACSL competition and will soon begin our Apps for Good project.
Towards the end of A term, I worked through a series of ten programming problems before starting my advanced project during B term. The two I have displayed here challenged me to compute the least common multiple of the numbers from 1 to a number, the sum of the squares between 1 and a number, and the square of the sum of the numbers from 1 to a number. The solution I coded can be found here.
I am a member of Scouts BSA (click here for a description of that!) and I'm always trying to find ways to improve the experience for Scouts in my troop. One problem that is widespread among Scouts is the struggle with time management. To earn the highest rank possible, Eagle Scout, Scouts are challenged to work through a variety of skill-based and leadership requirements as well as a series of 21 "merit badges" which go in-depth on individual topics. However, only around 5% of members earn this rank - in part because it can be a struggle to finish time-based requirements before their 18th birthday. My app, which I have been coding using Dart with the Flutter framework, is designed to help remedy this problem by creating a schedule of requirements that the user should finish by specific dates. It is still in progress, but you can find some concept screenshots from the setup portion of the app here.
In the Apps for Good project, we work in teams to identify a problem in the community and develop an app to solve this problem. I worked with Jianna and Jotham on this project.
At Mass Academy, each day's schedule is different. The Mass Academy director is in charge of creating these schedules, but this is a lengthy and frustrating ordeal. Faculty absences, whole-school blocks for tests and projects, and many other requirements must be accomodated and often conflict. Currently, the faculty discusses requirements at weekly meetings, but lacks a clear system for communicating these requirements in a standardized form. We have developed an app that allows all faculty to submit requirements to a centralized storage system and view all currently submitted requirements.
Currently, the director generates the schedules in Microsoft Excel. However, this process is entirely manual - Excel is only used for formatting the schedules, and the logic must still be handled by a person. Additionally, there is not an easy way for faculty to "submit" their requirements in Excel and generate a list. Another app, called School Schedule Generator, will create school schedules for a "standard" school based on teacher absences. However, this app fails to accomodate for Mass Academy specific requirements, such as whole-schools or our foreign language-based class sections, and prioritizes consistency week-to-week over the Mass Academy emphasis on variation. Additionally, there is no collaborative aspect to the app. An administrator must complete all the steps by themself.
Our app must allow all faculty to login, provide a way to input and store requirements for the schedule, and display these requirements to a shared site.
Our app provides a way for faculty to collaboratively input and view requirements. When a faculty member logs into the app, the database will read their email and associate it with the correct teacher and class. They can then proceed to the Add page, where they will be asked what type of requirement they would like to create. Then, they will be directed to input additional information, such as the date, time, reason, and so on. The requirement is then submitted to the database. All faculty can also access the Index page, which displays the requirements that all users have submitted in chronological order by the date the requirement applies to. You can access some screenshots of the app below.
React.js was used to make the page responsive. Firebase was used to handle backend data as well as the authentication system. VS Code and GitHub were used in creating the code.
In the future, we would like to account for other types of requirements, including the way French class is sometimes split into two groups. We also want to make sure requirements are possible. For example, there are no foreign language classes on Thursdays, so we don't want users to accidentally submit a requirement for that. Additionally, we would like to work on adding features for users to edit and/or delete requirements. Finally, our eventual goal, should we continue, would be to use the stored requirements to automate all or part of the schedule generation process.