Due dates for assignments that require work to be turned in are posted on the calendar. Use the ICAL address to add this to a personal calendar if you wish.
- Familiarize yourself with Python
Please note that all dates except the final exam are tentative. My primary concern is that you master the material and the schedule may be adjusted in either direction to optimize comprehension and scope of material.
- Jan 18 – Introduction, agents, and Python (1, 2)
- Jan 23 – Intro contd, Search (3)
- Jan 30 – Search contd, Beyond classical search (4.1-4.3)
- Feb 6 – Beyond classical search contd.
- Feb 13 – Adversarial search (5)
- Feb 20 – Adversarial search contd
- Feb 27 – Constraint satisfaction (6)
- Mar 6 – Constraint satisfaction contd.
- Mar 13 – Supervised learning (18.1-18.4, 18.6-18.7), Midterm: Thu March 15
- Mar 20 – Supervised learning contd
- Mar 27 – Spring break, no class
- Apr 3 – Learning contd.
- Apr 10 – Logical agents (7)
- Apr 17 – Logical agents contd.
- Apr 24 – Planning (10-10.3)
- May 1 – Planning contd.
Last day of classes: May 3.
Final exam: Tuesday May 8th in our usual class room from 3:30 – 5:30 PM. No makeup exams will be given for students leaving town early without an excused absence.
Python quick intro: https://www.youtube.com/watch?v=N4mEzFDjqtA
Unless otherwise specified, all readings are from Russell and Norvig (2010) and list section numbers.
- Russell, S. J., and Norvig, P. (2010). Artificial Intelligence: A Modern Approach (3e, Prentice Hall, Upper Saddle River).
Programming exercises will be implemented using Python 3. While we will briefly introduce Python in class, we will not be devoting much time to how to program in Python as upper division computer scientist should have the skills to learn new languages without an extraordinary effort. Optional books to help you with this are freely available from SDSU Library through Safari Technical Books:
- Martelli, A., Ravenscroft, A., and Holden, S. (2017). Python in a Nutshell, 3rd Edition (O’Reilly Media, Inc, Sebastapol, CA) or
- Reitz, K. (2016). The Hitchhiker’s Guide to Python: Best Practices for Development (O’Reilly Media, Sebastopol)
Python is rapidly becoming one of the most popular languages for AI. This is primarily due to a large number of scientific libraries such as NumPy and SciPy coupled with popular machine learning language libraries such as scikit-learn, TensorFlow, and PyTorch. Python can be downloaded from the Python Software Foundation if it is not already available on your machine. Make sure that you install Python 3.6 or later. You are welcome to use any integrated development environment (IDE) that you wish. There are many popular IDEs for Python (Computerworld has a 2016 review covering some of the more popular ones). The Anaconda Spyder IDE is installed on the Windows machines in the Department lab (GMCS 425). I personally use eclipse with the pydev extension.
About the course:
Students will master a number of basic areas in artificial intelligence.
After successful completion of the course, students will be able to:
- Construct intelligent agents capable of interacting with their environments.
- Understand and implement heuristic searches for problem solving and game playing (adversarial search)
- Understand first-order logic and its application to theorem proving.
- Analyze constraint satisfaction problems and resolve them through search.
- Understand and be able to apply machine learning algorithms
Prerequisites: CS 310 Data Structures, Mathematics: Discrete Math (245) or Mathematical Logic (523)
Course meets Tu/Th in COM-207.
TA: Gurisht Singh Aurora, office hours: W and Th, 7pm – 8pm, GMCS 540. e-mail: gurishtsdsu(a__t__)gmail.com
Please see syllabus for detailed course policies.