Computing Science 325
Non-Procedural
Languages
Sept - Dec 2004
Course Description
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:
-
Functional programming relies on functions
as the main computation unit.
Topics include:
-
an overview of a modern functional language
(LISP)
-
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.
Topics include:
-
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
language (PROLOG)
-
if time permits, an overview of Constraint Programming,
and perhaps Bayesian Belief Nets.
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.
Prerequisite:
CMPUT 201,
CMPUT 204,
CMPUT 229 or EE 380,
MATH 120.
Resources
-
Recommended Textbooks:
-
G. Steele. Common LISP: The Language, 2nd Edition,
Digital Press, 1990. (On-Line & Free!)
- P. Kogge, The Architecture of Symbolic Computers,
McGraw-Hill, 1991.
-
L. Sterling and E. Shapiro,
The Art of Prolog, Second Edition, MIT Press,
1994.
-
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
(4th ed).
-
I. Bratko, Prolog Programming for Artificial
Intelligence (2nd edition), Addison-Wesley, 1990.
-
Note: no required textbooks.
Lecture Notes
Auxiliary Material:
Running Lisp, Prolog;
Study Guides;
Additional Class Material;
Sample Exams;
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
Logistics
Questionnaire
Office hours: Immediately after class (10:50-11:30 T Th), or by arrangements.
Information about TA
and Labs
Evaluation
The evaluation of the students is based
on a combination of 4 assignments, a midterm exam, and a final
examination.
See
GradeBook
for current records of your marks.
To access:
Username: Your CS Username
Password: Your Student ID#
Assignments (due dates are tentative; at 11:59pm)
Exams
-
Final exam:
- 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
Seminar!