The AIMA algorithms, ready to leave the textbook
It turns the pseudocode in Russell and Norvig's standard AI textbook into working Python you can execute, test, and break.

What it does
aima-python is the companion code for Artificial Intelligence: A Modern Approach, the Russell and Norvig textbook. It implements the book’s pseudocode algorithms in Python 3.7+, covering search, games, constraint satisfaction, logic, and planning. Each topic gets a module with runnable implementations, explanatory Jupyter notebooks, and lightweight tests.
The interesting bit
The project updated for the book’s 4th edition by inverting the usual code-notebook relationship: the .py files are auto-generated from Jupyter notebooks, which serve as the primary documentation. It also modernized the codebase with type hints, dataclasses, and f-strings.
Key highlights
- Broad coverage of classical AI: A*, minimax, alpha-beta, CSP solvers, propositional and first-order logic, SATPlan, and more.
- Notebooks are the source of truth; readable
.pyfiles are generated from them. - Uses modern Python 3.7 features like type hints,
dataclasses, and f-strings. - Includes a public algorithm index tracking implementation status, tests, and notebook coverage.
- Runs in a browser via Binder without local setup.
Caveats
- The algorithm index is still being updated for the 4th edition, and some entries—such as
HybridWumpusAgent—lack any implementation, tests, or notebooks. - Datasets live in a separate
aima-datasubmodule that the README warns can take a while to fetch. - Algorithms marked with an asterisk are noted as “not fully implemented.”
Verdict
Students and self-learners working through AIMA will find this indispensable; if you aren’t following the book or an AI course, it’s well-organized reference material you can largely find in dedicated libraries.
Frequently asked
- What is aimacode/aima-python?
- It turns the pseudocode in Russell and Norvig's standard AI textbook into working Python you can execute, test, and break.
- Is aima-python open source?
- Yes — aimacode/aima-python is open source, released under the MIT license.
- What language is aima-python written in?
- aimacode/aima-python is primarily written in Jupyter Notebook.
- How popular is aima-python?
- aimacode/aima-python has 8.8k stars on GitHub.
- Where can I find aima-python?
- aimacode/aima-python is on GitHub at https://github.com/aimacode/aima-python.