My projects

In this project I implemented the classic strategy game of Nim using Q-learning, a reinforcement learning technique. In Nim, two players alternately remove objects from one of three piles, and the goal is to avoid taking the last object. The project showcases the application of Q-learning to derive optimal strategies for both players in various game configurations. Since this was a school project I am unable to make it public, if you would like to see the code I can grant you access or make it public for a small period of time.

Q-Learning Nim Game

In this project I developed a Naive Bayes classifier for email classification into two categories: spam and ham (non-spam). The project is focused on understanding and implementing the principles of probabilistic classification using Naive Bayes algorithms. The classifier is trained on a dataset of pre-classified emails, learning the distinction between spam and ham based on word frequencies.Since this was a school project I am unable to make it public, if you would like to see the code I can grant you access or make it public for a small period of time.

Naive Bayes Email Classifier

In the Rhodes Ramble project, I successfully developed a clone of the Yik Yak app, a client-server based social media platform focusing on semi-anonymous communication. This comprehensive project involved creating a detailed protocol for client-server interaction using sockets and threads, enabling real-time messaging and user interactions such as posting, commenting, and voting. I implemented both the client and server-side protocols, ensuring robust and efficient communication. A key aspect of my work included introducing multithreading in the server component to handle multiple simultaneous user connections, showcasing my skills in concurrency and network programming. Since this was a school project I am unable to make it public, if you would like to see the code I can grant you access or make it public for a small period of time.

Yik-Yak / Rhodes Ramble

This project involves the creation of an AI for playing Connect Four, with the implementation of advanced algorithms such as minimax with alpha-beta pruning, and a added heuristic. The goal is to demonstrate proficiency in algorithm design, game theory, and Java programming. Since this was a school project I am unable to make it public, if you would like to see the code I can grant you access or make it public for a small period of time.

Connect Four AI using Minimax and Alpha-Beta Pruning in Java

I developed a route-finding application using the A* algorithm, focusing on computing the fastest driving routes in Memphis. The program reads a map file, specifically "memphis-medium.txt," and processes it to establish a network of locations and roads. Users input start and end location IDs, and the program calculates the quickest route between these points based on road speed limits. A crucial aspect of the program is its ability to factor in real-time driving scenarios, such as the option for the user to 'speed' on certain road segments, effectively halving the travel time on those segments. Since this was a school project I am unable to make it public, if you would like to see the code I can grant you access or make it public for a small period of time.

A* Algorithm GPS Navigation