Artificial Intelligence Spring 2024

Introduction to Artificial Intelligence

CS 4260/5260, Section 1

Spring 2024

  • Time and Place: MWF 12:20 pm to 1:10 pm, FGH 134
  • Prerequisites: CS 3250 (Algorithms), CS 3251 (Intermediate Software Design), and a probability/statistics course
  • TA: Kyle Moore kyle.a.moore@vanderbilt.edu
  • TA Office Hours:  MWF 10:00AM-11:00AM, FGH 226
  • Exam dates: Exam 1 (Friday, Feb. 9); Exam 2 (Wednesday, Mar 6); Exam 3 (Friday, Apr 12); Final Exam (Tues., Apr. 30)

Motivation and Overview

Artificial intelligence (AI) is being discussed in public as never before.  I didn’t think I would live to see such performance by AIs, though I was sure it was coming and though its still very imperfect. While AI has always been a popular topic of science fiction, high-profile technologists and lawmakers now actively contemplate the potential dangers of AI, particularly the prospect of general (or autonomous, or strong) AI and the subsequent displacement of the human species as the dominant entities on our planet. In contrast, optimistic views of general AI focus on the potential of AIs as companions, caregivers, advisers, and collaborators in wide ranging areas. In the realm of general AI, the optimistic view is also that AIs can be positive role models to humans and that collective intelligence composed of both humans and AIs will be more powerful and compassionate than either “species” would be alone.

Historically, most introductory AI courses take a tools-based perspective of AI, where the study of the nuts-and-bolts concepts and algorithms used by task-specific (or narrow, or weak) AIs dominate a course. While AIs that support very specific tasks may seem less exciting than general AIs, it is these task-specific AIs that are driving much public debate: for example, about using machine learning to automate recommendations for prisoner parole and job-candidate interviews and about the use of computer vision and image processing for facial recognition in retail and law enforcement. On the other hand, task-specific AI may be used to strengthen human decision-making in areas such as environmental sustainability, resource management, health care, and education.

Treatment of the bread-and-butter, task-specific material will continue, just as it has for decades, but I’ve adapted the course in the face of advances of deep learning, enabled by massive data capture, computer processing and memory performance, and algorithmic improvements. This latter material is typically not covered at the introductory level, but I view coverage as a necessity, at least at a suitable level of abstraction. My view is that the future of AI will be that most intelligent processing is ultimately implemented at deep (aka fine grained, sub-symbolic, neural, compiled) levels, while concepts and algorithms that are generally presented in AI courses will continue to be the high-level concepts and languages that AI developers use to communicate among themselves in software development, and that human developers will use to communicate to AIs through prompting. If prompting really is to be the next necessary skill in software development, then consider the material in this class as vital for optimal prompting of AI collaborators – at least in the near term, until AIs themselves prompt AIs in what will be an AI instance of Julian Jaynes’  theory of a bicameral mind.

Course Coverage

In this introductory course, students will learn the concepts and methods of core AI areas, including search and exploration, knowledge representation, inference and planning, reasoning with and without various forms of uncertainty, and machine learning. These are the high level programming concepts and languages that AI developers must know. But we will also cover artificial neural networks, so called deep representations and deep learning, that may be the machine level languages and processes of AIs. In one semester we will not touch on all broad areas of AI, but in addition to mastering what we do study, my expectation is that students will be better prepared and informed for advancing in AI, be it from formal coursework or from independent study.

Textbook and other sources

Our textbook is

  • Poole, D. L., & Mackworth, A. K. (2023). Artificial intelligence: Foundations of computational agents (3rd ed.). Cambridge University Press. Poole & Mackworth (PM) is available in hard copy and free online at https://artint.info/.

An optional textbook, recommended for the AI enthusiast is

  • Russell, S. J., & Norvig, P. (2021). Artificial intelligence: A modern approach (4th ed.). Pearson Education, Inc. This book has the advantage of including material that goes well beyond what we can expect to do in one semester, covering areas such as vision and robotics, thus supplying ample material for continued study. Russell & Norvig (RN) is available in various modalities. Information is available at http://aima.cs.berkeley.edu/.

My lectures draw on publicly available auxiliary material (e.g., slides, exercises) from the websites of both PM and RN, as well as other sources.

The course schedule (below) lists required and optional readings for each week.

Course Organization

