CS50 AI Projects

Here are some of the projects I have completed for Harvard's CS50 Introduction to Artificial Intelligence with Python:

Back to All Projects

Search Algorithms

CS50 AI Degrees Image

Degrees

Implementation of a Breadth-First Search Algorithm to find the degrees of separation between two selected actors, by films they have starred in.

CS50 AI TicTacToe Image

Tic Tac Toe

Implementation of a Tic Tac Toe AI using a Minimax Algorithm with Alpha-Beta pruning. Randomisation varies the AI's moves where several have equal utility.


Knowledge

CS50 AI Knights Image

Knights

Solutions to 'Knights and Knaves' style logic puzzles using Propositional Logic and Model Checking.


CS50 AI Minesweeper Image

Minesweeper

An AI that plays the classic Windows 'Minesweeper' game, using a knowledge base and inference to generate new knowledge about the game state.


Uncertainty

CS50 AI PageRank Image

Pagerank

An AI that ranks web pages by importance - similar to the Google PageRank AI - using both a Random Surfer Model and an Iterative Algorithm.


CS50 AI Heredity Image

Heredity

An AI that predicts the likelihood of members of a family having a 0, 1, or 2 copies of a gene, and a trait caused by that gene, using a Bayesian Network and Inference by Enumeration.


Optimisation

CS50 AI Crossword Image

Crossword

An AI that generates crossword puzzles, by treating the crossword generation as a constraint satisfaction problem and using a backtracking search algorithm.


Learning

CS50 AI Shopping Image

Shopping

An AI that predicts whether online shopping customers will complete a purchase, using the Scikit-Learn k-Nearest Neighbour classifier on a customer dataset.


CS50 AI Nim Image

Nim

An AI that teaches itself to play the game 'Nim' using Reinforcement Learning. A Q-Learning algorithm with ε-Greedy Decision Making is used to estimate the value of actions for game states.


Neural Networks

CS50 AI Traffic Image

Traffic

An AI that identifies which traffic sign appears in a photograph, using a TensorFlow convolutional neural network.



Language

CS50 AI Parser Image

Parser

An AI that can parse sentences and extract noun phrases, using the context-free grammar formalism and the Python nltk library.


NLTK

CS50 AI Parser Image

Questions

An AI that answers questions, by determining the most relevant document(s) using tf-idf ranking and then extracting the most relevant sentence(s) using idf and a query term density measure.

NLTK