CSE175 Introduction to Artificial Intelligence (Fall semester 2024)
Instructor
Miguel Á. Carreira-Perpiñán
Professor
Dept. of Computer Science and Engineering
School of Engineering
University of California, Merced
mcarreira-perpinan-[at]-ucmerced.edu
Office: 217, Science & Engineering Building 2
Office hours: Tuesdays/Thursdays 4-4:55pm (SE2-217).
TAs:
- Magzhan Gabidolla, mgabidolla-[at]-ucmerced.edu. TA hours: Tuesdays/Thursdays 10-11am (SE2 lobby).
- Rasul Kairgeldin, rkairgeldin-[at]-ucmerced.edu. TA hours: Mondays 11am-12pm, Tuesdays 2-3pm (SE2 lobby).
Lectures: Tuesdays/Thursdays 5-6:15pm (SSB170).
Lab class:
- Section 02L: Tuesdays 6:30-9:20pm (COB281)
- Section 03L: Wednesdays 10:30am-1:15pm (SE1-138)
- Section 04L: Thursdays 11am-1:45pm (SE1-138)
- Section 05L: Fridays 5:30-8:20pm (KOL202)
Course web page: http://faculty.ucmerced.edu/mcarreira-perpinan/teaching/CSE175
Course description
Overview of the main concepts and techniques underlying the design and analysis of intelligent computer systems. Topics include: search and games; knowledge representation, reasoning, and planning; reasoning under uncertainty; machine learning; robotics, perception, and language understanding.
Prerequisites: CSE100 Algorithm Design and Analysis (which implies MATH22/23/24/32, CSE15/24/30). Essentially, you need skills (as taught in those courses) in: advanced programming (C++/Java) and data structures; math (calculus, linear algebra, probability); and algorithms.
Courses at UC Merced related to AI:
- CSE176 Introduction to Machine Learning
- CSE180 Introduction to Robotics
- CSE185 Introduction to Computer Vision
- CSE1xx Introduction to Natural Language Processing
Textbook
Required textbook (get the errata):
The companion site for the book has additional materials (exercises and solutions, coding problems, exams, figures and pseudocode, etc.).
Syllabus
Syllabus
The course will follow the textbook (table of contents), skipping occasional topics. Before each class, you should have read the part of the textbook, as follows:
- Ch. 1 Introduction: all.
- Ch. 2 Intelligent Agents: all except 2.4.7.
- Ch. 3 Solving Problems by Searching: all except 3.5.5-3.5.6.
Animations illustrating BFS, DFS, UCS, A*, etc. in the Pac-Man gridworld. The .txt file (if available) is the output of the Python code, showing the number of nodes expanded, cost and runtime. The .gif files are animations, in Linux you can view them with gifview -U file.gif.
- Ch. 5 Adversarial Search and Games: all except 5.6-5.7.
Animations illustrating minimax and expecti(mini)max in the Pac-Man gridworld.
- Ch. 6 Constraint Satisfaction Problems: all except 6.3.3-6.3.4.
- Ch. 7 Logical Agents: all except 7.7.3.
- Ch. 8 First-Order Logic: all.
- Ch. 9 Inference in First-Order Logic: all except 9.4.2-9.4.5.
- Rest: TBA.
Deadlines
These deadlines are approximate, we will fix them and give the homework handouts asap.
- About weekly: lab assignments (see below).
- Oct. 21 at 5pm: homework #1.
- Nov. 11 at 5pm : homework #2.
- Nov. 19 at 5-6:15pm: midterm exam.
- Dec. 2 at 5pm: homework #3.
- Dec. 9 at 5pm: homework #4.
- Dec. 16 at 8-11am: final exam (cumulative, i.e., covering the whole course).
- Dec. 16 at 11:59pm: L game assignment.
Late submissions (homework or lab assignments) get a grade of zero.
Course grading
- Midterm exam (20%): in-class, closed-book, consisting of problems and conceptual questions.
- Final exam (40%): as for the midterm. It will cover the entire course.
- Homeworks (15%): exercises and problems similar to those in the exams. To do in groups of up to 3 students. Each homework assignment counts equally for grading purposes.
- Lab attendance (5%): you must attend each lab for its whole duration (unless there is a reasonable excuse) and work on the assignments.
- Lab assignments (20%): these consist of programming selected algorithms in Python. To do on your own (individually). Each lab assignment counts equally for grading purposes.
Exception: there is a larger lab assignment described below, to do in groups of up to 3 students (ok if in different lab sections). For grading purposes, this will count as 7 labs.
Note: to pass the course, your grades cannot be too low in any of these parts (that is, a very low final exam grade cannot be compensated by higher grades in, say, the homeworks or the lab assignments).
Grade curves (exams): midterm, final.
Academic dishonesty
While I encourage you to discuss your work with other students, individual assignments (the lab assignments and exams) must be the result of your own work, and group assignments (the homeworks) must be the result of your group's work, without collaboration. Cheating causes two problems: you learn less well, and it is unfair to students who put honest effort into their work. See the Academic Dishonesty Statement in the syllabus, the CSE Department Policy on Academic Honesty and the UC Merced Academic Honesty Policy. Importantly: should copying (or other infraction) occur, both the student who copied work from another student and the student who gave material to be copied will automatically receive a zero for the assignment. A repeated violation will directly lead to an F in the entire course. A single violation will directly lead to an F if the School of Engineering determines that the student has had a prior violation in any other course.
Specifically regarding the lab assignments:
- We use a plagiarism checker. Don't risk failing the course. The lab assignments are simple and instructive and you'll learn a lot if you work through them.
- About using the web to get information: do not try to find a solution in the web for the algorithm we ask you to implement and then try to adapt it to the assignment given; that's cheating. But do use the web to check the syntax of Python, Unix commands, etc.
For both lab assignments and homeworks: you must disclose whatever sources you used to complete your work or to help others complete theirs. For homeworks, write it at the beginning of your submission. For lab assignments, write it in a separate README.txt file. Examples of possible sources:
- I used the lecture notes and my notes taken during the lectures.
- I consulted textbook X, companion material from textbook X.
- I helped student X or received help from X (describe how specifically).
- I consulted an online resource: website / book / video / etc. Give its URL and explain how you used it.
- etc.
Lab assignments
- Each lab assignment consists of programming selected algorithms in Python. The goal is for you to program, test and debug several of the algorithms you learn in the lectures.
- The lab sessions are intended for you to work on the lab assignments and ask questions to the TAs if you need to. The TAs will explain the lab assignments and discuss any issues (however, they cannot help you to debug your code, this is a crucial skill each student should master). To make the discussion fruitful, read the assignments and the book before asking for help.
- There are several lab assignments that you have to submit and will be graded. The TAs will explain the mechanics of how this works in the first lab session. Essentially, you submit your source code to CatCourses by the due deadline and this is then graded automatically based on a set of test cases.
- It is fine for you to use your own laptop or PC to develop the code for the lab assignments, but make sure you test your submission in the lab computers, as our automatic grader will be run there.
- Later assignments may depend on code produced in earlier assignments, so make sure to finish all assignments as you go.
- Some of the assignments will be from The Pac-Man Projects developed at UC Berkeley. The first assignment will be a Unix/Python tutorial. Also, Engineering Service Learning at UC Merced usually offers courses on Python, Matlab, R and other things.
- Special lab assignment: the L game.
Homeworks
You must submit your solutions through CatCourses as a PDF file (scanned from a legibly handwritten hardcopy or created by a word processor, no larger than 3 MB). If the group has several members, submit a single PDF file listing the group members in the first page. We'll give you back the PDF file annotated with the grades and any corrections. Each homework counts equally for grading purposes. Late homeworks will receive a grade of zero. Don't leave it for the last minute!
Tips to create small but legible PDF files:
- If it is a photo or scanned image, set the resolution low enough and apply lossy compression (JPEG). One handwritten page should be perfectly legible in about 100 kilobytes or less.
- In Linux, you can compress existing PDF files with:
- Note: Apple iPads, etc. can produce hugely bloated PDF files.
Some general advice about the course
- The best way to prepare and learn is to read the book chapter (as indicated in the course web page) before attending the lecture that covers it, as we move along the course. Then you'll be better prepared to ask questions about things you didn't understand. Not only is this pretty obvious, but there is a lot of research backing this learning strategy. Also, I don't cover everything in the book in the lectures, but you are expected to study it.
- Likewise, do the exercises suggested as we go along. Some of them have public solutions in the textbook companion site. Of the exercises I suggest you to do, I won't solve all in class and I'll generally do only partial solutions for the rest. Come to my or the TA office hours or lab sessions if you have questions.
- Distractions (such as checking your mobile phone) mean you don't learn well. If you come to class, pay attention, you'll end up saving more time than trying to do things in parallel. Again, there is a lot of research showing that people don't do multiple cognitive tasks well at once.
Links
Miguel A. Carreira-Perpinan
Last modified: Fri Nov 22 22:13:00 PST 2024
UC Merced |
EECS |
MACP's Home Page