Assignments
Assignments are submitted online and must include an affidavit. Programs should be commented and be well structured. Due dates are posted on the calendar.
- Familiarize yourself with Python, set up your environment and write a small Python program (ungraded, nothing to submit).
- Read Williams & Kessler pair programming article. (Article on Canvas, your first graded assignment will contain some simple questions on this).
Graded assignments. Skeleton code is on Canvas unless otherwise indicated.
- Foundations of AI. Download code (usually on Canvas).
- Search.
- Constraint satisfaction.
- Machine learning
- Logic & Uncertainty
Due dates for assignments that require work to be turned in are posted on the calendar below. Solution keys to problems are on Canvas.
Use the ICAL address to add this to a personal calendar if you wish. Interested in AI? Check out the AI Club seminar blog.
- Quick & Dirty Python (lecture available on Canvas or directly on mediasite), the pdf contains several extra slides on iterators that are not in the video.
- AI Foundations
- Search
- Constraint satisfaction
- Learning
- Learning: Neural Networks
- Learning: Computer Vision
- Logical Agents
- Uncertainty
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. The units in Russell and Norvig corresponding to material are listed on the first slide of each slide deck.
There is an election this fall. If you are a US citizen and have not registered to vote, please consider doing so now. California voters can do so online: https://covr.sos.ca.gov/. Democracies only work when the public participates.
The following is an approximate week by week schedule for the class. As I am more interested in ensuring that you learn the material well than in covering every last item in the list, we may see slight changes in the schedule throughout the semester.
Due dates for assignments are given after they are assigned and are in the course calendar. In general, there are five to six assignments per semester.
In general, textbook sections are indicated at the start of each slide deck.
- August 23 – Foundations of AI
- August 30 – Problem formulation and uninformed search (Sep 2, 7:59PM Add/drop deadline)
- September 6 – Heuristic search (Labor Day Sept 5), Constraint satisfaction problems (CSP)
- September 13 – CSP
- September 20 CSP, Learning: Supervised (Sept 19 – last day to submit petition for late schedule adjustment without a W)
- September 27 – Learning, supervised and unsupervised methods
- October 4 – Deep neural networks
- October 11 – Deep neural networks
- October 18 – Computer vision, Midterm: Thursday October 20
- October 25 – Propositional logic
- November 1 – Uncertainty: Baye’s rule, probability models, Bayesian networks, hidden Markov models
- November 8 – Uncertainty continued (California election Tuesday, November 8th. Please vote if you are eligible. Friday November 11, Veteran’s Day)
- November 15 – Professor Roch at meeting, work on project
- November 22 – Uncertainty continued (No class Thanksgiving, Nov 24)
- November 29 – Natural language processing
- December 6 – Natural language processing
Final exam is Thursday December 15th from 3:30 PM to 5:30 PM. No early finals will be given.
Textbooks
Required:
- Russell, S. J., and Norvig, P. (2021). Artificial intelligence: a modern approach (Prentice Hall, Upper Saddle River), pp. xviii, 1115 pp.
Programming exercises will be implemented using Python 3. While we have created a Python quick start video that is available on Canvas, we will not be devoting much time to how to program in Python as upper division computer scientists should have the skills to learn new languages without an extraordinary effort. I am more than happy to help you with questions that you may have about Python during office hours. Optional books to help you with this are freely available from SDSU Library through Safari Technical Books:
- Lutz, M. (2015). Learning Python, 5th Edition, O’Reilly Media, Sebastapol, CA
- Martelli, A., Ravenscroft, A., and Holden, S. (2017). Python in a Nutshell, 3rd Edition, O’Reilly Media, Sebastapol, CA) or
- Reitz, K. (2016). The Hitchhiker’s Guide to Python: Best Practices for Development (O’Reilly Media, Sebastopol)
In addition, the python.org’s tutorial is also quite good. If you prefer to watch videos to reading, you might want to try Jessica McKellar’s Introduction to Python on Safari.
Programming environment
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. When your code is graded, it will be executed on Python 3.10. We recommend using 3.10 for your development.
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). I personally have used both eclipse with the pydev extension and PyCharm, both of which have free versions. PyCharm has a professional version that is free to students although you must register.
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 from 4-5:15 PM in AH 3177. Office hours will be held in GMCS 530 (mask obligatory due to confined space), times are listed in the sidebar.
TA: To be announced.
Please see syllabus for detailed course policies.