EECS 3401: Introduction to AI and Logic Programming

EECS 3401: Introduction to AI and Logic Programming

Course details

  • Lecture schedule: MW, 13:00-14:30, CLH M
  • Instructor's office hours: M 4:30-5:30pm, W: 12-1pm, Lassonde Bld., 3052B
  • TAs:

Course description and Learning Outcomes

Artificial Intelligence (AI) is one of the oldest but also one of the most intriguing and stimulating areas of computer science. This course is the introductory exposition to AI. It covers, in some depth, the core subjects of current interest to AI: knowledge representation, reasoning, intelligent agents and their modeling, acting and planning, search, neural networks, and genetic algorithms. Other important subareas of AI, such as robotics or computer vision, and machine learning are discussed in depth in other courses.

Logic Programming (LP) in another thread of the course. There are two reasons for its inclusion in the course. First, LP is strongly related to the main AI subjects such as knowledge representation and reasoning. LP languages and their extensions are extensively studied in the context of intelligent agents and their modeling. Second, LP languages, such as Prolog, are used as programming tools by AI research community.

The course's learning objectives are to acquire a good understanding of the main AI research issues, problem solving methods, and techniques as well as to appreciate achievements of AI practitioners and to understand challenges faced by them in making AI practically feasible. Another learning objective is to introduce the students to the logic programming paradigm and to acquire a good understanding of a special relationship between AI and LP.

Course Evaluation

  • Assignment 1, 0.5%;
    deadline: Oct. 2
  • Assignment 2, 0.5%;
    deadline: Oct. 28
  • Assignment 3, 0.5%;
    deadline: Nov. 11
  • Assignment 4, 0.5%;
    deadline: tba
  • Test1, 29%;
    date: Oct. 9
  • Test2, 29%;
    date: Nov. 13
    There will be no makeup tests; if you miss a test for medical, compassionate, etc. reasons (valid in accordance with York Un. regulations and documented without delay), the weight of the missed test will be transferred to the next test or final exam.
  • Final Exam, 40%;
    date/location: tba
  • Assignment location: all assignments and their solutions will be deposited in /eecs/dept/course/2019-20/F/3401

Course Schedule (a tentative list of subjects to be covered in the course)

  • week 1: course overview; AI as a computer science discipline: AI defined, objectives, current directions.
  • week 2: general architecture of an AI agent, the role of knowledge representation and reasoning, resolution-based reasoning agents (clausal propositional logic, resolution).
  • week 3: Refutational principle, Robinson's theorem on resolution, level saturation algorithm, and speeding up resolution.
    Consult these lecture notes;
  • week 4: Resolution for Predicate Logic (PL): PL clauses, logic programming clauses, substitutions and unifiers, the resolution rule, refutation, refutation trees.
    Consult lecture notes in the course directory.
  • week 5: Resolution and Logic Programming: PROLOG
  • week 6: Programming in PROLOG: programs and goals, predefined predicates, executing PROLOG programs and goals, debugging, lists and trees.
  • week 7: Planning agents, actions and plans, STRIPS planning formalism. Consult notes on AI behavior in course directory.
  • week 8: Implementation of means-ends planner in PROLOG (see Bratko's text), intelligent search (the A* algorithm).
  • week 9: Neural Networks (NN): introduction (neuron, NN architectures, perceptron).
  • week 10: NNs cont.: perceptron learning lgorithm, back propagation NNs and their learning algorithm, applications.
    View these videos explaining BPNN architectures:
    video1 and
    video2 and
  • week 11: NN applications; genetic algorithms.

Course Readings

The presentation of most of the topics covered in this course has been developed using multiple sources such as textbooks, research papers, and information about industrial applications of AI. Hence, it is strongly recommended that students take adequate notes during lectures. However, all fundamental issues concerning these topics are covered in texts such as:

  • S. Russell and P. Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall;
    for more information on the textbook please dollow this link.
  • I. Bratko, PROLOG Programming for Artificial Intelligence Addison-Wesley (the 3rd edition is available from archive.org).
which are recommend for independent studies.

It is recommended that the SWI-PROLOG programming environment is used for programming assignments. Please consult the SWI-Prolog site for more information. SWI-PROLOG is EECS-supported (see manual pages for pl).

York University Computer Museum is Looking for Volunteers!

York University Computer Museum (YUCoM) is looking for student volunteers to help with various projects from archiving documents to arranging exhibits. If you would like to volunteer 1 hour a week of your time, 2 hours, or more, please contact the instructor. Thanks!