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