On here you'll find the following folders of programs, organized by language or, in the case of AI and Distributed Systems, by course:
Artificial Intelligence (Fall 2013 - these include my write-ups on each of the projects:
- HW1 - Implemented A* Algorithm to solve a series of 8-puzzle games
- HW2 - A program using Bayesian networks to learn missing data
- HW3 - Implemented Decision Tree Algorithm to model data from an online source.
- Nim Project - final project for this course for which I worked in a group, recreating the famous Nim Game. There is code for 2 possible strategies for the computer. I have also included the .jar file to view the interactive GUI my group member created for the grade, based on the first strategy.
Distributed Systems (Fall 2013):
- Project1 - Enacted a program that followed a narrative about visitors at Ellis Island attending 3 different lectures, each with Q&A sessions, speakers and a clock. Each visitor tries to get into a movie session and when the session is maxed out, they try to get into another one. This implementation makes use of monitors.
- Project2 - Implemented the same narrative as above, only this time with a multi-threaded server.
Python (assignments from the Advanced Programming Techniques Course I'm taking Spring 2014):
- longest.py finds the longest path within a binary tree
- mergesort.py performs the algorithm for mergesort on a given list
- qselect.py Quick Select with Randomized Pivot Here, we are looking for the i-th smallest value in list a. This method returns that value. NOTE: assumes the values are distinct
- qsort.py Working with a function that returns a tree with []'s representing the nodes and sub-tree, built on top of this, a search function, an insert function and a sorted function (which returns the numbers in the tree, sorted)
Objective-C (while interning at TeliApp Summer 2012):
- iBox_initNetworkCommunication: One of the methods I wrote for the app I created called iBox Remote File Access.
This boolean method creates a connection to the server (which in the case of this app, is your home PC) and returns true if connection is successful and false otherwise. I am not usually so stingy on code comments, but hopefully this is easy enough to follow.
C++ (these were hw assignments during my Algorithmic Problem Solving in C++ course from Spring 2012):
- memoized fibonacci program
- recursive 8 queens program
- shortestPath program
- stable marriage program
Java (these were assignments during my Data Structures course from Fall 2012):
- Data Structures Project 1 - a program that takes in two large numbers, saves each into separate linked lists and then performs multiplication on the two large numbers and outputs the product.
- Data Structures Project 2 - a program that takes in a list of numbers and outputs a binary tree of those numbers. (This was an assignment during my Data Structures course from Fall 2012)
- Data Structures Project 3 - a program that does the Chromatic Number problem. It colors a graph in such a way that no two adjacent nodes have the same color. (This was an assignment during my Data Structures course from Fall 2012)