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

Achieved near 100% success rate across varied Pac-Man game scenarios by leveraging a variety of intelligent search, planning, and decision-making strategies

  • Applied Minimax tree search to model adversarial ghost behavior and minimize worst-case outcomes.
  • Extended Minimax to Expectimax for modeling probabilistic ghost behavior, incorporating Alpha-Beta pruning to reduce computational overhead.
  • Trained Q-learning and Approximate Q-learning agents to achieve optimal action selection even in large state spaces.
  • Used Hidden Markov Models and Bayesian Networks to model partially observed ghost behavior and uncertain environment dynamics, improving performance at more difficult levels.
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.