School Projects

Here are some interesting school projects I’ve worked on during school. Code for these projects can be provided upon request.

StackLang Interpreter (CS2500A) Wrote an interpreter for a small, stack-based programming language with lambdas, thunks and continuations in Racket’s Intermediate Student Language DSL. Continued to TA this course and teach other students how to craft their own interpreters following similar principles.

MiniCraft (CS2500A): Wrote a top-down two-dimensional variation of Minecraft in Racket’s ISL DSL wherein players can traverse a world, place and destroy different types of blocks with special effects such as exploding TNT. Interfaced with a course-administered server to interact with other players in real time.

Tower Defense (CS2510A): Designed and developed a tower defense game in Java. Featured a currency system, dynamically placeable towers with different effects (i.e. freezing surrounding enemies, shooting ahead of the moving objects from a long distance to hit them) along with enemies able to move along the track in real time.

Seam Carving Algorithm (CS2510A): Implementrd a seam-carving algorithm to compress the least important parts of an image while preserving the most detailed, removing both horizontal and vertical seams to do so. The algorithm is able to record, reverse and replace the seams as needed.

Maze Solving Algorithm (CS2510A): Wrote different implementations of an efficient maze-solving algorithm in Java, then displayed the different algorithms solving the maze in real time.

Animator (CS3500): Designed and developed an Animator in Java using the Swing UI library and a model-view-controller framework designed to allow the view to be hot-swappable as needed. Practiced many Java design patterns and utilized some neat data structures.

Efficient Memory Allocator (CS3650): Wrote implementations of malloc(), calloc() and free() in C that were faster than reference GNU Core Utils implementations on provided edge cases.

Pacman AI (CS4100): Implemented a variety of artificial intelligence algorithms to assist pacman to consume pellets while avoiding multiple ghosts. Worked with a variety of different algorithms, from particle filtering to deep learning.