I'm currently a student at Virginia Tech majoring in Computer Science and minoring in Mathematics. I've always had a passion for programming and it only grew since joining university. Most see an interface when they use a computer but I wanted to know how they work. I've always yearned to learn the theories and methodologies that were behind the scenes.
The code implements the Ford-Fulkerson algorithm to find the maximum flow in a flow network with a source and a sink. It creates a residual graph with the given capacities and then iteratively finds an augmenting path from the source to the sink using Breadth First Search. Along the augmenting path, it updates the residual capacities of the edges and adds the path flow to the overall flow. Finally, it returns the maximum flow and prints the augmenting paths and the total flow.
The project uses Prim's algorithm to find the Minimum Spanning Tree (MST) of a graph represented by an adjacency matrix. The algorithm initializes a boolean array that keeps track of which vertices are included in the MST. Initially, only the source vertex is included in the set. Utilizing breadth-first search, the algorithm traverses the tree then repeatedly selects the vertex with the minimum weight that is not already included in the MST and adds it to the set. The weight of the MST is updated at each step until the all vertices are included.
The project is an application that automates the placement of applicants on planets according to their skills, desired planet, the planet’s capacity/minimum-skill-requirement. The application uses object-oriented programming principles to implement several classes such as "Planet", "Person", "Skillset", "ColonyCalculator", and "ArrayQueue" to handle the calculations and decision-making for the program. Additionally, a graphical user interface (GUI) was created to visualize the process, applicants, and planets. The GUI is implemented using JavaFX and contains several components such as buttons, text fields, and shapes. The GUI window displays a queue of applicants waiting to be placed on planets and three planets with different colors representing their capacity. This project was implented for "CS:2114" to demonstrate proficiency in several programming concepts such as object-oriented programming, data structures, and graphical user interface design.
The Tower of Hanoi is a famous mathematical puzzle that consists of three rods and a set of disks of different sizes. The puzzle starts with the disks in a neat stack in ascending order of size as demonstrated in the figure above. The goal is to move the entire stack to third rod while obeying the following rules: only one disk can be moved at a time, each move consists of taking the upper disk from one of the stacks and placing it on top of another stack or an empty rod, and no disk may be placed on top of a smaller disk. This project consists of four classes: PuzzleWindow, Disk, LinkedStack, and HanoiSolver. The solver class recursively moves the disks from one tower to another using the rules of the Tower of Hanoi problem.
Major in Computer Science | Minor in Mathematics
Here is some relevant coursework I've completed:
Associates in Computer Science
Here is some relevant coursework I've completed: