UNIVERSITY OF MALTA
DEPARTMENT OF COMPUTER SCIENCE & A.I.
Study

Units offered for the
Academic Year 1999/2000
CSI101
Principles of Structured Specification and Design
Lecturer:
Dr Ernest Cachia
Semester
:
1
st
& 2nd
Prerequisites:
none
Leads to:
CSM203, CSM209
Credits: 2
Tutorials/Practicals: 4
Lectures:
28
Method of Assessment:
Test (85%)
Assignment (15%)
This unit is not in any way a "programming" course. It will, however, expose students to some
very
limited practical programming in the form of examples to consolidate theoretical discussion. This unit
introduces the basic concepts of imperative programming languages from the viewpoint of algorithmic
structures and virtual computation. Such notio
ns as state, variable, and transition through assignment and
input; the notion of syntax and semantics; and data declaration and usage; the visual representation of
control flow; the basic programming constructs namely sequence, selection, and repetition;
sub

program
control and referencing environments, structure theorems and program conversion will be
introduced
and
discussed. Furthermore, this unit will introduce a rigorous structured approach to program specification
and design using simple universal co
ncepts, constructs, and guidelines applied in an ever increasing
spectrum of development environments. The unit will introduce the student to such basic concepts as
principles governing modularity and module structure and relationships, through basic progr
amming
paradigms such as stepwise refinement and levels of abstraction, to an introduction to the ideas behind
standard analysis and design paradigms. All the principles expounded in the unit are accompanied by
practical examples whenever possible.
Textb
ooks:
Pratt, M. V. Zelkowitz.
Programming Languages Design and Implementation.
Prentice Hall. ISBN
0

13

678533

6.
D Bell et al .
Software Engineering: a Programming Approach.
Prentice Hall.
Yourdon, L L Constantine.
Structured Design

Fundamentals of
a Discipline of Computer Program
and Systems Design.
Yourdon Press/Prentice Hall. ISBN 0

13

854471

9.
Page

Jones.
The Practical Guide to Structured System Design.
Prentice Hall ISBN 0

13

690777

6.
Any standard textbook that deals with specific progra
mming languages (e.g. Pascal, C, Ada,
Modula2/3. etc.) would also be an asset as reference for examples of practical implementations.
CSI103
Data Structures and Algorithms
Lecturer:
Mr John Abela
Semester:
2
nd
Prerequisites:
None
L
eads to::
N/A
Credits: 2
Tutorials/Practicals: 4
Lectures:
28
Method of Assessment:
Test (80%)
Assignment (20%)
This two credit unit introduces the concepts of algorithm and data structure, highlighting the relation that
exits between the two. T
he concepts are introduced in a gradual fashion, proceeding from abstract
principles to concrete examples. Correctness and efficiency will be emphasised as the main properties of
algorithms. A number of algorithms will be discussed, with emphasis on sortin
g, searching, graph and
tree processing, and hashing techniques. Abstract data types (ADTs) will be formally defined and
illustrated with case studies for list, stack, queue, priority queues and heaps, and the ADT table. The ‘Big
O’ notation will be introd
uced as a formal framework for describing the resource use (i.e. time and space)
of an algorithm. Topics covered include: graphs and their associated searching and traversal algorithms,
hashing techniques, AVL trees, 2

3 trees, and B

trees.
Main textb
ook:
T Cormen, C. E. Leiserson, and R. Rivest.
Introduction to Algorithms
, McGraw Hill
Other Textbooks:
Mark Allen Weiss.
Data Structures and Algorithm Analysis
. Benjamin Cummings.
V Aho, J E Hopcroft, J D Ullman.
Data Structures and Algorithms.
CSI106
Introduction to Functional Programming
Lecturer:
Prof Juanito Camilleri
Semester:
1st
Prerequisites:
None
Leads to:
CSM208
Credits: 1
Tutorials/Practicals: 4
Lectures:
14
Method of Assessment:
Test
The central theme of this unit is th
e notion of programming with mathematical functions. The primitive
constructs of the calculus

naming, abstraction, and application

are presented as a crude means to
express computable functions. Through a judicious choice of syntactic sugaring on term
s of the calculus,
the constructors of a functional language are defined. The main issues of functional programming are then
explored. Some hands

on programming tutorials will be organised.
Textbooks:
R Bird, P Wadler.
Introduction to Functional Progr
amming.
Prentice Hall.
G Michaelson.
An Introduction to Functional Programming through Lambda Calculus.
Addison

Wesley ISBN 0

201

17812

5
CSI107
Introduction to Logic and Logic Programming
Lecturers:
Mr M. Rosner/Mr. M. Montebello.
Semester:
1st a
nd 2nd
Prerequisites:
None
Leads to:
CSM205, CSM212
Credits: 2
Tutorials/Practicals: 8
Lectures:
28
Method of Assessment:
Test: 90%;
Coursework 10%
This unit offers an introduction to the practice of logic programming and the principles o
f logic that
underly it. The first semester addresses the fundamental issues and aims to:
introduce logic as the study of valid argument;
present the syntax and semantics of logic languages (propositional and predicate calculus) and
associated proof met
hods;
outline the relationship between logic and logic programming.
Practical experience during the first semester will be organised around
Tarski's World
, a software tool
designed to show the relationship between a formal logical language and a closed
“world” that the logic is
able to describe.
The second semester pursues the theme of logic programming by offering a comprehensive introduction
to the syntax, semantics and features of Prolog, a well

