Computer Science is a class taught by Mrs. Taricco. In the Intermediate section, students study core concepts in object-oriented programming and software design while building problem-solving skills. In the Advanced section of the class, students can choose any project that they would like to work on for their Independent Computer Science Project. We also compete in tournaments such as the American Computer Science League where we can utilize the skills that we have learned.
Apps for Good is a project we do in the second half of the year in which students identify a real-world problem and design, build, and present a mobile or web application that addresses it. The sections below describe my project's problem, target audience, solution, minimum viable product, and the additional features that bring the app together.
STEM events, internships, clubs, and enrichment programs often go unnoticed by students and parents. Information is scattered across school newsletters, organization websites, social media, and magazines, making it difficult to reliably discover high-quality opportunities in a specific town or region.
Beacon is targeted towards students of all ages who are in search of local STEM opportunities. This app is also available for parents that want to locate events for their children or relatives that are low-cost, nearby, and/or easy to access. On the organization side of things, this app allows organizations to push their events to students and get the traffic and attention that they deserve.
Beacon brings students and local STEM organizations into one place. A student does a quick one-time setup for their preferences and then sees a filtered grid of nearby STEM clubs, events, and volunteering, with one tap to open details, visit the organization's website, or report a bad listing. Organizations sign up with their basic info, get manually verified in order to keep listings real and accurate, and then use a dashboard to create, edit, draft, and publish events. They have a live Website Visits counter that shows which listings are actually pulling traffic. The result is that students and STEM programs end up one tap apart instead of separated by scattered flyers.
Students can report events. Tap the report icon on any event card and pick a reason from a fixed list (Incorrect information, Spam or scam, Inappropriate content, Duplicate listing, Other) with optional free-text details.
Outbound link tracking. Each event has a "Visit Organization Website" button. When a student taps it, the app opens the link (new tab on web, external browser on Android) and increments a websiteVisits counter on that event in Firestore. The org dashboard then shows total Website Visits as a metric card. So orgs get analytics on which listings are pulling traffic, not just a static list.
Auto-resume on relaunch. After the first session, the app remembers whether you were a student or an approved org and skips the welcome screen entirely on the next launch. It goes straight to the student browse screen or the org dashboard. Approval status is re-checked on every launch, so a pending or revoked org is signed out and routed back to the welcome screen automatically.
If placed in the advanced section of this class, we are allowed to create our own Independent CS Projects instead of learning java.
Working with Arnav Prabhudesai, this project aims to create a realistic and useful simulation of viruses. In its final form, the user will be able to customize every single attribute, drop their virus wherever they want, and see the outcomes.
Below is an image of what the current UI looks like, and to the left is a React.js file containing the bulk of the code that I wrote for the frontend of this website.
Click this link to get access to the GitHub if you want to run the code yourself!
If in the advanced section of this class, this was one of the programs we could've chose to complete in between working on our websites and our ICSP.
This is an ACSL problem that challenges the programmer to switch back and forth between binary, octal and decimal bases. Taking in a string input and outputting one integer, this problem tests various skills, specifically with handling strings.
Feel free to copy and paste my code to try it for yourself!