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.



Free Harvard Course: Introduction to AI with Python
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:

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.