Giter VIP home page Giter VIP logo

cs7320-ai's Introduction

Artificial Intelligence - Simple Python Code Examples and Assignments

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 information for students taking the course can be found on SMU's Canvas.

The code examples follow the textbook Artificial Intelligence: A Modern Approach by Russell 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.

Covered Chapters

Chapter Slides Code
1: Introduction to AI Slides No Code
2: Intelligent Agents Slides Code
3: Solving Problems by Search Slides Code
4a: Search in Complex Environments: Local Search Slides Code
4b: Search in Complex Environments: Search with Uncertainty Slides Nondeterministic Actions in Games
5: Adversarial Search and Games Slides Code
6: Constraint Satisfaction Problem Slides Code
7-9: Logical Agents Slides No Code
12: Uncertainty Slides Code
13: Probabilistic Reasoning Slides Code
19: Learning from Examples (Machine Learning) Slides Code

Installing Python and Jupyter Notebook

You can experiment with the code online without installation using Binder. Binder

To work on assignments, you need to install Python and Jupyter Notebook on your system. You can

  • [preferred solution] Install Docker and execute docker run -p 8888:8888 -e JUPYTER_ENABLE_LAB=yes jupyter/datascience-notebook to download and create a container that runs Jupyter Lab and bookmark the link, including the login token that you get. Details and configuration options can be found on the Jupyter Docker stack GitHub page) From now on, use docker ps -a to list containers and their container id, docker stop <container id> and docker start <container id> to stop and start the container (do not use run again because it will create a new empty container). For git, use the https protocol and not ssh.

  • Install Python, Jupyter Notebook, and the needed packages (e.g., via Anaconda).

Learning Python and Jupyer Notebook

If you are not familiar with Python, then you should work through one of the many Python tutorials (e.g., this tutorial) to learn the basics about Python and the packages numpy and pandas. Other good sources 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 notebooks is covered in many online tutorials like the Jupyer notebook tutorial.

Working on Assignments

You can fork this repository to work on your solutions with version control. The notebook needs to be a complete project report with documentation (including your design choices), code and the 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.

To submit your finished assignment for CS 5/7302, the compiled notebook into a pdf (either export the notebook as pdf or print to pdf). Do not submit the raw notebook or an html file since Canvas does not support instructor annotations for these file types.

License

All code and documents in this repository are provided under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License.

CC BY-SA 4.0

cs7320-ai's People

Contributors

mhahsler avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.