The course requires attendance in class, exercises/quizzes, exams, programming assignments, and encourages you to participate in discussion, even if only to read the posts.

Attendance in class is required, not just by me but by School of Engineering policy. I will take attendance with Top Hat (Join: 338051) and I will often ask questions on Top Hat, where participation and correctness of your answers will be factored into your grade. So bring a device that allows you to interact with Top Hat.

There are three exams during the semester, as well as a comprehensive final exam. Our final exam is scheduled for Tuesday, April 30 2:00 pm – 5:00 pm CENTRAL TIME. There are no alternative times.

We will be using Piazza as the class discussion forum. The TA and I will typically use Piazza to make announcements too. If you have not been previously enrolled by me, you can join the class forum by following the Piazza link. The discussion forum is for students to ask questions and give comments on any aspect of the course. We will respond as appropriate, but students are encouraged to respond too. We also encourage knowledge sharing of ideas, specifications, prompts, and designs regarding the programming project. In general, students can and should be learning from other students in this course. There may also be prompts from us for questions and comments regarding the my slides and instructor notes, source reference texts, practice problems, the programming project, and societal issues of current relevance. And if you find an interesting paper or topic, then feel free to post that, along with your commentary.

Quizzes and programming are elaborated in their own sections below.

Optional Exercises and Required Quizzes

There is a quiz each week unless otherwise noted. You are given questions ahead of time that ask for free form answers (e.g., show a travel route from X to Y under specified constraints). These exercises are optional but the quiz questions for the week will include multi-select questions that are based on the week’s suggested exercises. Before you take a week’s quiz you must turn in a pdf of your free form answers to any-to-all of the suggested exercises to Brightspace under Assignments. If you didn’t do any of the suggested exercises then you still have to submit a pdf that says “I didn’t do any exercises” or the like. A quiz can include other material from lectures and readings for the corresponding week.

  • You must submit the free form pdf BEFORE you take the week’s quiz exercises (even if only to say that you didn’t do any exercises).
  • You will take each quiz for the first time IN CLASS on Wednesdays. You take the quiz on Brightspace, (optionally, have uploaded the free form pdf before class — see appeal policy below) and bring your laptops.
  • You can take the quiz on Brightspace (under Quizzes) one additional time outside of class until Wednesday 11:59 pm. You cannot consult sources while you actually take the quiz, but you can consult sources between attempts.
  • Your grade on the quiz is the average of your 1-to-2 quiz attempts.

If you ever feel that your free form solutions exhibit greater understanding than was reflected in the quiz, you must make the appeal within one week of the day that you took the quiz during the office hours of the TA or instructor. You must also have posted the free form solutions to the suggested exercises before you took the quiz for the first time. Think of the free form version as “showing your work” for the quiz, which you aren’t required to do, but why not.

Programming Assignments

There are 4-5 programming assignments. The programs are done in teams up to 3 students.

The default language is Python, though if your team has a compelling reason for using a different language please let us know. You are free to use AIs, like chatGPT,  to design, implement, document, and evaluate the AI system consistent with the specification. Think of an AI as an additional team member, smart but flawed, that doesn’t count against your human total.

For each deliverable, you will be submitting (a) a program listing that is well documented; (b) the most significant prompts you used to co-create the code with an AI collaborator, if  applicable; and (c) sample runs on test cases. As an example of “well-documented” see sample code for Othello in C. We will discuss program expectations as programs are assigned.

The programming assignments are intended to promote individual creativity but also community knowledge sharing. You are encouraged to share ideas, designs, and prompts on the Discussion Forum. You can share on the forum as an individual or on behalf of a team, but do not to share code unless approved by me or the TA. An important rule of thumb is that if you share with anyone (outside of your team), then you share with everyone. Another important rule is to cite the sources of your ideas and designs, most notably those of students from other teams. See the course Honor Code below. Programming deliverables are uploaded to Brightspace.

CS 5260 Requirement

This course can be taken for graduate credit, and students who take it as CS 5260 are required to satisfy an additional requirement. PhD students in any program, who take this as CS 5250, are required to write mid-semester and end-of-semester reports of no more than 1500 words each on how the material in this course relates to their tentative dissertation topics. Masters students are required to do the same, but as the material relates to their MS thesis and/or tentative career choice. The report should be no more than 1500 words, formatted with the students name at the top, one  inch margins all around, 14pt Garamond font, with 1.5 line spacing. The report should be uploaded to Brightspace..

