Home ] [ Syllabus ] Schedule ] Lectures ] Assignments ] Links ]


CS 165A - Introduction to Artificial Intelligence (Fall 2007)

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. Course Feedback
  10. Students With Disabilities


General Information

Accounting details

Computer Science 165A, 4 Units

Enrollment Codes: 08060, 08078

Meeting times and locations

Lecture: Tues/Thurs 3:30-4:45pm, 1111 North Hall

Discussion: Wed 3:00-3:50pm or 4:00-4:50pm, Phelps 1401


Professor Matthew Turk (contact info)

Office Hours: Tues/Thurs 5-6pm or by appointment, or drop by and see if I'm available (Frank Hall 2163)  

Teaching Assistant

Brynjar Gretarsson (brynjar at cs.ucsb.edu)

Office Hours: Mondays 3-4pm and Thursdays 2:30-3:30 pm, in the Four Eyes Lab (see red arrow on map)

Course web site


Please check the course web site regularly for assigned reading and homework, announcements, and any other relevant information. Normally anything important will be mentioned in class.  Lecture notes will be posted to the web site after each lecture, but these are only notes - if you only read the lecture notes, you may miss important information.


cs165a at cs.ucsb.edu forwards to both the instructor and the TA. Use this to ask questions or send comments. Direct email to the instructor is okay, but in general the "cs165a" alias is preferred.

Course discussion site


This is a resource for you - use it for discussion, questions, comments, etc. It will be read regularly by the TA (and semi-regularly by the instructor), but consider it as an unofficial course discussion forum. 



The formal prerequisite, which may be waived by consent of the instructor, 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.  

"Consent of instructor" means that you may be admitted if you are willing to learn extra things where your background is weaker. Non-CS students are welcome (and encouraged) to take the course.


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, uncertainty, learning, and perception. We will also briefly cover the history of AI and philosophical and social implications.


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: 

Note that CS165B, which will be taught in the Winter Quarter, is about the important topic of machine learning. Hence we will only provide a small overview of learning issues 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 highly recommended: 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 one-hour discussion sections, led by the TA, will focus on (1) presenting supplementary material (such as practical examples) to the lectures and (2) answering questions (about lecture topics, homework problems, programming issues, etc.). It is expected 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.



Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall, Second Edition, 2003.  (Otherwise known as AIMA.)  [Make sure you have the second edition, which has a green cover, not the first edition, which has a red cover.] 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. If you need a computer account for this course, see Julia Orr (orr@cs.ucsb.edu) in the Computer Science office (2106 Frank Hall).

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:

40% Homework assignments
10% Weekly quizzes (Thursdays at the beginning of class)
20% Midterm exam
30% Final exam (Friday, December 14th, 4-7pm)

Homework will include both programming and non-programming assignments.  For details on what to turn in, see the Assignments page.

Unless otherwise instructed, all assignments must be submitted by 3:30pm on the due date (meaning, usually, at the beginning of class). Late assignments will not be accepted. Turn in what you have done by the due date and time.

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:

For some views on academic integrity at UCSB see:

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.  


Course Feedback

Please feel welcome to give feedback to the instructor and/or TAs regarding the course material, pace, assignments... whatever you wish. Don't just stew about it - let us know!

Cell phone policy - Please turn off your cell phone. If it rings, I get to answer it. Really.

Back to home