This repository contains all the projects for Harvard's Introduction to Artificial Intelligence with Python, from the CS50 series.
Lecture 0 - Search
Search problems involve an agent that is given an initial state and a goal state, and it returns a solution of how to get from the former to the latter
- Search Problem Terms
- Algorithms
- Adversarial Search
Lecture 1 - Knowledge
Humans reason based on existing knowledge and draw conclusions. The concept of representing knowledge and drawing conclusions from it is also used in AI, and this lecture will explore how we can achieve this behavior
- Propositional Logic
- Inference
- First Order Logic
Lecture 2 - Uncertainty
Last lecture shows how AI can represent knowledge and from that, derive new knowledge. But in reality, usually we don't have that much knowledge for certain. In fact, most of the times AI can only have partial knowledge and leaving some space for uncertainty. Still, we would want the AI to make the best possible decision during these situations
- Probability
- Random Variables
- Sampling
Lecture 3 - Optimization
Optimization is choosing the best option from a set of possible options. We have already encountered problems where we tried to find the best possible option, such as in the minimax algorithm, and this lecture will learn about tools that we can use to solve an even broader range of problems
- Local Search
- Linear Programming
- Constraint Satisfaction
Lecture 4 - Learning
Machine learning provides a computer with data, rather than explicit instructions. Using these data, the computer learns to recognize patterns and becomes able to execute tasks on its own
- Supervised Learning
- Reinforcement Learning
- Unsupervised Learning
Lecture 5 - Neural Networks
AI neural networks are inspired by neuroscience. In the brain, neurons are cells that are connected to each other, forming networks. Each neuron is capable of both receiving and sending electrical signals. Once the electrical input that a neuron receives crosses some threshold, the neuron activates, thus sending its electrical signal forward
- Structure and Algorithms
- Computer Vision
- Recurrent Neural Networks
Lecture 6 - Language
Natural Language Processing spans all tasks where the AI gets human language as input. It can be challenging since natural languages have complex syntax and are sometimes ambiguous
- Syntax
- Bayes & TF-IDF
- Semantics