Academic Projects
Note: The projects that have restricted access are due to academic integrity policies at Purdue University.
Pacman Projects
Sep 2024 - Dec 2024
Reinforcement Learning, Supervised Learning, Stochastic/Adversarial Search  ]

Course: CS471 - Intro to Artificial Intelligence

Implement a variety of foundational AI concepts in the Pacman world.

  • Vanilla Search: A*, BFS, DFS
  • Stochastic/Adversarial Search: Minimax, Expectimax, Alpha-Beta Pruning
  • Reinforcement Learning: Q Learning, Approximate Q learning
  • Supervised Learning: Bayes Net, Hidden Markov Model
Web Server
Apr 2024
C++, HTTP, HTML, Concurrency  ]

Course: CS252 - Systems Programming

Built an HTTP server in C++ with support for iterative, fork-based, thread-based, and thread-pool concurrency models. Notable features include directory browsing with sorting, and HTTP statistics + logging.

Shell
Feb 2024 - Apr 2024
C++ Programming, Lex, Yacc  ]

Course: CS252 - Systems Programming

Implemented a custom Unix shell in C/C++, integrating a command parser, process creation + management, file redirection, piping, background execution, subshells, environment variables, and wildcard expansion.

C Compiler
Oct 2023
C Programming, Lex, Yacc, x86_64  ]

Course: CS250 - Computer Architecture

Developed a compiler for the SimpleC language, a subset of C with types long, long*, char*, char**, and void. The compiler generates x86-64 assembly code to produce executable files. Implemented parsing and code generation for arithmetic expressions, logical operations, and control flow structures (if/while/for). Implemented support for argument parsing, variable declarations, and recursive function calls.

Pascal Compiler
Nov 2021 - Dec 2021
Java, MIPS Assembly  ]

As a part of a project in highschool, I built a simple Pascal compiler capable of function definition and calls, variable storage, and basic arithmetic operations. The compiler was written in Java and generated MIPS assembly code. We used abstract syntax trees to represent the structure of the Pascal code and implemented a recursive descent parser to generate the assembly code. The project was a great learning experience for me, as it helped me understand the basics of compilers and how programming languages are translated into machine code.

Pacman with Gridworld
Nov 2020 - Dec 2020
Java, Gridworld  ]

A final project that I worked on in highschool. Using Java and the Gridworld package, I recreated the Pacman game with randomized ghost movement, a scoring system, and power pellets. This was one of my first programming projects, and it was a great opportunity for me to apply what I had learned in class to a fun and engaging project.