Welcome to Computer Science!

In Computer Science, taught by Mrs. Taricco, we are studying Java according to the AP Computer Science Applications curriculum. We complete exercises, which teach us the main concepts and methods within each unit, and then we apply our knowledge to creative and interesting labs that involve a bit more work.

Bulgarian Solitaire

One of my most enjoyable assignments that I completed during the year was a program that runs a game called "Bulgarian Solitaire". In this game, you take a pack of N cards, where N is a triangular number, and divide it into many piles. A triangular number is one that can be formed by adding consecutive positive integers, such as 1, 3, 6, or 10.

Once this initial division is done, a card is removed from each pack and they all get added to a new pile. This process gets repeated until the piles become the list of consecutive positive integers that you originally summed up to get N. The beauty is that this "special" collection of cards will always appear for a triangular number within a certain number of shuffles.

Another very interesting assignment I completed involved line art. This program uses the Graphics class to draw straight lines that connect to the edges of a box and gradually wrap around it. The resulting piece resembles a silk web woven by a spider. Don't let the seemingly curved appearance of the design fool you! Only straight lines are used to create the artwork.

Apps for Good

For the Apps for Good course, my team, Double.NaN, identified a problem that many students in grades 4 through 9 face: scientific research papers are filled with dense vocabulary and complex ideas that are difficult for young readers to access on their own.

Our solution is an educational mobile app that allows a student to upload any scientific research paper as a PDF. A call to Gemini's 2.5 Flash model reads the paper and automatically breaks it down into structured sections. For each section, the model generates five multiple-choice trivia questions, each with four answer choices. The output is delivered as a structured JSON file that feeds directly into an interactive game.

Our target audience is middle school students, particularly those in grades 4 through 9 who are curious about science but find research literature inaccessible. The app is designed to work with any scientific article, meaning a teacher could assign a paper and students could use our app to explore and be quizzed on it in a game-based format.

Our Minimum Viable Product consists of three connected components. The first is a React Native mobile app built with Expo, where the user selects a PDF from their device. The second is a Python backend running a Flask API, which receives the PDF, sends it to the Gemini model along with a carefully engineered prompt, and stores the resulting JSON. The third is a Unity game that fetches the JSON from the Flask server and presents a trivia quiz with 5 multiple choice questions.

The process began with research into what makes science education engaging for young learners and what existing tools were missing. We then designed the data structure and decided that the JSON output should include multiple-choice questions with a correct answer flag. Implementation involved building all three components in parallel and connecting them through HTTP endpoints. Testing included both a two-stage AI accuracy verification process using semantic similarity scoring to confirm the model's outputs were consistent and reliable. We also did testing of the full pipeline from PDF upload to in-game question display.