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
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
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
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
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
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
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
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
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.