known logic programming language that has been
used ex
tensively in a wide variety of AI application areas. The approach will be organised around a
series of carefully chosen laboratory exercises.
Textbooks:
Barwise J. and J.Etchemendy.
The Language of First Order Logic.
CSLI Publications 1993
.
ISBN
0

9
37073

99

7.
Burke E. & E. Foxley.
Logic and its Applications
Prentice

Hall 1996. ISBN 0

13

030263

5.
Sterling and E. Shapiro.
The Art of Prolog (2nd Edition).
MIT Press 1994
.
ISBN 0

262

19338

8.
5.4
Introductory “Complementary Compulsory” Units
All students reading the B.Sc. (Hons.) I.T. degree programme must read all “Complementary
Compulsory” units, but, these units are not “compulsory” in the sense of Regulation 6(10) (i.e. failing).
ICU101
Discrete Mathematics
Lecturer:
Dr Alex Mifsud
Semester:
1st and 2nd
Credits: 2
Tutorials/Practicals: 4
Lectures:
24
Method of Assessment:
Test (85%)
Assignment (15%)
The aims of the course are several: primarily, it is intended to introduce the basic mathematical notions
required for the rigor
ous treatment of many aspects of information technology. A secondary aim is to
expose the students to a formal presentation of mathematical ideas, especially the notions of syntax, model
and proof. It is emphasised that the course is introductory in cont
ent and spirit and does not aim at
instilling a comprehensive understanding of the subject; rather, the intention is to convey the core ideas
and an appropriate style of reasoning .
Part 1:
Propositional and predicate calculi; set theory; relations; func
tions; graphs and trees.
Part 2:
Natural numbers, mathematical induction; cardinals and ordinals; recursion; simple algebraic structures
(semigroups, monoids, lattices).
Textbooks:
S. S. Epp.
Discrete Mathematics with Applications.
PWS Publishing Co
mpany. ISBN 0

534

09630

1.
R. P. Grimaldi.
Discrete and Combinatorial Mathematics: An Applied Introduction.
Addison Wesley.
ISBN 0

201

60044

7.
J. P. Tremblay R. Manohar.
Discrete Mathematical Structures with Applications to Computer
Science
. McGraw

Hill
International Editions. ISBN 0

07

100322

3.
5.7 Intermediate Units in Computer Science
CSM201
Compiling Techniques
Lecturer:
Mr Herbert Zarb
Semester:
3rd
Prerequisites:
CSI102
Leads to:
CSA305
Credits: 2
Tutorials/Practicals: 8
Lectures:
20
Method of Assessment:
Test (60%)
Assignment (40%)
This unit discusses the basic concepts of compilers and compiling techniques. It builds on the theory of
formal languages presented in
Introduction to Formal Languages and Automata
(CSI102) and present
s
the concepts behind
Lexical Analysis: revisiting finite state machines, automata, and regular expressions to proceed to
token specification, Thompson's construction, and lexical analyser generators,
Parsing and Syntax Analysis: revisiting context

free
grammars to proceed to LL / LR parsing, top

down parsing, bottom

up parsing, operator precedence parsing, and parser generators,
Code Generation: describing the notions of intermediate languages and register machines and
proceeds to cover control flow,
and symbol

table handling, and
Textbooks:
Aho, Sethi, Ullman.
Compilers: Principles, Techniques, and Tools.
Bennet.
Introduction to Compiling Techniques.
Trembley, Sorensen.
Theory and Practice of Compiler Writing.
CSM202
Operating Systems
Lecturer:
Mr Kevin Vella
Semester:
3rd
Prerequisites:
None
Leads to:
CSM210
Credits: 2
Tutorials/Practicals: 4
Lectures:
24
Method of Assessment:
Test
The aim of this unit is to discuss the issues involved in designing a general purpose
multiprogramming
operating system, and to enable students to interact with the internals of a real operating system. The first
part of the course covers topics such as the role of an operating system in providing a process abstraction,
CPU scheduling, inte
rprocess synchronisation and communication, memory management, virtual
memory, file system facilities, I/O device handling, as well as adequate security and protection. These
concepts are subsequently reinforced through a hands

on approach in the second pa
rt, where the UNIX
system and the C language will be used to experiment with operating system facilities in avenues such as
process manipulation, signal handling, memory management, filing, and interprocess communication
(pipes, semaphores, shared memory a
nd message queues).
Textbooks:
Silberschatz and P. Galvin. Operating System Concepts. 5th Ed. Addison

Wesley 1998. ISBN 0

201

59113

8.
W.R. Stevens. Advanced Programming in the UNIX Environment. Addison

Wesley 1992. ISBN 0

201

56317

7.
K. Haviland,
D. Gray and B. Salama. UNIX System Programming. 2nd Ed. Addison

Wesley 1998.
ISBN 0

201

87758

9.
CSM203
Introduction to Software Engineering
Lecturer:
Dr Ernest Cachia
Semester:
3rd
Prerequisites:
CSI101
Leads to:
CSA304
Credits: 1
Tutorials/
Practicals: 4
Lectures:
14
Method of Assessment:
Test (85%)
Assignment (15%)
This unit introduces a rigorous engineering approach to the construction of reliable software systems. It
will take the student from the basic heuristic as well as more f
ormal principles outlining software
engineering, through a systematic insight into software quality aspects and their indicative nature. This
unit will also offer students insight into system representation forms, further analyse the principles behind
the
definition of system specifications which lie at the basis of correct system development.
Further
approaches such as software fault tolerance and reusability techniques will also be discussed.
Textbooks:
J E Cooling.
Software Design for Real

