This repository serves as a comprehensive portfolio for my solutions and explorations throughout Harvard's CS50's Introduction to Artificial Intelligence with Python course. Each project within this course provided hands-on experience with fundamental AI concepts, from search algorithms and knowledge representation to machine learning and natural language processing.
CS50 AI with Python delves into the core principles of artificial intelligence, allowing learners to implement various AI algorithms from scratch. The course covers topics such as:
-
Graph Search Algorithms: Breadth-First Search, Depth-First Search, A* Search.
-
Knowledge Representation: Propositional Logic, First-Order Logic.
-
Constraint Satisfaction Problems: Solving problems with interdependent variables.
-
Uncertainty: Probability, Bayesian Networks.
-
Machine Learning: Supervised Learning (Classification, Regression), Unsupervised Learning, Reinforcement Learning.
-
Neural Networks: Perceptrons, Convolutional Neural Networks, Deep Learning.
-
Natural Language Processing: Tokenization, Parsing, Attention Mechanisms.
Each project in this repository resides on its own dedicated branch and includes a README.md file with specific details about its implementation, challenges, and solutions. Below is a list of the projects completed:
1) Degrees: Implemented a "Six Degrees of Kevin Bacon" style to find the shortest path between any two actors by choosing a sequence of movies that connects them.
2) Tic-Tac-Toe: Implemented an AI to play Tic-Tac-Toe optimally, using Minimax.
3) Knights: Implemented a solution solve logic "Knights & Knaves" puzzles.
4) Minesweeper: Implemented an AI for playing the game of Minesweeper.
5) Pagerank: Implemented an AI to rank web pages by importance.
6) Heredity: Implemented an AI to assess the likelihood that a person will have a particular genetic trait.
7) Crossword: Implemented an AI to generate crossword puzzles.
8) Shopping: Implemented a machine learning model to predict online shopper purchasing behavior.
9) Nim: Implemented an AI agent that learns to play the game of Nim optimally using reinforcement learning.
10) Traffic: Implemented a convolutional neural network for classifying traffic signs in a photogrph.
11) Parser: Implemented a natural language parser to parse sentences and extract noun phrases.
12) Attention: Implemented an AI to predict a masked word in a text sequence.
Python 3
-
numpy: For numerical operations.
-
pandas: For data manipulation (if used).
-
scikit-learn: For traditional machine learning algorithms and data splitting.
-
tensorflow / tf.keras: For building and training neural networks.
-
cv2 (OpenCV): For image processing tasks.
-
nltk: For natural language toolkit functions (if used).
-
transformers: For advanced NLP models (if used).