Mrs. Taricco teaches Advanced Computer Science. This is a course that focuses on both programming and real-world software development. The class starts with web design using HTML and CSS, where I build and maintain a personal and professional website, and then moves into object-oriented programming in Java. Throughout the year, we learn core computer science concepts. The course emphasizes problem-solving, collaboration, and writing efficient, well-structured code, and it includes major projects such as developing a mobile app to address a real community need.
This assignment was an ACSL “Binary Counting” challenge where you start with a normal text string, convert every character into its 8-bit ASCII binary, smash it all into one huge binary string, and then repeatedly delete the counting sequence (0, 1, 10, 11, 100, …) by searching from the front and then the back each time until you hit a number that can’t be found anymore. After that, you convert whatever binary is left into octal (no leading zeros) and repeat the same deletion process in base 8 (0, 1, 2, …, 7, 10, 11, …), and the final output is the last octal number you were able to delete (converted to base 10), or -1 if you can’t even delete 0.
Because I have taken AP CS A in the past, which covers the object-oriented programming concepts in Java, I am also doing an independent CS project. I have decided to automate the scheduling process at MAMS. Currently, the schedule is manually created in Excel, having to balance all of the different schedule constraints and customization required. I am working on an app that uses an algorithm to generate the schedule each day based on different requests and templates.
Firstly, there is a Google Form where teachers can input any requests and constraints they have. The two types currently implemented are “All School” and “Avoid”. An all school request is used for tests, project work time, or any other events where the whole school meets at the same time. An avoid request is used so that a teacher won’t have any classes during that period of time.
Then, using Latin square formulas, a random schedule that meets all the constraints is generated. The schedule is then saved as an object. The data-structure was designed to be as customizable as possible. The data-structure can support any number of sections or as many classes as you want. The schedule is generated around templates, which are common class schedules that repeat.
There is also an editor that allows you to change certain classes, change times, or add blocks if needed. This was built with the Java Swing library. The editor also allows you to set any classes to OPEN. If generate is used afterward, the OPEN blocks are filled in with the missing classes if possible.
Finally, an HTML file is outputted using Java PrintWriter. The HTML file is generated based on the Day object and there is a corresponding CSS style file for the table formatting. This project is still in progress, but I am hoping to finish it by the end of C-term. It is my hope that this will help Mass Academy create the weekly schedules easier, rather than editing an Excel Spreadsheet.
GitHub Repo