Time Syst
em.
Chapman and Hall
Ghezzi, et al.
Fundamentals of Software Engineering.
Prentice

Hall. ISBN 0

13

818204

3.
Behforooz, F J Hudson.
Software Engineering Fundamentals.
Oxford University Press. ISBN 0

19

510539

7.
I Sommerville.
Software Engineering
. 5th edition Addison

Wesley.
CSM204
Logic and Computation
Lecturer:
Dr Alex Mifsud
Semester:
3rd
Prerequisites:
ICU101 CSI102
Leads to:
CSM206
Credits: 2
Tutorials/Practicals: 4
Lectures:
24
Method of Assessment:
Test (85%)
Assignm
ent (15%)
The Church

Turing thesis states that all models of computable functions are equivalent. This course
explores the evidence for this thesis by relating the partial recursive functions, the lambda calculus and
turing machines.
Turing machines ar
e introduced as models of computation and variants are shown to be equivalent. The
notion of encoding TMs leads to the idea of a Universal TM. The equivalence in expressive power of
turing machines, the lambda calculus and the partially recursive functio
ns is shown. The course ends with
treatment of the halting problem,
reducability between problems and decidability.
It is assumed that partial recursive functions and the lambda calculus have already been introduced. The
course will start where CSI102 l
eft off.
The material in this course is derived from various textbooks. In particular, the exposition on Turing
Machines will mainly follow Lewis and Papadimitriou while the material on the lambda calculus and
decidability will be based on Hankin.
Text
books:
H R Lewis, C H Papadimitriou.
Elements of the Theory of Computation.
Prentice Hall. ISBN 0

13

273426

5.
Chris Hankin.
Lambda Calculi: A Guide for Computer Scientists
. Oxford University Press. ISBN 0

19

853840

5.
J E Hopcroft and J D Ullman.
In
troduction to Automata Theory, Languages and Computation
.
Addison Wesley. ISBN 0

201

02988

X.
CSM205
Formal Specification, Verification and Refinement using Z
Lecturer:
Mr Gordon Pace (or replacement)
Semester:
4
th
Prerequisites:
CSI107
Leads to:
CSA304
Credits: 2
Tutorials/Practicals: 4
Lectures:
24
Method of Assessment:
Test
(85%)
Assignment (15%)
This unit introduces the use of Z as a specification, documentation and formal reasoning language in
various phases of general system deve
lopment.
Specification and documentation: A mathematical notation is ideal to reduce ambiguity
from specifications.
System consistency: Z can be used to perform consistency checks.
System verification: Once a system is specified, it can be reasoned about
formally, hence
enabling us to prove properties and verify invariants.
System refinement: We can also formally define what we mean when we say that an
implementation is correct with respect to a particular specification. This part of the course
identifie
s methods using which we can gradually refine a specification into code.
Textbooks:
Jim Woodcock, Jim Davis.
Using Z: Specification, Refinement and Proof.
Prentice

Hall International
1996.
J.M. Spivey.
The Z Notation: A Reference Manual 2ed
. Prentice

Hall International 1992.
J. Bowen.
Formal Specification and Documentation Using Z: A Case Study Approach.
International
Thomson Computer Press, 1996.
CSM206
Language Hierarchies and Algorithmic Complexity
Lecturer:
Mr Gordon Pace (or replacement)
Sem
ester:
4th
Prerequisites:
CSM204
Leads to:
CSA303
Credits: 1
Tutorials/Practicals: 2
Lectures:
14
Method of Assessment:
Test
This course starts off from where CSI102 (Introduction to Formal Languages and Automata) left off.
Regular and contex
t free languages are now discussed within a wider context

the Chomsky language
hierarchy. A number of properties of this hierarchy are proved and the relation of these language classes
with respect to recursive and recursively enumerable languages is det
ermined.
The course terminates with a brief overview of one other possible language classification

using as a
measure the time needed by a Turing machine to recognise whether a string is in the language or not. We
define the classes P and NP and end wi
th the question of whether P=NP.
Textbooks:
J E Hopcroft, J D Ullman.
Introduction to Automata Theory, Languages and Computation
. Addison

Wesley. ISBN 0

201

02988

X.
M R Garey, D S Johnson.
Computers and Intractibility: A Guide to the Theory of NP

Co
mpleteness
.
Freeman. ISBN 0

7167

1045

5.
M Sipser,
Introduction to the Theory of Computation
. PWS Publishing Company 1997.
CSM207
Parallel Computing
Lecturer:
Mr Kevin Vella
Semester:
4th
Prerequisites:
CSM202
Leads to:
CSA301
Credits: 1
Tuto
rials/Practicals: 4
Lectures:
14
Method of Assessment:
Test
This unit aims to introduce parallel computing as a host of emerging technologies which offers a
departure for mainstream computing from the physical limits imposed by traditional Von Neuma
nn
computing. An alternative view of parallel computing as an enabling technology for supercomputing
(solving problems which require computing power significantly superior to that available in current
typical systems) is also explored. Current research is
sues in parallel systems (architecture and system
software), parallel models of computation, programming parallel systems, and parallel algorithms will be
briefly discussed. This course provides a broad background for students opting for the Advanced Unit
in
Parallel and Distributed Systems (CSA301), while exposing other students to a glimpse of future
computing.
Textbooks:
G S Almani. A Gottlieb
Highly Parallel Computing.
Addison

