Programming Paradigms
This module is jointly taught by Dr Edmund Furse and
Dr Ian Inglis.
Introduction
The course is assessed by 50% coursework and 50% examination.
There are two courseworks: one for functional programming in LISP, and one for logic programming in PROLOG.
This year the Functional Programming in LISP is being taught using an Intelligent Tutoring System on the web known as FPILT (Functional Programming in Lisp Tutor). This should be the only programming environment that you will need to use for LISP program development. You will need to register with the system, but please do not forget your password. Use a password unique to FPLIT so as to protect your own security. You can find FPILT
here.
In previous years there has been a high failure rate in this course which we intend to improve this year. Research into the Programming Paradigms figures has shown that attendance at tutorials correlates with performance at the 1% statistical significance level. This means that if you want to pass the course it is essential that you attend the tutorials. If you miss a week it is important that you catch up.
Each week there will be tutorial exercises for you to do. You need to allow TWO HOURS per week for this activity. If you successfully do the tutorial exercises you should have no difficulty with the assignment. Attempting a part of the assignment without doing the week's tutorial exercises will waste you time as you will not have done the appropriate prior learning, and is an approach likely to lead to failure. The assignment for Functional Programming in LISP is in five parts set on a weekly basis.
Plan of the Module
The plan of the module is as follows:
Week 1
Introduction to Programming Paradigms.
Introduction to Functional programming in LISP.
Lisp Web Tutor (new server): Section A
Lisp Web Tutor (old server): Section A
Please do not use the old server unless the new one has crashed.
.
Week 2
Predicates and Conditions. Lisp Web Tutor Section B
LISP environments.
.
Week 3
Ancilary Functions. Lisp Web Tutor Section C
Week 4
Recursion Part I.Lisp Web Tutor Section D
ELIZA.
The ELIZA LISP source code can be found here.
Week 5
Recursion Part II. Lisp Web Tutor Section E
Noughts and Crosses.
The noughts and crosses LISP program is here
Week 6
Programming Paradigms in LISP.
A Case Study: a scientific calculator design in LISP.
Weeks 7-11
Logic Programming
Week 12
Seven Paradigms.
Programming by Demonstration.
Week 13.
Revision
FPILT (Section G)
1998 Exam Paper (Sections A and B only).