Free Harvard Course: Introduction to AI with Python
Looking for a great course to learn Artificial Intelligence with Python? Check out this free course from Harvard University.
Image from Author
One of the biggest problems that beginners face when trying to learn artificial intelligence is choosing the best resource. Because there are a bazillion resources out there. CS50’s Introduction to Artificial Intelligence with Python taught at Harvard University is an excellent resource to learn AI.Â
Over the course of 7 weeks, you’ll first learn fundamental concepts of mathematical logic and graphs search algorithms. Then, you’ll also get to explore machine learning, neural networks, and language models. More importantly, you’ll also build several interesting projects as you work your way through this course.Â
If you want to refresh your programming fundamentals before taking this course, check out CS50x Introduction to Computer Science—which is also free—to get up to speed with programming and computer science fundamentals.
Next, let's review the course contents.
Course link: CS50's Introduction to Artificial Intelligence with Python
1. SearchÂ
Given two points A and B, search algorithms aim at finding the path between A and B. And the optimal solution is often the shortest path between A and B. Examples include navigator apps that find the shortest route between any two places.
This first module on search covers the following topics:
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
- Greedy best-first search
- A* searchÂ
- Minimax
- Alpha-beta pruning
The following are the projects that you’ll build for this module:
- Degrees of separation between two actors (inspired by the Six Degrees of Kevin Bacon game)
- An AI to play tic-tac-toeÂ
Link: Search
2. Knowledge
The second module focuses on knowledge-based agents that use existing knowledge to draw conclusions.Â
So the search (first module) and the knowledge modules are based on graph algorithms and mathematical logic. You will get to learn about machine learning and optimization in the subsequent modules.
This second module on knowledge covers the following:
- Propositional logicÂ
- Entailment
- InferenceÂ
- Model checkingÂ
- ResolutionÂ
- First order logic
And the projects that you will build are:
- Knights: a program to solve logic puzzles mind sweeper and AI to play building anÂ
- Building an AI to play minesweeper
Link: KnowledgeÂ
3. UncertaintyÂ
Probability is one of the most important concepts when learning machine learning. This module teaches you essential concepts in probability and random variables. You'll get to build two interesting projects to wrap up this module.
This module covers:
- ProbabilityÂ
- Conditional probabilityÂ
- Random variablesÂ
- Independence
- Bayesian networksÂ
- SamplingÂ
- Markov modelsÂ
- Hidden Markov modelsÂ
The projects you’ll build are:
- An AI that ranks web pages by importanceÂ
- An AI that assesses the likelihood that a person has a genetic trait
Link: Uncertainty
4. OptimizationÂ
Optimization is an important math tool that allows you to solve a broad range of problems. In essence, optimization allows you to find the most optimal solution from a set of solutions.
This module covers the following optimisation algorithms:
- Local searchÂ
- Hill climbingÂ
- Simulated annealing
- Linear programmingÂ
- Constraint satisfactionÂ
- Backtracking search
For this module, you will build an AI that generates crossword puzzles.
Link: Optimization
5. LearningÂ
This is the module in which you get to explore machine learning and the nitty-gritty of various machine learning algorithms. You’ll learn supervised, unsupervised, and reinforcement learning paradigms.
The topics covered include:
- Nearest-neighbor classificationÂ
- Perceptron learningÂ
- Support vector machineÂ
- RegressionÂ
- Loss functionsÂ
- RegularizationÂ
- Markov Decision ProcessÂ
- Q learningÂ
- K-Means clusteringÂ
The following are the projects for this module:
- Predicting whether a customer will complete an onlineÂ
- AI that learns to play Nim using reinforcement learning
Link: Learning
6. Neural NetworksÂ
This module focuses on deep learning fundamentals. In addition to learning the foundations of deep learning, you’ll also learn how to build and train neural networks with TensorFlow.
Here’s an overview of the topics that the neural networks module covers:
- Artificial neural networksÂ
- Activation functionsÂ
- Gradient descentÂ
- BackpropagationÂ
- OverfittingÂ
- TensorflowÂ
- Image convolution Â
- Convolutional neural networksÂ
- Recurrent neural networksÂ
To wrap up your learning, you’ll work on a traffic sign recognition project.Â
Link: Neural networks
7. LanguageÂ
This final module focuses on working with natural language. From the basics of language Processing to transformers and attention, here is the list of topics this module covers:
- SyntaxÂ
- SemanticsÂ
- context free grammarÂ
- N-gramsÂ
- Bag of wordsÂ
- AttentionÂ
- TransformersÂ
Here are the projects for this module:
- A parser that parses sentences and extracts noun phrasesÂ
- Masked word predictionÂ
Link: Language
Wrapping Up
From graph algorithms to machine learning, deep learning, and language models—this course covers several foundational topics in AI.Â
I’m sure doing the lectures, reviewing lecture notes, and working on projects every week will be a great learning experience. Happy learning!
Bala Priya C is a developer and technical writer from India. She likes working at the intersection of math, programming, data science, and content creation. Her areas of interest and expertise include DevOps, data science, and natural language processing. She enjoys reading, writing, coding, and coffee! Currently, she's working on learning and sharing her knowledge with the developer community by authoring tutorials, how-to guides, opinion pieces, and more. Bala also creates engaging resource overviews and coding tutorials.