Wesley
K C Bowler et al.
An Introduction to occam2 Programm
ing
. Chartwell

Bratt
CSM208
Functional Programming in Standard ML
Lecturer:
Prof Juanito Camilleri (or replacement)
Semester:
3rd
Prerequisites:
CSI106
Leads to:
CSA303
Credits: 2
Tutorials/Practicals: 8
Lectures:
20
Method of Assessment:
Test (75%)
Assignment (25%)
This unit extends the concept covered in
Introduction to Functional Programming
(CSI106) and aims to
give students practical experience in the field.
The features of Standard ML are presented with particular emphasis on h
igher

order functions, structures,
functors over structures, and input/output mechanisms.
Textbooks:
L C Paulson.
ML for the Working Programmer.
Cambridge University Press.
R Bosworth.
A Practical Course in Functional Programming Using Standard M
L
.
Mc Graw Hill.
CSM209
Principles of Object

Oriented Software Engineering
Lecturer:
Mr Patrick Abela / Mr Alan Zammit
Semester:
3rd and 4th
Prerequisites:
CSI101
Leads to:
CSA304
Credits: 2
Tutorials/Practicals: 8
Lectures:
20
Method of Asse
ssment:
Test (70%)
Assignment (30%)
The first part of the unit introduces the principles of the object

oriented paradigm. Properties which
characterize typical class

based languages, such as classes, objects, inheritance, subtyping and
subclassing
will be discussed and described through the UML notation. These properties will be
considered also in context of existing object

oriented languages such as Ada, C++, Emerald, Smalltalk,
and to a much greater extent in Java.
The second part of the unit f
ocuses on the Java programming language, covering Java's support for
building GUIs, threads, object persistence, Remove Method Invocation, and introspection. The remainder
of the unit will give an overview of some standard APIs which further enhance the Ja
va programming
language.
Textbooks:
G Booch.
Object

Oriented Analysis and Design with Applications
2nd Ed. Benjamin Cummings
H Deitel, P Deitel.
Java: How to Program.
2nd Ed. Prentice Hall.
CSM210
Programming in C
Lecturer:
Mr Christopher Staff
Semester:
3rd
Prerequisites:
CSM202
Leads to:
CSA301
Credits: 1
Tutorials/Practicals: 14
Lectures:
14
Method of Assessment:
Test (85%)
Assignment (15%)
This unit will introduce the C language and elaborate on language features such as oper
ators, functions,
pointers, dynamic memory allocation and structures, as well as standard library facilities for standard and
file I/O and string handling. Program structuring using multiple files and header files will be encouraged,
and practical implemen
tation tasks involving the maintenance of complex dynamic data structures will be
tackled in a hands

on environment.
Textbooks:
B W Kernighan D M Ritchie.
The C Programming Language (2nd Edition).
R W Stevens.
Advanced Programming in the Unix.
Envi
ronment.
CSM211
Distributed Operating Systems
Lecturer:
Mr Kevin Vella
Semester:
4th
Prerequisites:
CSM202
Leads to:
CSA305 CSA307
Credits: 2
Tutorials/Practicals: 8
Lectures:
20
Method of Assessment:
Test (85%)
Assignment (15%)
This course
builds on CSM202 (Operating Systems), discussing current trends in network and distributed
operating systems design. Basic issues such as networking support in network operating systems,
communication and synchronisation in distributed systems and related
paradigms such as streams and
remote procedure calls will be introduced. Subsequently, the problems involved in offering distributed
file system and naming services, as well as the issues of replication and fault tolerance in distributed
systems will be
discussed. Throughout the course, the protocols and services that underlie the Internet,
particularly TCP/IP, DNS and NFS, will be given special attention as case studies. The latter portion of
this double credit will be dedicated to TCP/IP socket programm
ing in C under UNIX, in order to ensure
that students gain adequate Internet programming skills at the socket level.
Textbooks:
Silberschatz and P. Galvin. Operating System Concepts. 5th Ed. Addison

Wesley 1998. ISBN 0

201

59113

8.
G. Coulouris, J. D
ollimore and T. Kindberg. Distributed Systems: Concepts and Design. 2nd Ed.
Addison

Wesley 1994. ISBN 0

201

62433

8.
W.R. Stevens. TCP/IP Illustrated, Volume I: The Protocols. Addison

Wesley 1994.
D. Comer and D. Stevens. Internetworking with TCP/IP, Vol
ume III: Client

Server Programming
and Applications (BSD Socket Version). 2nd Ed. Prentice

Hall 1996. ISBN 0

13

262148

7.
CSM212
Techniques in Artificial Intelligence
Lecturer:
Mr Mike Rosner/Mr John Abela
Semester:
4th
Prerequisites:
CSI107
Leads
to:
CSA305 CSA307
Credits: 2
Tutorials/Practicals: 8
Lectures:
20
Method of Assessment:
Test (80%)
Assignment (20%)
This unit aims to familiarise students with the nature of AI problems and related practical techniques. The
course is divided int
o two parts, each of which includes a practical assignment.
Part I is concerned with fundamental issues and serves as an introduction to the subject, its goals, and the
use of symbolic programming techniques using Prolog. Topics include:
Formal Problem
Solving
Search Techniques
Game Playing
Knowledge Representation and Inference
Linear and Non

