A complete collection of all labs and projects from Harvard’s CS50 Introduction to Artificial Intelligence with Python.
This repository represents my full journey through CS50AI — a hands‑on exploration of classical and modern AI techniques, completed with clean code, documentation discipline, and a focus on understanding the underlying concepts.
- Python (intermediate–advanced)
- Search algorithms (BFS, DFS, A*)
- Graph modeling and shortest‑path reasoning
- Logic and inference (model checking, propositional logic)
- Constraint satisfaction (CSPs, backtracking, heuristics)
- Probability and Bayesian networks
- Machine learning (k‑NN, evaluation metrics)
- Deep learning (CNNs with TensorFlow/Keras)
- Natural language processing (n‑gram models, parsing)
- Transformer attention mechanisms
- Error analysis and model interpretation
- Clean code organization and documentation
Each lab is self‑contained inside its folder, with its own code, data, and README.
| Folder | Topic | Description |
|---|---|---|
| lab0-search/ | Search | Graph search algorithms (BFS, DFS, A*) and shortest‑path reasoning |
| lab1-knowledge/ | Logic | Propositional logic, model checking, inference |
| lab2-minesweeper/ | Constraint Satisfaction | Knowledge representation, CSPs, safe/unsafe inference |
| lab3-heredity/ | Probability | Bayesian networks, joint probability, inheritance modeling |
| lab4-crossword/ | CSPs | Backtracking search, arc consistency (AC‑3), heuristics |
| lab5-shopping/ | Machine Learning | k‑NN classification, evaluation metrics, ML pipelines |
| lab6-traffic/ | Deep Learning | CNNs, image classification, TensorFlow/Keras |
| lab7-language/attention/ | NLP / Transformers | Implementing scaled dot‑product attention and analysis |
| lab7-language/parser/ | NLP / Parsing | Context‑free grammar parsing and noun‑phrase extraction |
All labs have been:
- fully implemented
- validated with
check50 - submitted via
submit50 - documented and organized
This repository reflects the complete, end‑to‑end journey through CS50AI.
- All work was completed locally on a Linux workstation using virtual environments and modular folder organization.
- Each lab folder contains its own README and supporting files.
- This repo is part of a broader effort to build a professional portfolio of AI and Python projects.