CS165A: Artificial Intelligence: Syllabus

Syllabus contents:

  1. General Information
  2. Prerequisites
  3. Course Objectives
  4. Class Attendance
  5. Textbook
  6. Computing Facilities
  7. Assignments and Grading
  8. Academic Integrity
  9. Students With Disabilities

 

General Information

Course web site

Please check the course web site regularly for assigned reading and homework, announcements, and any other relevant information.  Lecture notes will be posted to the web site prior to each lecture, but these only contain a summary of the presented information. If you only read the lecture notes, you may miss important information.

Prerequisites

The formal prerequisite is Computer Science 130A (Data Structures and Algorithms I). This implies that you have studied topics such as algorithms, data structures, searching and sorting techniques, recursion, and induction, all of which are relevant to this course. Most importantly, you need to be able to think logically about problems and solution strategies, and you must be familiar enough with writing software to implement solutions on your own. If you have completed the CS pre-major courses (including the Math and PSTAT courses) and CS 130A then you will be very well-prepared.   

Course Objectives

What is this course about?

An introduction to the field of Artificial Intelligence (AI), which attempts to understand and build intelligent systems. Topics include intelligent agents, search, game playing, logic, knowledge representation and reasoning, and uncertainty. We will also briefly cover the history of AI and philosophical and social implications.

Overview

Artificial Intelligence is about building and understanding intelligent systems. AI means different things to different people. People have approached the study of AI from various perspectives: philosophy, neurophysiology, mathematics, linguistics, psychology, control systems, and computer science, to name a few. Part of what makes it so interesting is the range of activities, from trying to understand minds in the abstract, to building creatures that run around and do things. AI has made steady progress and contributed to much of what is now standard computer science and cognitive science. It has spawned several sub-areas (e.g., natural language processing, speech recognition, computer vision, robotics, expert systems, and learning).

This is a computer science course, so we are not primarily concerned with the approaches of philosophy, cognitive science, etc., although we will come back to them from time to time. We will cover the following topics: 

History and foundations of AI

Problem solving and intelligent agents 

Problem solving and search (blind, informed, constraint satisfaction, adversarial)

Knowledge representation and reasoning in deterministic environments (logic, semantic networks, frames)

Knowledge representation and reasoning in probabilistic environments (Bayesian networks)
Introduction to information retrieval and machine learning (classification and clustering)

Introduction to reinforcement learning

 

Note that CS165B, which sometimes is taught in the Spring quarter, is about machine learning. Hence we will only provide a brief overview of learning techniques in CS165A.

What you will learn

By the end of the course, you will understand what AI is all about and what it has contributed, and may contribute, to computing. You will have a working knowledge of the basic tools of AI, which are applicable to a wide range of computing problems. You will be able to solve problems using explicit knowledge and reasoning. You will have experience building agents that, to some degree, can perceive their environment, reason about their behavior, and act upon the environment to achieve their goals.  

This is not primarily a programming course - that is, the main goal is to learn the concepts, not to learn a language or particular programming techniques. However, coding examples of the concepts is the best way to demonstrate (and facilitate) your knowledge of them. Good programming practices (proper file structure, comments, etc.) are expected.

Why study AI?

AI techniques are used in building e-commerce (and other) agents, expert systems, speech recognition and natural language processing software, intelligent user interfaces, robotics, computer vision, and other areas of computing. A study of the approaches and techniques of artificial intelligence can broaden your perspective and give you a new set of tools to apply to a wide variety of problems.

 

Class Attendance

Class attendance is required: you are responsible for everything that goes on in class. Prepare in advance for class by reading and studying the assigned text, and by making sure you understand the previous lecture.

Weekly 50-minute discussion sections, led by the TA, will focus on (1) presenting supplementary material (such as practical examples) to the lectures, (2) answering questions (about lecture topics, homework problems, programming issues, etc.), or by the instructor for make-up classes.  It is required that students attend these sessions; you are responsible for the material presented in these sessions. Students are encouraged to give the TAs (and, if appropriate, the instructor) feedback regarding topics or issues they would like to have discussed during this time.

Textbook

Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall, Third Edition, 2010.  (Otherwise known as AIMA.) This should be available in the UCSB bookstore.  A very thorough and useful web site for the text can be found at http://aima.cs.berkeley.edu/. (Note the errata that are listed at http://aima.cs.berkeley.edu/errata.html.)

Computing Facilities

You may use the CSIL (Computer Science Instructional Lab) computers, or any other machine you prefer.  You should use either C/C++ or Java in your assignments.

Assignments and Grading

Grades will be based on homework assignments, term project, weekly quizzes, midterm exam, and final exam:

20% Homework assignments
40% Coding assignment
20% Midterm exam
20% Final exam

Homework will include 4 assignments and 2 coding assignments. 

Unless otherwise instructed, all assignments must be handed in the class on the due date. After the due date, your score will be reduced 20% each day. 

You are encouraged to discuss homework assignments with classmates at a general level.  However, you may not share answers/code or collaborate on solutions unless otherwise directed to do so. All work turned in must be completely your own, including programming assignments. (See the Policy on Academic Integrity, below.)

There will be no makeup exams.

Policy on Academic Integrity

Please read this section carefully.

The university, the department, and this instructor all take the issue of academic integrity very seriously. A university requires an atmosphere of mutual trust and respect. While collaboration is an integral part of many scholarly activities, it is not always appropriate in a course, and it is never appropriate unless due credit is given to all participants in the collaboration. This goes for both ideas and programming or other work.

Here are some examples:

Allowed:  Discussion of lecture and textbook materials

Allowed:  Discussion of how to approach assignments, what techniques to consider, what textbook or lecture material is relevant

Not allowed:  Sharing ideas in the form of code, pseudocode, or solutions

Not allowed:  Turning in someone else's work as your own, even with that person's permission.

Not allowed:  Allowing someone else to turn in your work as his or her own.

Not allowed:  Turning in work without proper acknowledgment of the sources of the content (including ideas) contained within the work.

Summary: Academic integrity is absolutely required - dishonesty (cheating, plagiarism, etc.) benefits no one and hurts everyone.   If you are not sure whether or not something is appropriate, please ask the instructor or TA.

Students with Disabilities

If you are a student with a disability and would like to discuss special academic accommodations, please contact the instructor.  In addition, students with temporary or permanent disabilities are referred to the Disabled Students Program (DSP) at UCSB.  DSP will arrange for special services when appropriate (e.g., facilitation of access, note takers, readers, sign language interpreters).  Please note that it is the student's responsibility to communicate his or her special needs to the instructor, along with a letter of verification from DSP.  


Back to home