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.
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.
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.
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.
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.
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.