Linear Planning
Constraint Propagation Algorithms
Part II is oriented towards the following topics:
Definition of Search and Optimization problems in numeric d
omains
Analytical Optimization Techniques
Definition of Function Approximation problems (i.e. Function Learning or Synthesis)
ANNs (architecture, design, and implementation in C, C++, or Java), The Error Back Propagation
Learning Algorithm.
Genetic and Evo
luntionary Algorithms (background, design and implementation in C, C++, or Java)
Montecarlo Techniques applied to Search and Optimization problems.
Artificial Life.
WISARD neural network for scene analysis
The emphasis will be on the design and implementa
tion of programs that solve various search,
optimization, and function approximation problems using Neural Networks, Genetic Algorithms, and the
Montecarlo random search techniques. Problems examined include: OCR, machine vision, speech
recognition, schedu
ling, pattern recognition, and some NP complete problems. Students taking this unit
will be proficient in one of the following: C, C++, or Java.
Textbooks (part 1):
Russell and P Norvig.
Artificial Intelligence, a Modern Approach.
Prentice Hall, 1994
. ISBN 0

13

103805

2
Yoav Shoham.
Artificial Intelligence Techniques in Prolog.
Morgan Kaufmann ISBN 1

55860

167

8
Reference Materials (part 2):
David E. Goldberg,
Genetic Algorithms in Search, Optimization, and Machine Learning
.
Igor Aleksander and
Helen Morton,
An Introduction to Neural Computing.
Course notes in the form of key papers will also be provided by the lecturer for part II
CSA213
Introduction to Computer Graphics
Lecturer:
Mr John Abela
Semester:
4
th
Prerequisites:
CSI103
Lea
ds to:
CSA402
Credits: 1
Tutorials/Practicals: 4
Lectures:
14
Method of assessment:
Exam (80%)
Assignment (20%)
This unit introduces the area of computer graphics (CG) and discusses its many applications with
particular reference to graphical
user interfaces (GUIs). Topics covered include: PC graphics hardware,
drawing primitives, transformations, clipping, viewing, three

dimensional rendering, buffering, and
texture mapping. Students taking this unit will be proficient in one of the following:
C, C++, Pascal,
Delphi, Visual BASIC, or Java.
Main Textbook:
Plastok, Kelley.
Computer Graphics
, Schaum’s Outline Series.
Reference Textbooks:
Hearn and P. Baker.
Computer Graphics.
Prentice Hall.
Foley and Van Dam.
Introduction to Computer Graphi
cs.
Addison Wesley.
5.11 Advanced Units in Computer Science
(3rd Year)
CSA301
Concurrent and Distributed Systems
Lecturer:
Mr Kevin Vella
Semester:
6th
Prerequisites:
CSM207 CSM211
Leads to:
CSA401
Credits: 1
Tutorials/Practicals: 4
Lect
ures:
4
Method of Assessment:
Test (85%)
Assignment (15%)
This unit will expose students to programming with concurrent languages, and programming with
communicating processes in particular. Occam, a multithreaded parallel programming language, wil
l be
introduced, and a selection of parallel algorithms, including parallel sort, will be implemented in this
language. The skills that the student is expected to acquire through this course are relevant in the current
computing scene,where multithreaded p
rogramming is emerging in the mainstream and application
developers are expected to take on threads and concurrency in their stride.
Textbooks:
East.
Parallel Computing with Communicating Process Architectures
. UCL Press.
CSA302
Multimedia Systems
L
ecturer:
Mr Christopher Staff
Semester:
Prerequisites:
Credits: 1
Tutorials/Practicals: 2
Lectures: 14
Method of Assessment:
Test (100%))
This lecture course provides a grounding in the broader issues of Multimedia and Multimedia Systems.
Areas
covered will include multimedia standards; resource formats; compression techniques;
requirements of multimedia operating systems; distributed multimedia; and the Internet and the World

Wide Web.
Recommended Reading:
Furht and M Milenkovic.
A Guided To
ur of Multimedia Systems and
Applications
. IEEE Computer Society Press 1995. ISBN 0

8186

7054

1.
Steinmetz and K Nahrstedt.
Multimedia: Computing, Communications and
Applications
. Prentice Hall 1995. ISBN 0

13

324435

0.
Course Web Site: http://www.cs.u
m.edu.mt/~cstaff/courses/lectures/csa302/index.html
CSA303
Semantics of Programming Languages
Lecturer:
Dr Alex Mifsud
Semester:
5th
Prerequisites:
CSM206 CSM208
Leads to:
CSA403
Credits: 1
Tutorials/Practicals: 4
Lectures:
14
Method of Ass
essment:
Test (85%)
Assignment (15%)
Semantics is the study of meaning; as applied to programming languages, semantics deals with eliciting
or assigning a precise description of the behaviour of programs. It is desirable to determine the meaning
or b
ehaviour of a program in terms of the meaning of the subprograms and programming constructs used
to build it.
One reason for studying the semantics of programming languages is to support reasoning about programs,
and in particular to be able to relate spe
cifications with the programs that satisfy them. This study

unit is
intended to provide a gentle introduction to operational semantics by considering a simple imperative
language and a simple functional language (separately).
The first phase of the course
will deal with the operational semantics of a simple imperative programming
language at various levels of abstraction from translation to the operations of a stack

