Organization: IB Computer Science, Upper Arlington High School
Language: Java
The objective of the IA was to design, implement, and document an algorithm for a client. My client was looking for a way in which to accurately and quickly determine whether a series of rectangular designs could be fit on a printing sheet and leave the sheet able to be guillotine cut.
As head of the Chroma Department of Art Brands––a company that prints designs on to fabrics––my client needed a way in which they and their employees could easily and quickly estimate whether a series of designs could fit on a printing sheet, beyond solely calculating and comparing the areas. My algorithm utilizes the guillotine cut requirement to simplify the solution. Guillotine cuts by nature are recursive, cutting across the entirety of the sheet. Following this process when a design gets placed on a sheet, the design is "cut" out using guillotine cuts, creating two smaller sheets in the process. This recursion continues until all designs are placed on a sheet, in which case they fit, or there is no sheet that fits at least one of the designs.
The process can be conceptualized in terms of a tree where each node is placing a design on a sheet. This tree grows very large very quickly, so some heuristics were applied to choosing designs and the order of the designs preventing the algorithm from checking every branch of the tree.
Organization: Personal
Language: Java
A game created for the stats nerds.
Rules of the game are: you (the player) have 6 types of dice––4-sided, 6-sided, 8-sided, 10-sided, 12-sided, and 20-sided. If the dice rolls a 1 it is removed from the play, however if it rolls the maximum number possible for that type of die then another die of that type is added. The goal is to guess which which type will be the last one standing.
This project is a simulation of this game, created orignally to analyze the probabilites of each type winning. However there are several more intriguing statistics that can be gleaned from the game. The chance of ties, average length of games, and average number of rounds each type took to win are examples of statistics I used data from the simulation for. These statistics also change when the amount of each type of die at the beginning is changed.