The 2023 Computer Science Fair took over the Grand Maple Ballroom again this December with over 100 individuals and teams vying for the top prize in each of the 8 categories. Projects this year range from whimsical game design to counter cyberterrorism to measuring soil moisture content.

All the participants were UVM students enrolled in a computer science (CS) course or active CS or Data Science majors. Prizes were awarded in gift cards for first place ($300), second place ($200), and third place ($100).

Congratulations to all the winners and thank you to all of the participants, judges, and volunteers!

 

2023 CS FAIR WINNERS:

ENTRY LEVEL PROGRAMMING

First Place: T2* Mapping, Andres Savellano

This program takes a set of magnetic resonance imaging (MRI) images that were acquired at different times after an initial excitation pulse. From these images, it calculates the signal decay pixel by pixel across the different images to output a T2* map. A T2* map displays a colorized representation of the time of the magnetic spin dephasing of protons in the various examined organs and tissues. More specifically, the medical application of this program is to determine iron deposition in the organs of patients with hemochromatosis. My program is unique because it can be used with completely anonymized images in the png, jpeg, or other format that does not contain sensitive patient data. It can be run free of charge on a personal computer.

 

Second Place: Pocket Presidents, Colin Menuchi

Pocket Presidents takes inspiration from the popular website Pokemon Showdown, in that you get to build and battle with a team of Pokemon, only all the Pokemon are US presidents. It features iconic historical figures such as George Washington or Abraham Lincoln, and each president has unique and wacky moves that make the game all the more hilarious! Pocket Presidents is coded entirely in Python and utilizes the Pygame library, allowing for a straightforward user interface and fun gaming experience!

 

Third Place: IntelliSnake, Kelsyn Carter, Henrik Van Tassell

IntelliSnake is an expansion on the simple game of snake that adds a computer opponent, as well as new game dynamics. With this second opponent, it becomes a strategy game where you must try to outmaneuver your opponent. Not only are you competing for food, but you can also win by cutting your opponent off. We will also be adding configuration options that make the game itself more interesting, such as player speed, the number of food items spawned on the field, and the option to increase the player speed as the game goes on. Game modes include player vs player, player vs computer, classic single-player, and god-mode single-player.


 

ENTRY LEVEL WEBSITE

First Place: Wonderland Café, Shiloh Chiu

The website of a fictional café based in Boston, Massachusetts named Wonderland Café. The café's aesthetics are inspired by the book Alice in Wonderland by Lewis Carroll. Built using HTML, CSS, and PHP.

 

Second Place: Cool Places, Radek Horacek

A website where users can share interesting and unique places they found. Others can then browse through all public posts and find new hidden gems to explore. All this without any need to create user accounts while allowing users to delete their posts if they ever decide to do so. The website uses a responsive design for a convenient user experience on both desktop and mobile devices.

 

Third Place: Book Club, Sofia Gorgees

Website about a fictional book club and information regarding books.


 

INTERMEDIATE WEB DESIGN

First Place: Chemistry Conventions, Sylvan Franklin

A web app that provides a learning resource for students in introductory chemistry. It programmatically generates questions related to shell configuration, naming, and compound numbering conventions. It has additional resources such as an interactive periodic table which can help students familiarize themselves with the patterns of basic chemistry. Other features include dark mode, a command pallet, user authentication, and score saving. Created using React and typescript, hosted on firebase at chemconventions.web.app

 

Second Place: MyList, Henrik Van Tassell

A custom wish list web app that is written in Typescript using React and Next.js. It uses a Postgres database and Drizzle ORM and is hosted on Vercel. It has a custom administration panel that authenticates the admin user using Google OAuth. Currently, only one admin is allowed since it checks the email against an environment variable. It then opens to a table that allows for the creation of new items or editing of existing items. The other major feature is the claiming system - where the admin can create new "claimers" and when those claimers open a special link, it saves user information to their browser that allows them to mark an item as purchased to prevent duplicate gifts.

 

Third Place: My Money, Evan Trafton

A website designed for personal finance tracking and budgeting. The project revolves around a database where users, accounts (ex. savings, spending, etc), transactions, categories, and budgets. The website is broken down into five pages, four of which are public. The first is the dashboard which displays a user’s current budget based on spending that month, and their goal budget for the month both of which are displayed as pie charts followed by a line chart showing a user's balance across a month. Additionally, on the dashboard page, a user can also see the balances of each of their accounts as well as their most recent transactions. The next page is transactions which displays all transactions with the fields name, category, account, date, and amount. The next page breakdown shows transactions sorted by categories as well as the totals for each category, additionally, a pie chart showing the percent of each category in terms of your total monthly spending. Finally, on the goals page, the user can create a monthly budget goal, where the user enters their total monthly spending, total monthly income, as well as the total amount they would like to spend in each category. Finally, is the managers page which allows the manager to see the users created as well as the budgets they have created, although not giving the manager access to any of their transaction or account data. For further development, I plan on integrating the Plaid API to pull transaction data, as right now all data is test data.


 

INTERMEDIATE PROGRAMMING

First Place: Keyboard Gloves, Skyler Heininger, Nathan Blanchard

Tired of a basic keyboard? How about a Raspberry Pi strapped to each of your wrists and some cumbersome gloves? Our keyboard gloves offer a new experience to typing, using the positioning of each of your fingers to determine what key to press. These gloves also connect to your device via WIFI, allowing a distinctly wireless experience - other than the 20+ wires on each hand. Here is a video of the gloves in action: https://www.youtube.com/watch?v=2XfrgQnckdM.

 