based abstract
machine to structured operational semantics. In the second phase of the cou
rse, a simple functional
programming will be studied, with gradual incorporation of imperative features.
Textbooks:
Glynn Winskell.
The Formal Semantics of Programming Languages: an Introduction
. MIT Press.
ISBN 0

262

23169

7.
Carl A Gunter.
Semantics
of Programming Languages: Structures and Techniques
. MIT Press. ISBN
0

262

07143

6.
Lecture notes
CSA303
Computability and Complexity
Lecturer:
Dr Alex Mifsud
Semester:
3rd
Prerequisites:
ICU101 CSI102
Leads to:
CSM206
Credits: 2
Tutorials/
Practicals: 4
Lectures:
24
Method of Assessment:
Test (100%)
This unit deals with models of computation that allow reasoning about the limitation of algorithmic
approaches to solving problems.
Turing machines are introduced as models of computatio
n and variants are shown to be equivalent. The
encoding of TMs in terms of a tape alphabet leads to the idea of a Universal TM. This allows the
exposition of the halting problem. The notion of decidability and the technique of reducability between
prob
lems are then introduced and applied to various problems.
The later part of the course deals with relating resource bounds to algorithms. Both time and space
measures will be introduced, but emphasis will be placed on the classes P and NP.
Textbooks:
H R Lewis, C H Papadimitriou.
Elements of the Theory of Computation.
Prentice Hall.
ISBN 0

13

273426

5.
M R Garey, D S Johnson.
Computers and Intractibility: A Guide to the Theory of NP

Completeness
.
Freeman. ISBN 0

7167

1045

5.
CSA304
Software En
gineering and CASE Technology
Lecturer:
Dr Ernest Cachia
Semester:
5th
Prerequisites:
CSM203 CSM205 CSM209
Leads to:
CSA404
Credits: 1
Tutorials/Practicals:4
Lectures:
14
Method of Assessment:
Test: 85%
Assignment: 15%
The intent of this u
nit is to apply previously gained knowledge, with some additions introduced in this
unit, to the basic concepts in the specification, generation and application of software development
methodologies, to illustrate various techniques used in the creation o
f specific and effective software
development environments. Fundamental concepts, such as formal methods, software metrics, software
testing and quality assurance, lying at the heart of certain individual diagramming techniques are
discussed. The underlyin
g principles of procedure

based and function

based methodologies and the theory
behind methodology interaction will be discussed. Whenever possible theoretical material will be
supplemented with practical examples.
Textbooks:
Behforooz, F J
Hudson. Sof
tware Engineering Fundamentals.
Oxford University Press. ISBN 0

19

510539

7
Gomaa.
Software Design Methods for Concurrent and Real

Time Systems.
Addison

Wesley. ISBN 0

201

52577

1.
C. Ghezzi, M. Jazayeri, D. Mandrioli.
Fundamentals of Software Engin
eering.
Prentice

Hall
International Editions. ISBN 0

13

818204

3
E Cooling.
Software Design for Real

time Systems.
Chapman and Hall.
I Sommerville.
Software Engineering.
5th edition Addison

Wesley. ISBN 0

201

56529

3.
CSA305
Natural Language Pr
ocessing
Lecturer:
Mr Michael Rosner
Semester:
5th
Prerequisites:
CSI107, CSM212
Leads to:
CSA405
Credits: 1
Tutorials/Practicals: 4
Lectures:
14
Method of Assessment:
Test (85%)
Assignment (15%)
This course provides a self

contained introd
uction to Natural Language Processing systems. A practical
approach will be adopted using Prolog along with Definite Clause Grammars in order to relate the
concepts introduced to concrete programming techniques. By the end of the course the student will
have
acquired the necessary grounding to tackle the topics for the two

unit advanced course CS405. Topics
covered will include:
Basic concepts of theoretical and computational linguistics;
Natural language parsing techniques;
Grammar formalisms;
Intro
duction to semantics and semantic representation.
Textbooks:
James Allen.
Natural Language Understanding.
Menlo Park: Benjamin Cummings 1987. ISBN 0

8053

0334

0.
F. Pereira and S. Shieber.
Prolog and Natural Language Analysis.
CSLI Lecture Notes No. 1
0, 1987.
ISBN 0

937073

18

0.
CSA307
Machine Learning and Knowledge

Based Reasoning
Lecturer:
Mr John Abela
Semester:
6th
Prerequisites:
CSM212
Leads to:
CSA407
Credits: 1
Tutorials/Practicals: 4
Lectures:
14
Method of assessment:
Exam
(80%)
Assignment (20%)
The ability to reason is one of the things which is claimed to differentiate humans from animals. This
ability, however, would be very myopic if it was not possible for humans to learn, not only from their
own mistakes and the
mistakes of others, but also by increasing knowledge through observation, to
improve their performance through experience. There has been, and there continues to be, great interest in
developing machines which, when provided with mechanisms to obtain knowl
edge through ‘rote’
learning or experience, can reason with that knowledge in order to solve problems which have not
necessarily been encountered before. Machine Learning and Knowledge Based Reasoning are two major
tracts in Artificial Intelligence. Althou
gh they have separate roots, techniques from both are used in
conjunction with each other to build more flexible, robust and longer

lived systems in areas such as
Decision Support, Information Retrieval, User Modelling, Adaptive Systems, Autonomous Systems
,
Computer Vision, Diagnostics, Robotic Control, etc. This unit is divided into two parts:
Machine Learning
: (7 lectures) Machine learning is concerned with computer programs that
automatically improve their performance through experience. This half

