GithubHelp home page GithubHelp logo

cs50ai's Introduction

CS50AI Repository

Welcome to my CS50AI repository! This repository contains all the projects and assignments completed as part of the CS50AI course.

About CS50AI

CS50AI is a course offered by Harvard University that introduces students to the exciting field of Artificial Intelligence. Throughout this course, students learn various AI concepts, algorithms, and techniques, using Python and other tools. The projects in this repository showcase the implementation and application of different AI techniques, providing a hands-on learning experience.

Projects

Project 0: Degrees

Description: In this project, I implemented a program that determines the degree of separation between two actors by finding the shortest path between them in a movie database.

Files:

  • degrees.py
  • small

Project 0b: Tic Tac Toe

Description: In this project, I implemented a Tic Tac Toe game using Python and utilized the Minimax algorithm to create an AI player that plays optimally. To try it, please make sure to run pip3 install -r requirements.txt in the directory of the project to install the required Python package (pygame). After that, you should be able to run python runner.py to play against the AI.

Files:

  • tictactoe.py
  • runner.py
  • requirements.txt

Project 1a: Knights and Knaves

Description: In this project, I implemented a program to solve logic puzzles involving Knights and Knaves. Knights always tell the truth, while Knaves always lie. The goal is to determine who is a Knight and who is a Knave based on the statements provided by characters in the puzzle.

Files:

  • logic.py
  • puzzle.py

Project 1b: Minesweeper

Description: In this project, I implemented a Minesweeper game. Minesweeper is a classic puzzle game where the player must uncover hidden mines on a grid while avoiding triggering them. The game incorporates AI techniques to provide hints and improve gameplay.

Files:

  • minesweeper.py
  • runner.py
  • requirements.txt

Project 2a: PageRank

Description: In this project, I implemented the PageRank algorithm, which is used to rank web pages based on their importance. It involves both a sampling method and an iterative method to estimate PageRank values.

Files:

  • pagerank.py

Project 2b: Heredity

Description: In this project, I implemented a program to predict the probability of a trait being passed on from parents to offspring based on genetic data. The project involves calculating conditional probabilities using the Bayesian network model.

Files:

  • heredity.py

Project 3: Crossword

Description: In this project, I implemented an AI program to solve crossword puzzles. The program uses constraint satisfaction techniques and word crossings to fill in crossword grids.

Files:

  • crossword.py
  • generate.py

Project 4a: Shopping

Description: In this project, I build a nearest-neighbor classifier to predict whether a user intends to make a purchase during an online shopping session. The classifier uses various user session data, such as page visits, session duration, and more.

Files:

  • shopping.py
  • shopping.csv

Project 4b: Nim

Description: In this project, I implemented the game of Nim and created an AI player using Q-learning. Nim is a classic two-player mathematical game where players take turns removing items from distinct heaps. The objective is to be the player to remove the last item or items from the last heap.

Files:

  • nim.py
  • play.py

Project 5: Traffic

Description: In this project, I implemented a deep convolutional neural network to classify traffic signs with high accuracy. The goal is to train a model that can recognize and categorize traffic signs from images.

Files:

  • traffic.py

Project 6a: Parser

Description: In this project, I implemented a natural language processing parser using context-free grammar rules. The parser analyzes sentences and identifies noun phrase chunks within the sentences.

Files:

  • parser.py

Project 6b: Attention

Description: In this project, I implemented a system to generate predictions for masked words in a text using a pre-trained masked language model. The project also includes the visualization of attention scores for each token in the input text.

Files:

  • mask.py

Feel free to explore each project's directory for more details and code!

cs50ai's People

Contributors

alessandropaolini7 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.