Learning path
Artificial intelligence (AI)
Model agents and environments, search state spaces, use heuristics with A*, play games with minimax, solve constraints, and use local search.
About this subject
Artificial intelligence studies how to build agents that act effectively in their environments. The classical core is problem solving: describe the problem, then search for a sequence of actions that solves it, using knowledge about the problem to search efficiently.
This path covers intelligent agents, state-space search, A* search with admissible heuristics, adversarial search with alpha-beta pruning, constraint satisfaction, and local search. Learning methods are covered in the machine-learning and deep-learning paths. Each lesson uses a small, complete program that runs on its own. Python has the full sequence. The other languages listed below add lessons that use that language's own idioms and standard library, such as Java threads, C++ smart pointers, C# LINQ, or Node.js streams, and appear only for the topics the language supports. The programs are simplified models chosen to make an idea visible, so they are a foundation for further study rather than a replacement for a full course or for production-grade software.
Before you start: Recursion, queues, and graph search from data structures and algorithms.
- 1
Python
Readable code for automation, data, and first programs.
Intelligent agents and environments
Model an agent that perceives its environment and chooses actions, using a simple reflex vacuum cleaner.
State-space search: the water jug problem
Formulate a puzzle as states, actions, and a goal, and find a shortest solution with breadth-first search.
A* search with an admissible heuristic
Guide search toward the goal with a heuristic and compare how many cells it expands against uniform-cost search.
Adversarial search: minimax and alpha-beta pruning
Choose moves in a two-player game and prune branches that cannot change the result.
Constraint satisfaction: coloring a map
Assign values to variables so that every constraint holds, using backtracking search.
Local search: hill climbing for the 8-queens puzzle
Improve a complete state step by step, and use restarts to escape local optima.
- 2
C
Learn memory, pointers, and efficient systems programming.
- 3
C++
Build fast applications with modern types and classes.
- 4
Java
Understand object oriented programs and the JVM.
- 5
- 6
JavaScript
Add behavior to the web and build applications.
- 7
TypeScript
JavaScript with static types for dependable code.