Artificial Intelligence
Instructor: Dr. Dylan Shell.
Office | : | PETR 315 |
Phone | : | (979) 845-2369 |
: | dshell_at_tamu.edu | |
Web | : | http://robotics.cs.tamu.edu/dshell/cs625 |
Office hours | : | Thursdays 2pm-4pm and by appointment too. |
TA Information
Name | : | Peiman Mohseni |
: | peiman.mohseni@tamu.edu | |
Office hours | : | Mondays and Wednesdays 11:30am to 12:30pm, and by appointment. |
Location | : | Main lobby of EABC |
Spring 2022
Lecture Time | : | Tuesdays/Thursdays, 12:45pm-2:00pm. |
Lecture Location | : | ZACH 244 |
Fundamental concepts and techniques of intelligent systems; representation and interpretation of knowledge on a computer; search strategies and control; active research areas and applications such as notational systems, natural language understanding, vision systems, planning algorithms, intelligent agents and expert systems.
The course is a broad survey that will require a significant amount of reading with simple introductory programming in different languages. It will provide an understanding of the state of the practice of AI and set the foundation for further study in agency, logic, neural networks, robotics, uncertainty, and computer vision.
Prerequisites
You are expected to be familiar with graphs, trees, and similar forms of data structure. Additionally, you should be comfortable with standard ways for characterizing program complexity. This is likely material covered in a good undergraduate class on Design and Analysis of Algorithms (which will likely have a course on Data Structures and Algorithms).
You are expected to have some familiarity with propositional and boolean logic (including connectives, truth tables, etc.) Additionally, a standard course on discrete mathematics covers some material (e.g., universal quantifiers, existential quantifiers, proof techniques, Venn diagrams, etc.) that we will use. The associated level of mathematical maturity is also expected.
Some parts of the course involve writing code in Prolog, but no prior experience with this language is needed. However, you are expected to be comfortable in multiple other languages and willing to pick up new ones with minor fuss. It is helpful to have some prior experience with a functional programming language. (If you don't know what a functional programming language is, if you've not heard of lazy evaluation, you're probably deficient.)
Operation of the class
- This is a graduate class: nobody will be mollycoddled.
Each student is expected to be autonomous and independent
and behave as a responsible adult. In particular this means that:
- The classes begin with the understanding that everyone in the room has read assigned texts already. Thus, you are expected to read the assigned material before class.
- You should have some understanding of which aspects are least clear, and need further explanation for yourself. You are expected to have questions to ask the instructor and be willing to ask those questions.
- You may be called upon to respond by the instructor. If this is too much pressure, or makes you too uncomfortable, or is too intimidating, then this is probably not the class for you.
- The class involves a set of challenging programming assignments and exercises. You are
expected to write code for those that you do. Several of them are open-ended, because this
is an important characteristic of A.I. problems.
- Attempting these assignments is a critical aspect of the course for your understanding of the material.
- Students are expected to be able to discuss their current code and design approach before the class.
- You are expected to follow, compare, and ask informative questions from the code shown by your peers.
Learning Outcomes / Course Objectives
- Understand and enumerate the basic techniques for creating intelligent programs. This will be addressed by course work.
- Create a successful program illustrating the operation of one of these methods. This is the purpose of the course's programming assignments.
- Apply the right programming language or technique to the right problem and be able to evaluate a proposed AI application for likelihood of success. This too is addressed via programming assignments.
- Be able to discern sensationalism from science on the possible impact of AI on society. This will be part of the class discussions and readings.
Textbooks (required)
- Artificial Intelligence: A Modern Approach 3rd Edition by Stuart Russell and Peter Norvig, 2009, or Artificial Intelligence: A Modern Approach 4th Edition by Stuart Russell and Peter Norvig, 2020.
Useful book (not required)
- Infinitesimal Calculus by James M. Henle and Eugene M. Kleinberg, 1979. (There is a 2003 Dover Edition.)
Papers and other readings
- [CMI] "Computing Machinery and Intelligence," by Alan M. Turing. Mind 49:433-460, 1950.
- [SoA] The Sciences of the Artificial, 3rd Edition by Herbert A. Simon, 1996.
Other resources
Here are some other materials that are useful.
Grading Policies
Grades will be based on:
|
The grading scale is:
|
Course Topics, Calendar of Activities, Major Assignment Dates
Syllabus topics and readings are subject to change, exact dates depend on class progress.
Due Date | Tests and Assignments | |
1 Mar. | Midterm Exam 1 [Sample Qs | As] | |
10 Apr. | Communication Project Draft | |
17 Apr. | Communication Project Feedback | |
19 Apr. | Midterm Exam 2 | |
Access the reviews by your peers here! | ||
5 May | Communication Project Final Submission |
Week (±) | Req'd | Programming Assignments | Weight |
3 Feb | Yes | Lazy BFS (Scheme) | 15% |
22nd Feb | No | Pacman Search (Python) | 7% |
9th Mar | No | Equation Simplifier (Own choice, with some python starter-code) | 18% |
25th Mar | No | Pacman Adversarial Search (Python) | 10% |
6th Apr | Yes | Packing Puzzle (Own choice) | 15% |
1st May | Yes | Wumpus world! (Prolog) (Ioerger's short course) | 30% |
3rd May | No | Planning (PDDL) | 5% |
Academic Integrity Statement, Policy on Missed Work, Absences
On these and other topics, please refer to the class syllabus for additional information.