Study-Units offered for the Academic Year 1999/2000

unevenoliveSoftware and s/w Development

Dec 1, 2013 (3 years and 6 months ago)

185 views








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.