Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt...

27
UNIVERSITY OF MALTA DEPARTMENT OF COMPUTER SCIENCE & A.I. Study-Units offered for the Academic Year 1999/2000

Transcript of Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt...

Page 1: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

UNIVERSITY OF MALTA

DEPARTMENT OF COMPUTER SCIENCE & A.I.

Study-Units offered for theAcademic Year 1999/2000

Page 2: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

CSI101 Principles of Structured Specification and Design

Lecturer: Dr Ernest Cachia Semester: 1st & 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 notions 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 concepts, 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 programming 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.

Textbooks:

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 programming 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: 2nd

Prerequisites: None Leads 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. The 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 sorting, 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 introduced 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 textbook:

Page 3: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

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 the 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 terms 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 Programming. 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 and 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 of 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 methods;

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

Page 4: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

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 extensively 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-937073-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.

Page 5: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

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 rigorous 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 content 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; functions; 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 Company. 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.

Page 6: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

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 presents 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, interprocess 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 part, 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 and message queues).

Textbooks:

Page 7: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

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 formal 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 System. 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%) Assignment (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 are 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 functions is shown. The course ends with treatment of the halting problem,reducability between problems and decidability.

Page 8: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

It is assumed that partial recursive functions and the lambda calculus have already been introduced. The course will start where CSI102 left 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.

Textbooks:

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. Introduction 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: 4th

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 development.

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 identifies 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) Semester: 4th

Prerequisites: CSM204 Leads to: CSA303

Credits: 1 Tutorials/Practicals: 2 Lectures: 14

Page 9: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

Method of Assessment: Test

This course starts off from where CSI102 (Introduction to Formal Languages and Automata) left off. Regular and context 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 determined.

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 with 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-Completeness. 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 Tutorials/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 Neumann 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 issues 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 Programming. 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%)

Page 10: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

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 higher-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 ML.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 Assessment: 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 focuses 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 Java 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 operators, 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 implementation tasks involving the maintenance of complex dynamic data structures will be tackled in a hands-on environment.

Page 11: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

Textbooks:

B W Kernighan D M Ritchie. The C Programming Language (2nd Edition).

R W Stevens. Advanced Programming in the Unix. Environment.

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, com-munication 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 sys-tem 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 programming 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. Dollimore and T. Kindberg. Distributed Systems: Concepts and Design. 2nd Ed. Ad-dison-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, Volume 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 into 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

Page 12: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

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 domains 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 Evoluntionary 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 implementation 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, scheduling, 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: 4th

Prerequisites: CSI103 Leads 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:

Page 13: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

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 Graphics. 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 Lectures: 4

Method of Assessment: Test (85%) Assignment (15%)

This unit will expose students to programming with concurrent languages, and programming with com-municating processes in particular. Occam, a multithreaded parallel programming language, will be intro-duced, 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 programming 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

Lecturer: 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 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.

Page 14: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

Course Web Site: http://www.cs.um.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 Assessment: 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 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 about 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

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 computation 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 problems 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.

Page 15: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

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 Engineering 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 unit 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 of 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 underlying 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. Software 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 Engineering. 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 Processing

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 introduction 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;

Page 16: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

Natural language parsing techniques;

Grammar formalisms;

Introduction 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. 10, 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 knowledge 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. Although 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, reductions 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 system shell.

Main Textbooks:

T Mitchell. Machine Learning. McGraw Hill.

C Nikolopoulos. Expert Systems. Marcel Dekker Inc. 1997. ISBN 0 8247 9927 5.

Page 17: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

5.14 Advanced Units in Computer Science (4th Year)

CSA401 Concurrent and Distributed Systems

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 physically distributed but intercon-nected processors. The first part of the course deals with algorithms designed specifically with such exe-cution 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 commu -nication links between them fail.

The development of distributed 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. Introduction 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 Multimedia 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 challenges 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 Information 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 for 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.

Page 18: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

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 of 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 Press 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 programs. 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 about 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: CSA304 Leads to: CSA404

Credits: 2 Tutorials/Practicals: 8 Lectures: 20

Method of Assessment: Test: (80%) Assignment: (20%)

Page 19: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

The aim of this unit is to pursue and conclude material started in CSA304 and to introduce the candidate to the automation 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 MetaCASE 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 Guides. 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

Lecturer: 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 realisable 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 application 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).

Computational 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

Page 20: Introductory Units in Computer Sciencestaff.um.edu.mt/mros1/ftp/download/csuni99.doc · Web viewIt will, however, expose students to some very limited practical programming in the

Dialogue Systems

Textbooks:

Stuart Shieber. Constraint Based Grammar Formalisms: Parsing and 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-8053-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: 8th

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 learning 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), learning 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 of 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 Dekker 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. Techniques in Computational Learning. Chapman and Hall.