CPS 721: An Introduction
to Artificial Intelligence
Course Management Form
Mikhail Soutchanski. Phone: (416) 979 5000 ext 7954 (leave voicemail)
mes (at) cs (dot) ryerson (dot) ca
(write cps721 in "Subject")
||Computing and Engineering Bldg, 245 Church Street,
||Tuesday 15:00 - 16:00 and Thursday 12:00 - 13:00 (when there is
no departmental meeting)
- Arman Masoumi
email: a2masoum (at) scs.ryerson.ca
email: vbatusov (at) scs.ryerson.ca
Summary of Content:
There are cognitive tasks that people can do relatively easy,
but that can be difficult to program on a computer.
Artificial Intelligence (AI) is the science of developing
computer systems that can carry out these tasks.
Educational Objectives: enable students
to learn some of the fundamental topics that underly several areas of
modern AI and to get programming skills of developing AI applications.
Basic logic and resolution-style reasoning are briefly reinforced and
applied to solving problems such as combinatorial puzzles (e.g., scheduling).
Other basic notions from discrete structures are briefly reinforced
as well, such as basic modular arithmetic, functions and relations,
set cardinality and counting. The course introduces basic deductive
databases, and declarative conjunctive queries for information retrieval.
In addition, part of the course introduces
and reinforces techniques of developing recursive programs over general
recursive data structures (e.g., such as lists, trees, but other
recursive discrete structures are discussed as well). Several types of
search techniques are introduced including brute-force search,
recursive backtracking, heuristics, depth- and breadth-first traversals.
The course introduces PROLOG, the programming language
based on logic programming. The students get a working knowledge of
writing basic PROLOG programs. The course introduces syntax and semantics
of natural languages (such as English), syntactic analysis, parsing,
and context-free grammars. The final part of the course reinforces
conditional probability, Bayes Theorem, independence and introduces
reasoning in Bayesian Networks.
This course provides introduction to several important AI problems and
techniques, including knowledge representation and reasoning,
constraints satisfaction, search, natural language understanding,
planning, uncertainty, belief networks, learning.
Lectures: 3 hrs. Tutorials/Labs (including quizzes): 1 hr.
Prerequisites: (CPS 305, MTH 210, MTH 304).
Required Text Book:
Thinking as Computation: A First Course, written by
Published by the MIT Press, February 2012, 328 pp.
ISBN-10: 0-262-01699-0, ISBN-13: 978-0-262-01699-5.
Recommended Text Books:
Computational Intelligence: A Logical Approach
by David Poole, Alan Mackworth and Randy Goebel,
ISBN-13: 9780195102703, Publisher:
Oxford University Press, 576 pages, 1998.
Stuart Russell and Peter Norvig
Artificial Intelligence: A Modern Approach,
3rd edition, Copyright 2010, Publisher:
Prentice Hall, ISBN-13: 9780136042594, 1152 pages.
Topics (tentative sequence):
This course will provide undergraduate-level introduction to several important
AI problems and techniques,
including deductive reasoning,
finding solutions that satisfy a given set of constraints
(e.g., computing a schdule or interpreting visual scenes),
understanding natural language,
problem solving and planning,
pruning of search space,
Bayesian networks, other topics (if time permits).
Each topic takes about 2 weeks.
A moderate amount of Prolog programming will be required
as part of the course.
Policy on collaboration in homework assignments
The students are strongly encouraged to take notes in class,
and study their notes after class. Learning can be a gradual process
that requires time and efforts. The students benefit from attending lectures
and labs since some important details will be discussed only there.
For this reason, attending lectures and tutorials/labs is mandatory.
The quizzes, a midterm exam, and the
final exam may include problem solving, short essay questions
as well as writing Prolog code.
The duration of these examinations will be 15-45 min, 1h40min,
and 2h30min, respectively. Quizzes can be given at any time
without prior warning.
The final exam will be cumulative and will include all
the material covered throughout the term.
There will be no supplemental examination.
Grades are earned for the demonstration of knowledge.
If you miss a midterm test, a final exam or a deadline for an assignment
for medical reasons, you have to provide an
Academic Consideration form
to the department of Computer Science within 3 working days.
You have to bring your documents yourself to the CS reception.
Similarly, all documentation related to special accomodation or
academic consideration should be submitted to the CS program office within
the specified time limits.
Dates are subject to change, all changes will be announced in class and on
the course Web pages.
Assignments should be submitted on or
before the deadline specified in the assignment
(you are encouraged to submit assignments earlier).
Your assignment is considered late if any part of the assignment is late
(even if it is just 1 minute late).
The penalty for a late assignment is 10% off. No assignments
will be accepted if more than 24 hours late. Start solving your assignment
on the same day when it is posted. Do not procrastinate.
No make-up assignments.
Late assignments: to hand in the printout, you can give it in person to
a secretary at the CS reception and ask her to put a stamp on your assignment
to confirm that you handed in your assignment in time. Send email to the TA
who is responsible for marking this assignment: inform that a hard copy of
your assignments is available from the front desk.
All assignments have to be submitted electronically using a
special purpose script that you can run on any moon computer
(log in Linux operating system to run this script). You can submit
your assignment either locally from labs, or remotely from home.
You you have decided to submit it remotely, it is your responsibility
to make sure that you have ssh software installed at your home
computer. You need this software to login remotely into any of
the moons and run a specified script there. You are
expected to know basic UNIX commands and utilities. Also, it is
your responsibility to keep your Computer Science email account
in good standing and know your login/password information.
Contact one of system administrators if you have technical questions.
From time to time, I will hand out exercises.
The students are expected to solve the exercises, but
they will not be graded. However, working on exercises
will improve your understanding of this course
(and will help you to get better marks on tests).
Up to 5% extra credit may be assigned for active class participation
throughout the term
(a student attends most of the classes, participates actively by
asking/answering questions, solves exercises in class).
Tutorials/Labs are mandatory. Each student must attend only the section
where s/he is assigned.
Lab Marks: are given for participation and for submission of specific lab
exercises, as specified by T.A. The lab mark will be given only if
- the student attends the entire lab, and
- the T.A. observed the student actively working on the lab
(and if finished, on other questions from course notes), and
- the T.A. has recorded the student's attendance, and
- the student was present when attendance was
taken, which may be at any point during the lab.
- The lab mark
will be given for effort, but also for solution correctness.
- Late labs will not be accepted.
- There will be no make-up labs. The student who missed a lab
should try to solve independently the exercises given during
the lab time and verify the solutions with the T.A., or with lab partners.
- Lab groups can be different from assignment groups (see policy
on collaboration below).
Handouts and assignments will be made available on the Web only.
More specifically, they will be linked from the cps721 online course
shell on Blackboard. Also, you are responsible for visiting
the course Web pages regularly and reading all information that is
provided or linked from these Web pages. In particular, Frequently
Answered Questions (FAQs) related to cps721 home work will be linked
from this Web page. These FAQs are considered to be an integral part of
the assignment. Before sending your questions by e-mail to the instructor,
check these Web pages whether similar questions have been already answered.
- Email communication: please send me email from local Ryerson's
email addresses only: you can use either your departmental account
(preferred) or your university account to send email.
Email sent from Yahoo, Hotmail
and other popular domains can be filtered out as spam and might not
reach me. Email messages will be normally answered within 24 hours;
however, messages sent on weekend (starting from Friday evening) will be
usually answered on Monday.
Grades for tests and assignments will be
posted on Ryerson Blackboard
no later than two weeks after the due date (test date).
Marking guides, the assignments and
some other course related documents will be posted on the
only. Graded assignments, tests and labs will be usually returned to students
within two weeks. Marked quizzes will be returned at the next tutorial.
Those students who missed a class when their graded work
was returned are welcome to pick it up from the instructor during the posted
Limited collaboration in discussing general approaches to problems
is allowed (with students in your team); no collaboration is allowed
between teams. You may discuss assignments only with other people
currently taking the course.
However, you should never put your name on anything
you do not understand.
you must be able to reproduce and explain all solutions by yourself,
or solve similar exercises. If you cannot explain a solution that
you handed in, or if you cannot solve an exercise similar to questions
in your home work, this will negatively affect your grade. In
particular, you might be asked to solve exercises during the office
hours, during one of the labs, or in class (as a quiz). These unscheduled
tests or evaluations can be given at any time without prior notice.
Remember that if you work with partners,
you are still expected to know solutions of all exercises from the home
work. Grades are earned for the demonstration of knowledge.
In cases when a student fails to demonstrate knowledge about a
home work, the grade for the home work can be decreased to 0.
The first page of your homework should include: the name of all
students with whom you discussed any homework problems (even briefly).
Otherwise, it is assumed that you didn't discuss with anyone except the
instructor. Copied work (both original and copies) will be graded as 0.
Involvement with plagiarism will be penalized in accordance with
the departmental policy and the Student Code of Academic Conduct.
Committing academic misconduct, such as plagiarism and cheating,
will trigger academic penalties including failing grades,
suspension and possibly expulsion from the University.
As a Ryerson student, you are responsible for familiarizing yourself
Student Code of Academic Conduct.
Policy on Non-Academic Conduct
No disruption of instructional activities is allowed.
Among many other infractions,
the Code specifically refers to
the following as a violation: ``Disruption of Learning and Teaching -
Students shall not behave in disruptive ways that obstruct
the learning and teaching environment." In particular, the students
can use the laptops (and similar electronic devices) in class
only for taking notes. In difficult cases, penalties can be imposed
by the Student Conduct Officer.
Remarking / Recalculation Policy
Grades are earned for the demonstration of knowledge.
Read carefully the marking guide for the assignment or test you'd like
to be remarked. Your grade may go up, down, or remain the same.
Fill in this
remarking form (available online). Attach this form to the hard copy
of your assignment. Same rules apply if you request recalculation
to correct an arithmetical error in calculating your total score.
Forward your assignment and the remarking request form to the TA/GA who
marked your assignment. To do this, either hand in your remarking request
to the TA at the Lab time, or leave your remarking request
attached to the hard copy of your assignment at the Computer Science
reception (ask for a stamp with the date). Send email to the TA/GA to
inform that you left a remarking request. Normally, the marking guide
posted on Blackboard includes the name of the TA/GA who was responsible for
marking the assignment/test. It is your responsibility to forward your
remarking request to the right contact person.
Remarking request can be only submitted within 10
working days of the return of the graded work (quiz/assignment/test) in
class. It is your responsibility to pick up your quiz/assignment/test as
soon as possible. Late regrading requests will not be accepted.
Mark can decrease if TA finds something that was incorrectly
awarded too high a mark.
Tentative Course Calendar
(all changes of dates will be announced)
||Grade Value (%)
September 24, Tuesday
October 8, Tuesday
October 22, Tuesday
Friday, October 25, 4-6pm
November 12, Tuesday
November 26, Tuesday
The total mark is the sum of marks for assignments, quizzes, midterm and
the final exam.