Mobile Sensor Network Relay
An implementation of a mobile sensor network, delivering data packets through connected nodes in a graph. The objective of the proposed network structure
is to minimize delays in the data collection and communication processes. Required knowledge of
Python, select() calls, graph theory, and socket programming.
 Knight's Tour Solver
A single-process multi-threaded system that solves the knight’s tour problem, i.e., can a knight move over all squares exactly once on a given board?
The program determines whether a valid solution is possible on an m × n board, accomplished by simulating valid moves.
When multiple moves are detected, each possible move is allocated to a new child thread, forming a tree of possible moves. Written in C, demonstrated
knowledge of mutexes, locks, multithreading, memory allocation, and concurrency.
 CPU Scheduling Simulator
Understanding the working of scheduling algorithms provides us with a knowledge of how to analyze the scheduling of processes, resource utilization, and performance in real-time applications.
Various algorithms perform differently and have their unique set of characteristics, which are advantageous depending on the scienario and application. This simulator enables us to visualize the characteristics
of the First Come First Serve, Round Robin, Shortest Job First, and Shortest Remaining Time algorithms. Implemented in C++, this project required knowledge of I/O programming, threading & concurrency, process management, and synchronization.
 N-Gram Statistics and Automated Text Summariazation
A regex pattern-matching algorithm that accepts input from the user to calculuate interesting N-gram statistics on a given webpage or document.
Written in C, made use of hash functions and complex data structure techniques.
 Word Guessing Game
Allowed users to play a random word guessing game over a TCP connection via netcat. After a random word is generated, the user interacts with a bot
to input, or guess, the correct word after a series of hints.
 Bash Shell Implementation
A rudimentary interactive shell similar to that of bash. Prompts the user to enter a command, parses the given command, locates the command
executable, then executes the given command. Written in C, required knowledge of process creation, process management, and inter-process communication via fork(), wait(), waitpid(), pipe(), etc.
 Rubiks Cube Solver using A*
(In-Process) Simulation of a Rubiks cube in Python, with an active GUI representing the rotations of a cube. Provided the option, the simulator solves the Cube
via a human-based algorithm, or the A* path finding algorithm.