Second Place: Penpal, James Bouchat, Grady Corkum, Owen Milke, Mujtaba Mirhasan

A pen plotter capable of drawing any given image! Images can be uploaded via the Penpal website.

 

Third Place: Rubik's Cube Robot, Levi Pare, River Bumpas

A 6-axial robot equipped with color detection that can scan and solve a Rubik's cube.


 

ADVANCED PROGRAMMING

First Place: Sorcery64, Connor Milligan

Sorcery64 is a remake of a short dungeon crawler game made for a final project of Advanced Programming. The project is written in C and runs on the Commodore family of home computers, with the use of the cc65 cross-compiler for MOS 6502 & WDC 65C02 targets. The game employs ASCII-style artwork using the Commodore PETSCII character set, along with classic turn-based role-playing tropes, inspired mainly by the "Wizardry: Proving Grounds of the Mad Overlord" of 1981. The game is available to play in both English and Esperanto.

 

Second Place: Multiplayer Client-Server Monopoly, Aidan Bonner, Jordan Bourdeau, Hayden Collins, Alex Hall

Multiplayer Monopoly game created using Flutter/Dart as a front-end with a Flask backend running on the UVM silk server.

 

Third Place: 3D Space Simulation, Bradon Soucy

3D Space Simulation Software built using OpenGL and GLFW. Complete with realistic orbits based on gravitational mass, textures, and shadows. Additionally, I built a GUI allowing for the dynamic creation of planets / mass bodies without stopping the sim.


 

ADVANCED APP

First Place: Let It Run, Jordan Bourdeau, Spencer Brouhard, Colin Greenleaf, Noah Schonhorn

Mobile app developed using Swift UI with a Flask backend to enable rowing coaches to manage their team and practices more effectively.

 

Second Place: SnowCountry, Ryan Potter, Ryan Martin, James Castner

SnowCountry is a ski and snowboard tracking / social media app that caters to enthusiasts of all levels. It enables users to record their runs with detailed statistics like speed, distance, elevation, etc. The app offers robust map views of routes, allowing users to revisit their adventures. The app serves as a comprehensive winter sports companion, keeping track of users' skiing and snowboarding history and allowing them to name and save their favorite runs, plan routes, and share pictures and runs with their friends.

 

Third Place: RetroGames, Lychee, Tsering Lhakhang, Freyja Feeney, Tess Ritter, Chase Beaucage

A pet simulation game whose inspiration came from Webkinz, Pokemon, and Tamagachi. Immerse yourself in a pixelated pet simulation experience! Monitor and nurture your pet's hunger, social, energy, hygiene, and happiness levels through engaging mini-games and interactions. Balance care and fun as you collect apples to feed and earn coins. Keep your pet happy, healthy, and thriving in this unique, interactive world.


 

MACHINE LEARNING

First Place: DungeonCrawlRL, Gian Cercena

Using reinforcement learning, an agent was trained to escape randomly generated dungeons. OpenAI's gym, and stablebaselines3 were used to train the agent, and it learned to effectively escape within an allotted time.

 

Second Place: TensorFlask, Grayson Storer

An image classifier trained on the CIFAR-10 dataset with a bit of a twist. The classifier is stored locally on my computer and users can access it via a web app running on the Flask framework. The user submits a URL to an image which the web app will process and convert to a multidimensional array of floats from 0.0 to 1.0 representing pixel color values. This array is processed by the classifier which then predicts what the image is depicting. This result will then be displayed on the web app along with the image.


 

RESEARCH PROJECTS

First Place: Analyzing Network Traffic using Random Forest Classifier, Sam Clear, Protiva Sen, Mikey Hayes, Joe Liotta

We researched the effectiveness of the Random Forest Classifier model at differentiating Tor traffic from Non-Tor traffic collected from multiple devices browsing on Onion browsers to explore what impact machine learning algorithms could have on the future of online anonymity!

 

Second Place: Dancing in the Dark, CPG-less rhythmic entrainment, Emily Ertle

Legged locomotion presents a significant challenge in robotics. Many legged robots accomplish stable movement through models of “central pattern generators (CPGs),” a type of neural circuit that underlies biological rhythms from walking, flying, and breathing to patterned cognitive and central nervous system activity. While current CPG models are effective solutions for moving from point A to point B, they have several important drawbacks. These include reliance on complex, specialized neuron models and specific neural topology, which make the system difficult to modify or improve. Artificial CPG design also sacrifices stability for adaptability, as their mechanism largely prevents gait variation. In this work, we used a multi-objective evolutionary algorithm to produce virtual robots able to rhythmically entrain–synchronize foot strikes–to a simple metronome. Robots had an “auditory neuron” to sense metronome strikes and the selection algorithm favored individuals that both traveled away from the origin and demonstrated strong rhythmic alignment. Our preliminary results indicate a robot lacking a CPG can successfully entrain to a rhythmic stimulus. These findings indicate possible benefits to an evolutionary approach to locomotion including increased simplicity and potential for adaptability demonstrated here through gait synchronization.

 

Third Place: The evolution of different bet-hedging strategies in a variable environment, Csenge Petak, Lapo Frati

Studies in evolutionary biology show that different kinds of bet-hedging strategies (diversifying and conservative) can be selected for variable environments. We evolved a population of individuals and observed that both kinds of bet-hedging strategies can emerge from a simple evolutionary algorithm without any explicit incentive, which has important implications in both evolutionary computation and biology.