The prerequisite for a course in probability and statistics is also particularly relevant for graduate students (since undergraduate students will be pre-screened for this).  If a student taking CS 5260 has not had a previous course in probability and/or statistics they may be removed from the class unless they take remedial material, and such students should see me.

Grading

The following are the breakdown of factors and weights used to compute your grade.

  • Attendance and in-Class (Top-Hat) Questions: 8%
  • Exam 1: 9%
  • Exam 2: 9%
  • Exam 3: 9%
  • Final Exam: 15%
  • Quizzes: 20%
  • Programming Assignments: 30%

Again, in-class attendance is required. If you record yourself present on Top Hat from outside the classroom then that is an honor offense.

The letter grade breakdown is

  • [92, 100] A (a very few A+s may be given)
  • [90, 92) A-
  • [87, 90) B+
  • [82, 87) B
  • [80, 82) B-
  • [77, 80) C+
  • [72, 77) C
  • [70, 72) C-
  • [67, 70) D+
  • [62, 67) D
  • [60, 62) D-
  • [0, 60) F

The CS 5260 total score will be 110% of the CS 4260 total score, where the amount above the 4260 score will be from the additional CS 5260 Requirement.

Honor Code

Fundamentally, the honor code is about giving credit to others where credit is due, which allows for a more accurate assessment of your knowledge and it better ensures community trust and the societal benefits that stem from that trust.

For this class

  • you are encouraged to use AI tools to design, implement, document, and evaluate your programming assignments;
  • you can work freely with your program team members about programming assignments (this should go without saying, but I am saying it anyways);
  • you may ONLY discuss the programming assignments with other students (outside your team) over public posts to the discussion forum; you may NOT discuss the project with other non-team students privately (see the rule of thumb under Programming assignments);
  • you may NOT consult texts, notes, slides, or communicate with or use others when you take exams (nothing, except your own brain);
  • you MAY consult with texts, notes, slides, AIs, and with other people on the open format components of homework, and you must precisely declare the nature of any help you received or gave to other people (and from/to whom) in the open format submission;
  • you may NOT consult with others on the quizzes. You may NOT consult with AIs, texts, notes, slides, etc while you are actually taking a quiz attempt, but you can consult sources (except other people) between attempts;
  • when recording your attendance on Top Hat you must be in the classroom.

