Implementation Notes for CSC 3400

This document is a running commentary on the implementation of the Python code for Russell and Norvig's AIMA text to a PyCharm environment, for teaching CSC 3400 at Belmont University. It is intended primarily for students in the course, but may also be useful for instructors in similar courses.

My background: I have taught AI with a variety of textbooks over 25 years, and started using the 2nd edition of AIMA back when it was scheme-based. I switched to Java eight years ago, because we teach Java in the programming I/II sequence at Belmont. I am switching to Python this year, using PyCharm-EDU as the development platform.


First steps

  • AIMA has a tests folder in aima-code, and PyCharm allowed me to right-click the folder and run all 102 tests, which passed. Whew!
  • Better yet, I set a break point in the best_first_graph_search method of, right-clicked file in the tests folder, and launched the debugger; PyCharm sped to the breakpoint, where I could watch Arad give way to Zerind, then Timisoara, etc. Sweet!


  • The Agent, Environment, Percept and Actuator classes are all crammed into