Assignments and examples for the course in CS 5/7320 Artificial Intelligence taught at the Computer Science Department at SMU by Michael Hahsler. Slides and more for students taking the course can be found on Canvas.
The code examples follow the textbook Artificial Intelligence: A Modern Approach by Russel and Norvig. The code in this repository is intended to be simple to focus more on the basic AI concepts and less on the use of advanced implementation techniques (e.g., object-oriented design). More complex code examples accompanying the textbook can be found at the GitHub repository aimacode.
- Chapter 2: Intelligent Agents
- Chapter 3: Solving Problems by Search
- Chapter 4: Search in Complex Environments (Local Search)
- Chapter 6: Constraint Satisfaction Problem
- Chapters 12-13: Uncertainty and Probabilistic Reasoning
- Chapter 19: Learning from Examples (Machine Learning)
To install Python and Jupyter Notebook on your system, you can
- (prefered solution) install Docker and
execute
docker run -p 8888:8888 jupyter/datascience-notebook
to download and create a running container of the jupyter/datascience-notebook image. From now on, usedocker ps -a
to list containers and their container id,docker stop <container id>
anddocker start <container id>
to stop and start the container (do not userun
again because it will create a new container), or - install Python, Jupyter Notebook and the needed packages (e.g., via Anaconda), or
- use a service like the Google Colab environment (there are some limitations and you will have to copy some needed files to Google Drive).
If you are not familiar with Python then you should work through a tutorial like this to learn the basics about Python and the packages numpy
and pandas
. Another good source to learn Python are
the notebooks intro to Python
and intro to numpy and pandas
by Eric Larson. Some code examples that help with the assignments are available here.
How to use Jupyter Notebook is covered in many online tutorials like the Jupyer Notebook tutorial.
You can fork this repository to work on your solutions locally. Submit a pdf of the compiled notebook (either export the notebook as pdf or print to pdf). The notebook needs to be a complete project report with documentation (including your design choices), code and results (e.g., tables with simulation results) with a short discussion of what they mean. Use the provided notebook cells and insert additional code and markdown cells as needed.
All code and documents in this repository is provided under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License