Schedule

  • Week 2: Exploring Alternatives through Search
    • Read
      • PM Section 2.4
      • PM Chapter 3 through 3.12 (all of it)
    • Do Week 2 Suggested Exercises Free Form due Wednesday January 24 before class (see Top Hat)
    • Class meetings
      • Monday, January 15: MLK Day (no class)
      • Wednesday, January 17:  Quiz HW1; Informed Search, State-Space Search;
      • Friday, January 19: State-Space Search
  • Week 3: Other Search Paradigms
    • Read
      • PM Chapter 4 through 4.2 (constraints)
      • PM Chapter 14 through 14.3 (adversarial search)
    • Do Week 3 Suggested Exercises Free Form due Wednesday January 31 before class (see Top Hat)
    • Class meetings
      • Monday, January 22: Utility-driven search; anytime search;
      • Wednesday, January 24: Quiz HW2;  learning macro operators
      • Friday, January 26: Adversarial search;
        • Study  slides and reading  on search with constraints
  • Week 4: Reasoning, Planning, and Learning
    • Read
      • PM Chapter 5 through 5.3
      • PM Chapter 6 through 6.1
      • PM Chapter 7 through 7.1
    • Do Week 4 Suggested Exercises Free Form due Wednesday February 7 before class
    • Class Meetings
      • Monday, January 29: Program 1 discussion, Q&A, and work groups
      • Wednesday, January 31: Quiz HW3; Propositional Theorem Proving;
      • Friday, February 2: Propositional Planning
  • Week 5: Machine Learning; Exam
    • Read
      • PM Chapter 7 through 7.4
    • Do Week 5 Suggested Exercises Free Form due Wednesday February 14 before class
    • Class Meetings
      • Monday, February 5: Supervised Machine Learning; Decision Tree Learning
        • First programming project DUE (Monday at 11:59 pm)
      • Wednesday, February 7: Quiz HW4 (no quiz); Machine learning evaluation
      • Friday, February 9: Exam 1 (January 8 – February 2)
  • Week 6: Artificial Neural Networks, Program 2
    • Read
      • PM Chapter 8 through 8.1
      • PM Chapter 12 through 12.1
      • Continue PM Chapter 7 through 7.4 (should have read in Week 5, but fair game for week 6 too)
    • Do Week 6 Suggested Exercises Free Form due Wednesday February 21 before class
    • Class meetings
  • Week 7: Program 2 work (and Preferences), Uncertain reasoning
    • Read
      • PM Chapter 9 through Section 9.5.1 (9.1 and 9.2 are prerequisite background)
    • Do Week 7 Suggested Exercises Free Form due Wednesday February 28 before class
    • Class Meetings
      • Monday, February 19: Bayesian Networks
      • Wednesday, February 21:  No class, work in groups
      • Friday, February 23: Quiz HW6; Learning Bayesian Networks; Full  joint probability computations
  • Week 8: Uncertainty; Sequential Reasoning
    • Read
      • PM Chapter 9 Section 9.6 (9.1-9.5 was last week)
    • Do Week 8 Suggested Exercises Free Form due March 6 by 11:59 pm
    • Class Meetings
      • Monday, February 26: Partial joint probability computations; Conditional probability computations
      • Wednesday, February 28:  Quiz HW7;  Markov models;

        • Second programming project DUE (Wednesday at 11:59 pm)
      • Friday, March 1:  office hours
  • Week 9: Program; Exam; bicameral AIs
    • Read
      • PM 
    • Do Week 9 Suggested Exercises Free Form due Wednesday March 20 before class
    • Class Meetings
      • Monday, March 4: Program 3

        • Third programming project ASSIGNED
      • Wednesday, March 6: Quiz HW8; Exam 2 (February 5 – March 1)
      • Friday, March 8: bicameral AIs, Cicero

        • CS 5260 ONLY Mid-Semester Report due (see syllabus) to Brightspace
  • Spring Break (Saturday March 9 – Sunday March 17)
  • Week 10: Knowledge representation, Program 3
    • Read
      • PM Chapter 15 through 15.5
      • PM Chapter 16 through 16.1
    • Do Week 10 Suggested Exercises Free Form due Wednesday March 27 before class
    • Class Meetings
      • Monday, March 18*: work in program groups; no attendance taken
      • Wednesday, March 20*:  Quiz HW9; First-order representations
      • Friday, March 22:  Emily Bender talk (must preregister) on Transformers and large language models

  • Week 11: First-order inference; Markov Decision Processes
    • Read
      • PM Chapter 12 through 12.3.2, 12.5
    • Do Week 11 Suggested Exercises Free Form due Wednesday April 3 before class
    • Class Meetings
      • Monday, March 25*: First Order Theorem Proving and Planning
      • Wednesday, March 27*:  Quiz HW10; First Order Theorem Proving and Planning
      • Friday, March 29: Daniel Kahneman (1934-2024) and prospect theory (12.1.3); first-order learning;
  • Week 12:  Markov Decision Processes, Program 4
    • Read
      • continue PM Chapter 12 through 12.3.2, 12.5
    • Do Week 12 Suggested Exercises Free Form due Wednesday April 10 before class
    • Class Meetings
      • Monday, April 1:  Expectiminmax search, Expectimax search
        • Third programming project DUE
      • Wednesday, April 3: Quiz HW11; Expectimax search continued
      • Friday, April 5: value iteration; Program 4
        • Fourth programming project assigned (there are required readings by White et al  in the Program 4 description — these will be on the Quiz HW13)


  • Week 13: , Exam, Program 4
    • Read
      • continue PM 12.5
      • PM Chapter 13 through 13.4 (reinforcement learning, possible final exam)
    • Do Week 13 Suggested Exercises Free Form due Wednesday April 17 before class
    • Class Meetings
  • Week 14: Computational creativity, sustainability, and ethics
    • Read
      • PM Chapter 18
      • PM “Social Impact” section of every chapter
    • Class Meetings
      • Monday, April 15: Ethics and societal implications revisited
      • Wednesday, April 17:  Quiz HW13; Ethics and societal implications revisited
      • Friday, April 19: Ethics and societal implications revisited
  • Week 15:
    • Read
      • PM Chapter 19
    • Class Meetings
      • Monday, April 22: Reflection and Final Exam Guide