Jonathan Sullivan's Projects
Explored Constraint Satisfaction Problems by implementing the N-Queens problem using symbolic constraints in a Jupyter notebook, and solving it using the Backtracking Search algorithm from AIMA.
In this project, I defined a group of problems in classical PDDL (Planning Domain Definition Language) for the air cargo domain. I then set up the problems for search, experimented with various automatically generated heuristics, including planning graph heuristics, to solve the problems, and then provided an analysis of the results. Additionally, I wrote a short research review paper on the historical development of planning techniques and their use in artificial intelligence.
In this project, I built a fully functional skill for Amazon’s Alexa that provides year-dated facts from AI History (or some other History of my choosing). Through the process, I got to use the Alexa Skills Kit (ASK) - a current state of the art API for building voice systems.
Ball Launcher Simulator
This repository contains the Ball Launcher Simulator project developed as part of the interview process with Standard Bots. It includes all necessary files and documentation for setting up and running the simulation.
Homepage for barbie lash studio
I worked with real data provided by Bay Area Bike Share to determine differences in usage between commuters and tourists ridership patterns, average duration of trips, and more!
In this project, I used IBM Watson's NLP Services to create a simple question-answering system. I first used the Discovery service to pre-process a document collection and extract relevant information. I used the Conversation service to build a natural language interface that can respond to questions.
Built an optimal model based on a statistical analysis to estimate the best selling price for a client’s home.
Pong Clone
Analysis of the results of an experiment testing the optimal length of chopsticks. This is a project in the Udacity Data Analyst Nanodegree Program.
Adapted remake of the classic frogger game given assets and game loop engine from Udacity. This is the third project in the Udacity Frontend Nanodegree Program.
In this environment, two agents control rackets to bounce a ball over a net. If an agent hits the ball over the net, it receives a reward of +0.1. If an agent lets a ball hit the ground or hits the ball out of bounds, it receives a reward of -0.01. Thus, the goal of each agent is to keep the ball in play. The observation space consists of 8 variables corresponding to the position and velocity of the ball and racket. Each agent receives its own, local observation. Two continuous actions are available, corresponding to movement toward (or away from) the net, and jumping. The task is episodic, and in order to solve the environment, your agents must get an average score of +0.5
For this project I implemented my own version of a smart pointer. I thought of this as implementing my own garbage collector, to use a concept from other programming languages. Building this project helped me understand both how to work with pointers and references, and also why smart pointers are so important to modern C++ programming.
For this project I used A* search, OpenStreetMap and the 2D visualization library IO2D to build a route planner that displays a path between two points on a map.
In this project, I got a chance to put C++ OOP into action! I wrote a Linux system monitor with similar functionality to the widely used htop application. This will only provided me with more familiarity the Linux operating system, but also gave me insights into how a collection of objects can function together in C++ to form an exciting and complete application!
Use unsupervised learning techniques to see if any similarities exist between customers and how to best segment customers into distinct categories.
This is the eighth project in the Udacity Data Analyst Nanodegree Program
Report using R and apply exploratory data analysis techniques. This is the fifth project in the Udacity Data Analyst Nanodegree Program.
An algorithm to identify Enron Employees who may have committed fraud based on the public Enron financial and email dataset. This is the sixth project in the Udacity Data Analyst Nanodegree Program.
Investigation using NumPy and Pandas of one of Udacity's curated datasets. This is the third project in the Udacity Data Analyst Nanodegree Program.
Data visualization from a data set that tells a story and highlights trends or patterns in the data. Used either dimple.js and d3.js to create the visualization. This is the seventh project in the Udacity Data Analyst Nanodegree Program.
Cleaned OpenStreetMap data for a part of the world. This is the fourth project in the Udacity Data Analyst Nanodegree Program.
Repo for the Deep Reinforcement Learning Nanodegree program