Distributed Algorithm Simulator

This application simulates - in a non-distributed environment - the execution of Distributed Leader Election Algorithms in a Ring Network. The application is comprised of two major parts; the Visual Simulator and the Textual Simulator. User has the ability to execute the algorithm, pause, reset, and step through it forward and backward, and also save the results to a text file.

Developed using the Microsoft .NET framework and Visual C#.
Download Source

Iterated Prisoner's Dilemma

Over the last few years I've developed a fascination of evolutionary biology, and taught myself a fair bit about it by reading books and watching documentaries. That's how I first came across the use of the simple game theory concept, the 'Prisoner's Dilemma', to explain the evolution of cooperation among individuals within a species as well as between different species. The famous evolutionary biologist Richard Dawkins did a great job of explaining the concept in his book 'The Selfish Gene', and I read the original researcher, Professor Robert Axelrod's book about it as well. This is an attempt to automate the game, so that people could pitch different strategies against each other and see the results for themselves.

It is developed it using the Microsoft .NET framework and WPF + MVVM pattern. The application is still in the development stage, and is only partially complete.

Download Source

MPI Programming

As part of my degree program, I took a Parallel Programming course. I used C-Language and Message Passing Interface (MPI) to write parallel programs to solve some complex problems. It is a subject I thoroughly enjoyed, and some of my work can be found at the link to the left.
Download Source