Projects

RESEARCH

This past summer I worked for Dr. Diana Franklin on computer science education research, in which I built upon the capabilities of LaPlaya, a block-based programming language similar to Scratch. I added new blocks in JavaScript on the back-end and implemented new curriculum modules on the front-end that incorporate Everyday Mathematics into computer science curricula. I also worked on data analysis, comparing learning progressions between different grade levels. The results were included in an academic paper titled Using Upper-Elementary student performance to understand conceptual sequencing in a blocks-based Curriculum to be presented at SIGSCE 2017 (Special Interest Group on Computer Science Education).

MAGIC: The Gathering ARBITRAGE

Worked on a team during Uncommon Hacks to create a program to determine which cards are likely to significantly increase in price soon by filtering out cards based on logical metrics and determining interest using Google Trends. I wrote a program in Python to parse through a csv file with over 28,000 cards’ information to extract card and set names.

DIGITAL FABRICATION

I am interested in using technology to create a tangible project especially 3D printing in particular. In the past I have worked with both laser and vinyl cutters. Below are some examples of my work.

CLASS PROJECTS

Pentago – created an automated version of the strategic board game, Pentago, in Typed Racket. The GUI allows players to make moves until either player gets the requisite 5 pieces in a row. The twist is that the board in divided into quadrants that can be rotated clockwise or counterclockwise. I also created five different AI algorithms that use varying strategies to play against a human opponent.

Binary Bomb – solved puzzles by reading through x86 assembly language in an executable binary to “defuse a binary bomb” by understanding the various functions used to check the password requirements

Cache Simulator/Optimizer – wrote a C program that simulates the behavior of a cache memory and optimized a matrix transpose function by minimizing cache misses

Shell – implemented a command line interpreter using parent/child processes to implement the exit, cd, pwd, and redirection commands. The project combined parsing, utilizing system calls, and practicing defensive programming.

Dynamic Storage Allocator – wrote a dynamic storage allocator using an explicit free list for C programs including malloc, free, calloc, and realloc with emphasis on improving space utilization and thoroughput.