Module Title:   Symbolic and Declarative Computing and Artificial Intelligence

Module Credit:   20

Module Code:   CM-0318L

Academic Year:   2015/6

Teaching Period:   Semester 1

Module Occurrence:   A

Module Level:   FHEQ Level 5

Module Type:   Linked 10+10

Provider:   Computer Science

Related Department/Subject Area:   SCIM (Dept of Computer Science)

Principal Co-ordinator:   Dr A Csenki

Additional Tutor(s):   -

Prerequisite(s):   None

Corequisite(s):   None

Aims:
To provide an introduction to the foundation of Symbolic and Declarative Computing. There are two main aims:

(a) To convey the basics of two programming paradigms, represented respectively by Haskell (a functional programming language) and Prolog (a logic programming language).

(b) To introduce the AI philosophy to computer science students and thereby to equip students with the basic techniques of AI. To discuss some of the application areas of AI.

Learning Teaching & Assessment Strategy:
Consists of lectures, laboratory study, tutorials and directed reading provide the opportunity to gain theoretical knowledge, which is assessed by examination, and practical skills which are assessed by coursework assignments. Teaching will involve lab sessions using Prolog implementations of pertinent algorithms. Students required to undertake supplementary assessment will be asked to repair deficiencies.

Lectures:   42.00          Directed Study:   132.00           
Seminars/Tutorials:   12.00          Other:   0.00           
Laboratory/Practical:   12.00          Formal Exams:   2.00          Total:   200.00

On successful completion of this module you will be able to...

1. Understand the basics of logical and functional programming techniques, and how AI techniques apply to practical problems
2. furnish in the said programming languages solutions to certain AI problems,
3. pursue further studies independently in AI and allied fields.

On successful completion of this module you will be able to...

1. Develop formal proof techniques in program construction, and understand and apply basic symbolic AI techniques.
2. Solve certain problems in AI using a dedicated program library (such as MATLAB`s Neural Network Toolbox)

On successful completion of this module you will be able to...

Pursue a systematic approach to the construction of programs; analyse and disassemble problems into their building blocks and build solutions based on this analysis. (Stepwise refinement, modularization and, more generally, creative thinking are all characteristics of the activities pursued here.)

  Examination - closed book 2.00 50%
 
  Examination
  Coursework   50%
 
  3 coursework assignments

Outline Syllabus:
Functional Programming. A basic course in Functional Programming in Haskell using the Hugs system. Reasoning about programs - Structural Induction.

Neural Networks. Classifiers, perception training algorithm, the delta rule, network of perceptions, the generalised delta rule (back propagation algorithm). Application: a rudimentary character recognition system.

Prolog. An introduction to Logic Programming through Prolog.

Propositional Calculus. Truth Tables. Reasoning & Resolution Proofs. Predicate Calculus.

AI Techniques. Search algorithms: Blind Search and Informed Search algorithms; Bayesian Networks - a method for inference under uncertainty; basic probability theory, the Bayesian network, Bayesian network adapting, handling evidence, inexact inferencing.

Version No:  4