unit
introduces the main ideas in
computational learning theory (COLT) and also a number of inductive learning algorithms. The main
topics covered are: The PAC (probably approximately correct) learning framework, inductive bias of
learning algorithms, reduction
s among learning problems, VC dimension, and Occam’s Razor. The Find

S, Candidate Elimination, and ID3 inductive learning algorithms are presented.
Knowledge Based Reasoning
: (7 lectures)
Introduction to knowledge based systems; knowledge
representation:
rules, semantic nets, frames, object

oriented systems, Petri nets, hybrid representations;
knowledge acquisition, verification and validation; automated inference: forward chaining, backward
chaining, direct chaining. Hands on experience using an expert sy
stem shell.
Main Textbooks:
T Mitchell.
Machine Learning.
McGraw Hill.
C Nikolopoulos.
Expert Systems.
Marcel Dekker Inc. 1997. ISBN 0 8247 9927 5.
5.14 Advanced Units in Computer Science
(4th Year)
CSA401
Concurrent and Distributed System
s
Lecturer:
Mr Kevin Vella
Semester: 7th & 8th
Prerequisites:
CSA301
Credits: 2
Tutorials/Practicals: 8
Lectures: 20
Method of Assessment:
Test (70%)
Assignment (30%)
This course deals with programming systems that run on a number of phys
ically distributed but
interconnected processors. The first part of the course deals with algorithms designed specifically with
such execution in mind. Thus, each component of a distributed algorithm runs concurrently and
independently. In addition, each
such component has only a limited view of the global state of the
computation. Distributed algorithms are ideally designed to run correctly even if any of the individual
processors or of the communication links between them fail.
The development of distri
buted applications is now greatly aided by programming technology based on
such algorithms. The second part of the course explores some of these technologies including CORBA
and Java RMI.
Textbooks:
Lynch. Distributed Algorithms.
Barbarossa. Introduct
ion to Distributed Algorithms.
Vogel and K. Duddy. Java Programming with CORBA.
CSA402
Multimedia Systems: Hypermedia and Adaptive Systems
Lecturer:
Mr Christopher Staff
Semester: 8th
Prerequisites:
CSA302
Credits: 2
Tutorials/Practicals: 4
Lectures: 24
Method of Assessment:
Test (100%)
The course is divided into three parts: Multimedia, Multimedia Information Retrieval, and Hypermedia.
The scope of the first part is to provide a grounding in the broader issues of Multimedia and Mul
timedia
Systems. Areas covered will include multimedia standards; resource formats; distributed multimedia;
multimedia applications; and Quality of Service. The Internet has provided a means for resources to be
shared across the world. One of the challeng
es is to provide mechanisms to those who would like to
search for and find those resources, no matter where they reside. In Multimedia Information Retrieval we
will look at the problem of representing multimedia information, and we will cover traditional
I
nformation Retrieval approaches with textual document collections. State

of

the

art approaches will
then be studied in the context of massive, distributed multimedia information bases. Hypermedia is
another approach used to assist users in their search fo
r information and other resource s. Two hypertext
models, the Dexter Reference Model and HyperContext will be studied in relation to general hypermedia
issues. The World

Wide Web, Hyper

G and HyperContext will be studied as examples of massive,
distributed
hypermedia systems. Finally, Digital Libraries are presented as a case study of massive,
distributed multimedia information and resource banks that support hypermedia and multimedia
information retrieval.
Recommended Reading:
Furht and M Milenkovic.
A
Guided Tour of Multimedia Systems and Applications
. IEEE Computer
Society Press 1995. ISBN 0

8186

7054

1.
Steinmetz and K Nahrstedt.
Multimedia: Computing, Communications and Applications
. Prentice
Hall 1995. ISBN 0

13

324435

