CSI 4106, Winter 2012: syllabus

CSI 4106.  Introduction to Artificial Intelligence
(3 hours of lectures per week, 3 credits).

The roots and scope of Artificial Intelligence. Knowledge and knowledge representation. Search, informed search, adversarial search. Deduction and reasoning. Uncertainty in Artificial Intelligence. Introduction to Natural Language Processing. Elements of planning. Basics of Machine Learning. Prerequisites: (CSI3120 or SEG2106) and MAT1348.


Course objectives

To introduce you to Artificial Intelligence by way of a broad overview -- with a strong emphasis on symbolic methods -- and to show you how much you have to learn after you have completed this course if you want to become really good at any specific area of Artificial Intelligence.

Please note that this a Computer Science course. Students of Software Engineering and Computer Engineering: you are heartily welcome, but let me warn you that in my course there is not a lot of engineering, but quite a lot of science. (-:)

Instructor

Dr. Stan Szpakowicz, Professor

office: STE 5102
phone: 562-5800 ext. 6687
email: szpak at eecs dot uottawa dot ca
office hours: by appointment

Feel free to send me questions by electronic mail. They will be usually answered the same day. If you wish to visit my office, please make an appointment by email. I am generally available, and I think that such flexible office hours will work better for you.

Course Web site

http://www.eecs.uottawa.ca/~szpak/teaching/4106/

Textbook and handouts

George F. Luger, Artificial Intelligence, 5th ed., Addison-Wesley, 2005 (the book will be available used at the Agora bookstore for $26.49 + tax). If you prefer the 2009 edition, and are ready to pay over $100 more, here is the link.

Class notes and additional handouts will be posted on the course Web site, the Handouts page.

Timetable

Mondays 14:30-16:00 and Thursdays 16:00-17:30, STE J0106

A detailed list of topics (it may change a little)

  1. Introduction
    • The many definitions of Artificial Intelligence
    • Sources and areas of Artificial Intelligence
    • Bits of the history of Artificial Intelligence
    Search
  2. Knowledge and search
  3. Basic search methods
  4. Informed (heuristic) search
  5. Simple games: adversarial search

  6. Knowledge representation
  7. Logic for knowledge representation
    • Predicate logic
    • Resolution
    • Prolog
  8. Symbolic knowledge representation schemes
    • Frames
    • Semantic networks
  9. Rule-based systems
    • Forward chaining
  10. Uncertainty in knowledge representation
    • Non-monotonic reasoning
    • Probability, Bayes' rule
  11. Applications
  12. Natural language processing
    • Basic facts about English
    • Prolog for language analysis
    • Parsing
    • Simple semantic analysis (probably)
  13. Planning
    • Strips and Warplan
  14. Learning
    • An overview of machine learning methods
    • Decision trees
    • Explanation-based learning

Marking scheme

There will be a maximum of 100 marks for you to accumulate, divided as follows (a minor change is still possible):

  • Midterm test [M]: 19 marks
  • Final exam [F]: 43 marks
  • Assignments [A]: 38 marks
To pass the course, you need at least 55 marks, and the combined midterm and final exam mark must be at least 31. Your written homework and programming assignments will only count if you have passed the exams. In other words, your total will be calculated like this:

if M + F < 31 then (M + F) * 1.5 else M + F + A

The midterm will be one class, the final exam will be 3 hours, open-book both. The midterm will take place on Thursday, March 1, in class. You are expected to write it. There will be no make-up. If you have a valid medical reason to have missed the midterm, confirmed by the official University health services, I will add the weight of the midterm to the final exam's weight.

The final exam will be comprehensive, with a slight emphasis on the second half of the course. Note that you will not have a chance to exercise topics 11-12 in an assignment, so that part of the final exam will rely on reading and thinking rather than reading, thinking and doing.

Assignments -- details (the dates and the marks may shift a little)

Tentative topic Marks Posted - due
Introduction
4 Jan. 19 - Jan. 30
Games [programming]
8 Jan. 30 - Feb. 13
State spaces, search, logic
6 Feb. 13 - Feb. 27
Forward chaining [knowledge engineering]
6 Feb. 27 - Mar. 12
Knowledge representation: uncertainty 6 Mar. 12 - Mar. 19
Natural language processing [programming]
8 Mar. 19 - Apr. 5

Some assignments will be written. Others will require programming, though only in one will I ask for software development; the other two can be characterized as knowledge engineering. The suggested language will be Prolog, naturally; I will post a lot of code to help you get going. The knowledge engineering work will rely on simple tools written in Prolog; they will be available at the course Web site. You can avoid Prolog in game programming, because it is realistically doable in Java or C++ or some other such tool.

Plan of lectures (it may change a little)

Date Topic Date Topic
Jan. 9, Mon. 1
Feb. 27, Mon. 8; 9
Jan. 12, Thu. 1, 2
Mar. 1, Thu. midterm
Jan. 16, Mon 2, 3
Mar. 5, Mon. 9
Jan. 19, Thu 3
Mar. 8, Thu. 9; 10
Jan. 23, Mon 4
Mar. 12, Mon. 10
Jan. 26, Thu 4, 5
Mar. 15, Thu. 10
Jan. 30, Mon. 5
Mar. 19, Mon. 10
Feb. 2, Thu. 6
Mar. 22, Thu. 10
Feb. 6, Mon. 6
Mar. 26, Mon. 10; 11
Feb. 9, Thu. 6, 7
Mar. 29, Thu 11
Feb. 13, Mon. 7, 8
Apr. 2, Mon. 12
Feb. 16, Thu. 8
Apr. 5, Thu. 12

study week

The drop date this term is March 16.

Avoid plagiarism...

Have a good look at our policy, please.

Good luck!

[a small smiley]
Run to the CSI 4106 site
Updated on January 17, 2012