Computing Science 325
Sept - Dec 2004
Purpose: To study the theory,
run-time structure, and implementation of selected non-procedural programming
languages, focussing on functional and declarative (logic-based) languages,
using examples from Lisp and Prolog.
This course introduces two different models
of computation, functional and declarative:
By the end of the course the students are
expected to have a good understanding of the theory and implementation
of both functional and declarative programming languages.
Functional programming relies on functions
as the main computation unit.
an overview of a modern functional language
Lambda calculus (which forms the theoretic
foundation of functional programming)
a series of extensions and simplifications
to the syntax of lambda calculus -- to show how a LISP interpreter can
be built, and how to produce an effective programming language and compiler
Declarative programming relies on reasoning techniques
to answer questions posed to a knowledge base.
a short discussion of expert systems that
are based on logic programs
foundational issues, including an overview
of propositional logic and predicate calculus
an overview of a modern logic programming
if time permits, an overview of Constraint Programming,
and perhaps Bayesian Belief Nets.
CMPUT 229 or EE 380,
G. Steele. Common LISP: The Language, 2nd Edition,
Digital Press, 1990. (On-Line & Free!)
- P. Kogge, The Architecture of Symbolic Computers,
L. Sterling and E. Shapiro,
The Art of Prolog, Second Edition, MIT Press,
L. C. Paulson, ML for the Working Programmer, Second Edition, Cambridge
University Press, 1996.
W. Clocksin and C. Mellish,
Programming in Prolog, Springer-Verlag, 1994
I. Bratko, Prolog Programming for Artificial
Intelligence (2nd edition), Addison-Wesley, 1990.
Note: no required textbooks.
Running Lisp, Prolog;
Additional Class Material;
Other Related Courses
News group: Much of the discussion of the
course material will take place in the news group: news:ualberta.courses.cmput.325
Office hours: Immediately after class (10:50-11:30 T Th), or by arrangements.
Information about TA
The evaluation of the students is based
on a combination of 4 assignments, a midterm exam, and a final
for current records of your marks.
Username: Your CS Username
Assignments (due dates are tentative; at 11:59pm)
Password: Your Student ID#
- Final exam cannot be rewritten.
- If you apply for a deferred final exam: the only time for the
deferred final exam is Fri 7 Jan 2005 at 2:00pm.
Interested in Artificial Intelligence in general? (You should be!)
Come to the weekly AI