0.
Balasubramanian.
State o
f the Art Review on Hypermedia Issues and Applications
. Graduate School
of Management, Rutgers University, Newark, New Jersey 1994. (Available on

line at
http://eies.njit.edu/~333/review/hyper.html)
J van Rijsbergen.
Information Retrieval. Butterworth Pre
ss
1979. (Also available on

line at
http://www.dcs.gla.ac.uk/Keith/Chapter.1/Ch.1.html)
NB: URLs are correct as at 20th April, 1998.
CSA403
Semantics of Programming Languages
Lecturer:
Dr Alex Mifsud
Semester: 7th
Prerequisites:
CSA303
Credits:
2
Tutorials/Practicals: 8
Lectures: 20
Method of Assessment:
Test (70%)
Assignment (30%)
Semantics is the study of meaning; as applied to programming languages, semantics deals with eliciting
or assigning a precise description of the behaviour of p
rograms. It is desirable to determine the meaning
or behaviour of a program in terms of the meaning of the subprograms and programming constructs used
to build it.
One reason for studying the semantics of programming languages is to support reasoning abou
t programs,
and in particular to be able to relate specifications with the programs that satisfy them. This study

unit is
intended to provide a gentle introduction to operational semantics by considering a simple imperative
language and a simple functional
language (separately).
The first phase of the course will deal with the operational semantics of a simple imperative programming
language at various levels of abstraction from translation to the operations of a stack

based abstract
machine to structured
operational semantics. In the second phase of the course, a simple functional
programming will be studied, with gradual incorporation of imperative features.
Textbooks:
Glynn Winskell.
The Formal Semantics of Programming Languages: an Introduction
. MIT
Press.
ISBN 0

262

23169

7.
Carl A Gunter.
Semantics of Programming Languages: Structures and Techniques
. MIT Press. ISBN
0

262

07143

6.
Lecture notes
CSA404
Software Engineering
Lecturer:
Dr Ernest Cachia
Semester:
7th & 8th
Prerequisites:
CSA
304
Leads to:
CSA404
Credits: 2
Tutorials/Practicals: 8
Lectures:
20
Method of Assessment:
Test: (80%)
Assignment: (20%)
The aim of this unit is to pursue and conclude material started in CSA304 and to introduce the candidate
to the automat
ion of software development methodologies starting from the idea of methodology driver
systems. This unit will introduce the main notions of CASE (Computer Aided Software Engineering)
technology and will advance the candidate starting from basic CASE tool
theory, through the principles
of CASE tool integration and environment application, and finally ending with the fundamental
theoretical and practical aspects involved in the emerging science of CASE environment specification and
generation known as MetaCA
SE Development. Whenever possible theoretical material will be
supplemented with practical examples.
Textbooks:
Gehani. A. D. McGettrick.
Software Specification Techniques.
Addison

Wesley. ISBN 0

201

14230

9.
Mazza, et al.
Software Engineering Guide
s.
Prentice

Hall. ISBN 0

13

449281

1.
Ghezzi, et al.
Fundamentals of Software Engineering.
Prentice

Hall. ISBN 0

13

818204

3.
Behforooz, F J Hudson.
Software Engineering Fundamentals.
Oxford University Press. ISBN 0

19

510539

7.
W. Brown.
Software
Engineering Environments: Automated Support for Software Engineering.
McGraw

Hill. ISBN 0

07

707432

7.
I. Sommerville.
Software Engineering.
5th edition Addison

Wesley. ISBN 0

201

56529

3.
CSA405
Further Topics in Natural Language Processing
Lec
turer:
Mr Michael Rosner
Semester:
7th & 8th
Prerequisites:
CSA305
Credits: 2
Tutorials/Practicals:8
Lectures:
20
Method of Assessment:
Test: (80%)
Assignment: (20%)
A Natural Language System aims to provide an overall, computationally re
alisable framework within
which the linguistic form of an utterance is related to its interpretations and vice versa. The enterprise
thus involves, at one end, the domain of computational linguistics, and at the other, interfaces with a
variety of applicat
ion domains such as database queries, machine translation, language tutoring as well as
with more general schemes for knowledge representation and inference.
The first part of the course is mainly devoted to computational linguistic issues and will delve
deeper into
the topics covered by the introductory course, dealing in particular with
Constraint based grammar formalisms (e.g. PATR II, HPSG) based on functional unification.
Semantic representation (e.g. temporal information, discourse context).
Comp
utational morphology (which deals with form and meaning at the sub

word level).
The latter part of the course is more applications

oriented, although further theoretical topics will be
developed as and when they are required. The subjects covered will be
chosen from amongst:
Multilingual Applications
Data Oriented Methods
The Computational Lexicon
Dialogue Systems
Textbooks:
Stuart Shieber
. Constraint Based Grammar Formalisms: Parsing a
nd Type Inferences for Natural
and Computer Languages.
MIT Press, 1992. ISBN 0

262

19324

8.
R Sproat.
Morphology and Computation
. Wiley 1992. ISBN 0262193140.
James Allen.
Natural Language Understanding.
Menlo Park: Benjamin Cummings 1987. ISBN 0

80
53

0334

0.
S Young, G Bloothooft
. Corpus

Based Methods in Language and Speech Processing
. Kluwer 1997.
ISBN 0

7923

4463

4.
CSA407
Machine Learning and Knowledge Based Systems
Lecturer:
Mr John Abela
Semester:
8
th
Prerequisites:
CSA307
Credits:
2
Tutorials/Practicals: 8
Lectures:
20
Method of Assessment:
Test (75%)
Assignment (25%)
Part (i):
Machine Learning and Pattern Recognition
This advanced course expands on the material covered in CSA307 and includes experimenting with
various lea
rning problems and the implementation of a number of learning algorithms. The following
topics are covered: analysis of neural network learning, principles of machine vision, grammatical
inference, learning with Evolving Transformation Systems (ETS), lear
ning with noise, learning from
queries, automated feature extraction, learnable classes of concepts, PAC learning, reinforcement
learning, face and fingerprint recognition, and clustering techniques.
Part (ii):
Knowledge Based Systems
This second part o
f this unit introduces techniques used in advanced and hybrid Knowledge Based
Systems. The treatment of uncertainty in Expert Systems is tackled based on an elementary treatment of
fuzzy logic and fuzzy set theory. A fuzzy expert system shell

FEST

will
be used as a teaching tool to
illustrate how fuzzy knowledge representation and fuzzy inference are tackled. The construction of fuzzy
expert systems and fuzzy controllers is also discussed.
Recommended Reading:
Nikolopoulos.
Expert Systems.
Marcel D
ekker Inc 1997. ISBN 0 8247 9927 5.
M. Schneider.
Fuzzy Expert System Tools.
Wiley 1996. ISBN 0 471 95867 0.
T Mitchell.
Machine Learning.
McGraw Hill.
J G Carbonell.
Machine Learning: Paradigm and Methods.
Morgan Kaufmann.
C J Thornton.
Techniq
ues in Computational Learning.
Chapman and Hall.
Commentaires 0
Connectezvous pour poster un commentaire