This repository contains my code from Brandeis University's COSI 101A Fundamentals of Artificial Intelligence, which I took in Spring 2021 with Professor Jordan Pollack (referred to by me and me alone as the Olin-eqsue FAI, pronounced /faye/).
NOTE: Academic dishonesty includes—among other things—submitting someone else's code as your own. Academic honesty is extremely important to me, and I expressly prohibit the use of any code in this repository in an academically dishonest way, for COSI 101A or any other course.
Homework 1 involved building an algorithm to solve puzzles in the following form (from the assignment):
There are n+1 regular polygons with n sides, each a permutation of the n numbers (or colors or shapes) on each side. The problem is to arrange the polygons in a ring with one in the center, such that the numbers on each adjacent edge will match. In the commercial version, there are 7 pieces, each with 6 possible rotations, and hexagons tile the plane. But we can generalize. 4 triangles would fold up to a pyramid, 5 squares give you 5/6ths of a cube, 6 pentagons give you a bowl, and so on, even though 11 decagons or 13 dodecagons will not tile or fold up.
Documentation of my approach, along with the report (Jupyter Notebook, PDF) I thatturned in, can be found in the hw1/
folder, as can thoroughly-documented source code.
Homework 2 involved building several algorithms to play Nannon, a simplified version of backgammon:
Documentation of my approach, along with the report (Jupyter Notebook, PDF) that I turned in, can be found in the hw2/
folder, as can thoroughly-documented source code.
Homework 3 involved building a simulation of the game Flappy Bird and training a deep neural network to play it.
Documentation of my approach, along with the report (Jupyter Notebook, PDF) that I turned in, can be found in the hw3/
folder, as can thoroughly-documented source code.