Introduction

The PhD in computer Science program aims at building on the expertise in the masters program to lay ground for the production of world class researchers and innovators in the areas Computer Security as well as Computer Vision & Image processing.

Objectives

The objectives of the PhD (Computer Science) by Coursework and Research program are to: -

  • Build human resource capacity in the area of computer science in both the public and private sectors, especially in universities;
  • Develop research capacity in the areas of computer science so as to improve research and innovations output in the country and region
  • Address the increasing demand for PhD holders in the areas of computer science
  • Provide masters holders with potential for PhD with opportunities to develop skills in formulating, conducting and presenting their own scholarly research through the production of a research-based dissertations and publications.
  • Foster initiative and potential for independent self-study that will develop the students’ motivation and ability to continue updating their knowledge and skills after completion of the course of study in relation to scholarship and research.
  • Enable the students to be able to demonstrate a critical awareness and reflection on research-based information as a basis for problem solving and practice in professional contexts.
  • Enable students to be able to demonstrate ability to interpret and report research findings in areas relevant to their field of study.
  • Equip students with research and publication skills to enable them publish research from high quality dissertations in reputable journals and/ or presentation of their research findings at academic conferences

Collaboration Partners

  1. University of Groningen
  2. Raudbound University Nijmegen
  3. Eindhoven University of Technology
  4. University of Bergen
  5. London South Bank University

Computing Equipment

The Faculty of Computing and IT has put in place specialized research laboratories i.e. Multimedia Laboratory, Geographical Information Systems Laboratory, Mobile Computing Laboratory, Networking and Systems Laboratory, Software Incubation Laboratory, Computer Engineering Laboratory and E-learning Laboratory and plans are under way to establish more laboratories.

The equipments and software in these specialised laboratories is availed to the PhD students and their supervisors.

Every PhD student at the department is given a laptop and personal computer for the whole duration of the program. Each member of academic staff has a laptop and personal computer in the office.

Research in the Department of Computer Science

Being rather young, the Department of Computer Science does not have a long research history. In its early years, the department lacked staff with advanced degrees to create a critical mass to do substantial research. This was addressed by attracting staff with PhDs as well as training the existing staff to PhD level. Currently, the department has 4 PhD holders while 8 members of staff are undertaking doctoral studies. The research activities in the department are therefore on the raise. The department is currently focusing its research efforts into selected priority areas. These are:

  • Computer Security
  • Computer Vision & Image Processing
  • Study and Optimization of Operational Systems
  • Theoretical Foundations of Computing

The department therefore aims at being a center of research excellence in these priority areas. A big portion of its teaching and research at Masters and Doctoral focuses on these areas so as to increase the capacity with in the department as well as the impact in industry.

The Program

Target Group

The program targets holders of a Masters in Computer Science and related fields. Holders of other masters degrees may be considered if there is substantial evidence that they have, by virtue of their work or research, acquired sufficient advanced knowledge in Computer Science.

Tuition

The tuition of the program shall be 3,875,000 Uganda Shillings per year for Ugandan students and 3,500 United States Dollars per year for International students.

Program Duration

The program duration is four academic years 8 semesters).. One academic year shall be for coursework and research proposal writing and three years shall be for research and thesis writing.

Admission Requirements

To qualify for admission on the program, the candidate should have

  • A good Masters degree in Computer Science or a closely related field
  • Any Masters degree with evidence of acquisition of sufficient advanced knowledge in computer science by virtue of research or work

Weighting and Semester Load

The weighting unit is a Credit Unit (CU). The credit unit is a contact hour per week per semester. A contact hour is equal to (i) one lecture hour (LH) (ii) two practical hours (PH) (iii) two tutorial hours (TH). The semester load is between 9 and 15 credit units. The minimum graduation load is 18 credit units done in the first year of the program

Core and Elective Courses

A major is the subject/ field/ program of specialization. A core course is compulsory course for the major and an elective course is an optional course for the major.

Assessment

Assessment will be in form of writing technical reports, reviewing literature, critiquing papers or any other approach a student can use to demonstrate in-depth understanding and synthesis of academic matter. The approach used will depend on the course unit being studied.

Graduation Requirements

To qualify for the award of the degree of Doctor of Philosophy in Computer Science, a candidate is required to obtain a minimum of 18 credit units for courses passed including all the compulsory courses and the PhD Dissertation within a period stipulated by Makerere University Senate/ Council Let LH, CH, and CU stand for Lecture Hour, Contact Hour, and Credit Unit respectively.

Code Name Assessment Method LH CH CU
Semester I
PSE 9101 Science of Computer Programming Presentations 40% Scientific review paper -60% 45 45 3
PCS 9101 Philosophy of Computing Presentations 40% Scientific review paper -60% 45 45 3
PIT 9102 Advanced Research Methods Presentations 40% Scientific review paper -60% 45 45 3
Semester II: 1 Core Course
PIS 9203 Presentations, Scientific Writing and Research Ethics Presentations 40% Scientific review paper -60% 45 45 3
2 Elective Course
PCS 9201 Advances in Digital Security Presentations 40% Scientific review paper -60% 45 45 3
PCS 9202 Advances in Computer Vision & Image Processing Presentations 40% Scientific review paper -60% 45 45 3
PCS 9203 Advanced Applied Queuing Systems Presentations 40% Scientific review paper -60% 45 45 3
PSE 9201 Models of Software Systems Presentations 40% Scientific review paper -60% 45 45 3

Grading, Pass mark and progression

Grading will be done on the final score of each course unit using the ranges below

Marks Letter Grade Grade Point
90-100 A+ 5 Exceptional
80-89 A 5 Excellent
75-79 B+ 4.5 Very Good
70-74 B 4 Good
65-69 C+ 3.5 Fairly Good
60-64 C 3 Pass
55-59 D+ 2.5 Marginal Fail
50-54 D 2 Clear Fail
45-49 E 1.5 Bad Fail
40-44 E- 1 Qualified Fail
0-39 F 0 Qualified Fail

A student with a grade point greater or equal to 3 (Letter grade C) in a certain course is considered to have passed the course unit.

The following additional letters will be used, where appropriate: -

W - Withdraw from Course;

I - Incomplete;

P - Pass;

F - Failure.

Minimum Pass Mark

A minimum pass grade for each course shall be 3.0 grade points.

Calculation of Cumulative Grade Point Average (CGPA)

The CGPA is calculated as follows:

cgp formulae

Where GPi is the Grade Point score of a particular course unit i; CUi is the number of Credit Units of course unit i; and n is the number of course units done so far.

Normal Progress

A student is considered to be under normal progression if he/she has a grade point of at least 3 in each of the courses that make his/her full semester load.

Probationary

A student is under probational progress if he/she has at least a course unit in his/her full semester load where the grade point is less than 3

PhD Dissertation

Students are required to demonstrate their ability to independently formulate a detailed dissertation proposal, as well as develop and demonstrate their dissertation thoroughly.

  • A candidate shall be allowed to formally start on the dissertation after completion of the coursework part.
  • A candidate shall submit a dissertation proposal to the Faculty of Computing and Information Technology Higher Degrees Committee during the first semester of the first academic year.
  • The candidate shall execute the dissertation after acceptance of the dissertation proposal.
  • The candidate shall be required to submit reports of progress to the Faculty Higher degrees committee every 6 months
  • The candidate shall, in the process of PhD research, publish at least three peer reviewed articles one of which must be in a specialised journal/conference
  • The candidate shall submit a dissertation report before the end of the fourth year (8th semester).

To pass the Dissertation, the candidate shall satisfy the Internal Examiner, External Examiner, and Viva Voce Committee independently.

Discontinuation from the Program

A student shall be discontinued from the program if

  • He/she fails to get a grade point of at least 3.0 from any course unit for three sittings
  • By the end of the third semester, he/she does not have an approved research proposal
  • Without a credible reason, he/she fails to submit the 6 monthly reports two consecutive times
  • The candidate shows no substantial progress for two academic years
  • Overstays on the program for more than two years
  • Fails to pass on the third submission of the dissertation
Code Name LH CH CU
Semester I: 3 Core Courses
PSE 9102 Science of Computer Programming Presentations 40% Scientific review paper -60% 45 45 3
PCS 9101 Philosophy of Computing Presentations 40% Scientific review paper -60% 45 45 3
PIT 9102 Advanced Research Methods Presentations 40% Scientific review paper -60% 45 45 3
Semester II: 1 Core Course
PIS 9203 Presentations, Scientific Writing and Research Ethics 45 45 3
2 Elective Course
PCS 9201 Advances in Digital Security 45 45 3
PCS 9202 Advances in Computer Vision &Image Processing 45 45 3
PCS 9203 Advanced Applied Queuing Systems 45 45 3
PSE 9201 Models of Software Systems 45 45 3
Semester III, IV, V , VI, VII, VIII
Independent Research, Publication, and dissertation compilation

Detailed Courses

(a) Course Description

This course introduces foundational concepts and techniques of programming languages. We use typed λ-calculi and operational semantics as models of programming language concepts. These models are applicable to the design, analysis, and implementation of programming languages. We demonstrate the utility of a mathematical approach to programming languages in answering questions about program correctness, the pro’s and con’s of various languages, compiler correctness, and other practical issues. We focus on two of the most successful styles of semantic description: denotational and operational. We deal with small “core” languages, each chosen to illustrate a specific paradigm. We use semantics to prove properties of a language, to analyze programs, to design correct programs, to prove correctness of compiler optimizations, and to prove general laws of program equivalence.

(b) Aims

The objective is to:

  • To study formal techniques for describing computation and compilation.
  • Provide a more general understanding of programming languages, specification, logic, mathematics, and proof theory.
  • Apply formal reasoning to nondeterministic programs and to concurrent programs, and provide an introduction to reasoning about distributed systems (temporal logic).

(c) Learning outcomes

At the end of the course students will be able to: describe and relate different programming paradigms and the mathematical models on which they build; select appropriate methodology to use in the final research work and dissertation.

(d) Teaching and learning pattern

Classes are held as a group discussion. Reading material which includes journal papers is distributed a week in advance, and students take it in turns to research and present new topics. The lecturer addresses questions to the students to encourage them to think about and understand the material. The lecturer should become aware of the students' proposed topics of research so that the discussion explores how the principles in the course apply to these topics. The students make presentations of their review paper for critique from both the students and the lecturer.

(e) Indicative content

  • Inductive definitions.
  • Static and dynamic semantics.
  • Type safety.
  • Function, product, and sum types.
  • Universal types and polymorphism.
  • Existential types and data abstraction.
  • Recursive types.
  • Object types.
  • Sub typing.
  • Equational reasoning.
  • Type inference and unification
  • denotational and operational, referential transparency, criteria for choosing models
  • Sequential imperative programs: state transformations, partial and total correctness, traces and runtime
  • Machine language: jumps and continuations, compiling sequential pro-grams, correctness of compiler optimizations
  • Parallel programming: data ow networks, shared-memory parallelism, communicating processes, safety and liveness, fair execution
  • Functional programs: types and polymorphism, call-by-value, direct-and continuation-style semantics

(f) Assessment

Progressive assessment will be based on the quality of presentations in class by each student. The final assessment will be based on a scientific review paper.

(g) Reading List

  1. John C. Reynolds. Theories of Programming Languages. Cambridge University Press, 1999.
  2. Glynn Winskel. The Formal Semantics of Programming Languages. MIT Press, 1993.
  3. John C. Mitchell. Foundations for Programming Languages. MIT Press, 1996.
  4. Martin Abadi and Luca Cardelli. A Theory of Objects. Springer-Verlag, 1996.
  5. Jean-Yves Girard. Proofs and Types. Cambridge University Press, 1989.

(a) Description

This course explorer the philosophical foundations of the computing field. It explores the computational understanding of the major parameters that make up and support the computing field. It explores their foundations and philosophical underpinnings.

(b)Aims and Objectives

The aims of the course are:

  • To give students an avenue of exploring the philosophical foundations of computing as an academic field
  • To give students the historical foundation of computational thinking and interpretation
  • To expose students to the philosophical thinkings of the different areas of computing

(c) Learning outcomes

By the end of the course, the students should be able to:

  • Explain the philosophical foundations of computing
  • Explain the foundations of theoretical thinking and interpretations
  • Explain the philosophical thinkings of the different fields of computing

(d) Teaching and learning pattern

Teaching will be by lectures, group work, group discussions and presentations

(e) Indicative content

  • Mind and Artificial Intelligence (AI): The philosophy of artificial intelligence and its critique, computationalism, connectionism and the philosophy of mind
  • Real and virtual worlds: Ontology, virtual reality, the physics of information, physics as a traditional model of the ideal science of the philosophy of science, cybernetics and artificial life
  • Language and knowledge: Information and content, knowledge, the philosophy of computer languages, hypertext.
  • Logic and probability: probability in artificial intelligence, game theory – Nash equilibrium

(f) Assessment

Assessment will be by take-home assignments and presentations. Students will be given tasks to read and write about then present in class. The lecturer will award marks for the final a final scientific review paper.

(g) Reading List

  1. Floridi, Luciano (1999) Philosophy and Computing: An Introduction. Routledge: London / New York.
  2. Bynum, Terrel Ward; Moor, James H. (2000) The Digital Phoenix: How Computers are Changing Philosophy. Blackwell Publishers: Oxford, UK.
  3. Colburn, Timothy R. (2000) Philosophy and Computer Science. M.E. Sharpe: Armonk, NY, USA

(a) Description

Most PhD students struggle with scientific writing and presentations in English, and normally much time in a PhD study is spent revising papers and preparing for conference talks. Given the amount of time that PhD students spend writing and preparing to present, students should invest in a systematic study of scientific writing and presentations. The course deals with the publication process from the perspectives of the author of a scientific paper and the editor of a scientific journal. It is intended for PhD students in the fields of computing and Information technology, engineering and natural sciences.

(b) Aims and Objectives

The aim is to give the participants the following

  • awareness of the importance of scientific writing,
  • motivation to write scientific papers, and
  • Prerequisites for publishing in first-class scientific journals.

(c) Learning outcomes

At the end of this course, students will be able to:

  • Make a quality conference presentation
  • Write a quality journal article
  • Appreciate ethics-related issues when writing a scholarly/scientific paper.
  • Understand the prerequisites for choosing the market for publishing

(d) Teaching and learning pattern

Classes are held as a group discussion. Reading material which includes books and journal papers on scientific writing and ethics are distributed a week in advance, and students take it in turns to research and present. The students are also given reading material on how to make excellent presentations. The lecturer addresses questions to the students to encourage them to think about and understand the material. The classes will also include viewing of recorded seminar presentations by leading academics in the field.

(e) Indicative content

  • Science and writing. Reports and scientific publications. The IMRAD format. Scientific journals. Why, what, when, with whom and where publish?
  • Structure of a scientific paper. The different parts of a scientific paper. Language and style. The publication process. Writing a paper. Dealing with editors, reviewers and publishers.
  • Critical review of scientific papers by groups of participants.
  • General principles of expository writing, pre-writing and planning. Typical formats, structure and language for scientific writing, emphasis on scientific articles as published in (primary) international scientific journals. English grammar essential to scientific papers. Designing tables, figures and graphs for scientific papers. Good style for readability. The refereeing and publishing process, what referees are looking for, how to deal with editors. Paragraphing, linking paragraphs to make the logic clear. Writing informative abstracts and crafting clear titles.
  • Ethics: Honesty and credibility in scientific writing.

(f) Assessment

Progressive assessment will be based on the quality of presentations in class by each student. The final assessment will be based on a scientific review paper.

(g) Reading List

  1. How to write and publish a scientific paper, Robert A. Day and Barbara Gastel, ISBN:0-313-33027- 1, 6TH Edition, 2006
  2. Research ethics, edited by Anna Smith IItis, 1st Edition, 2006.
  3. The student’s guide to research ethics, Oliver, 2003.

PIT 9201 Advanced Research Methods (3CU)

(a) Aims and Objectives

the objectives of this course are to provide:

  • Philosophical underpinnings of research in computing and IT
  • Practical aspects on doing research

(b) Learning outcomes

At the end of the course the students will be able to apply computing and IT research methods in their research

(c) Course Content:

CThe first part of the course is devoted to the philosophical underpinnings of research, which crucially influence choice of research methods and interpretations of data. The course then moves on to the more practical aspects of 'doing research' - looking at developing a research strategy as well as ways of collecting data, analysing data and communicating research findings. This course will also give guidance to students on how to identify a research problem. Students will be presented with various research paradigms and models of methodology and assisted with designing an appropriate method for their research. Students will be trained in the analysis and presentation of results, exposition of processes and methods used and conclusions drawn. Key philosophical and epistemological bases for research are explored, and alternative methodologies are examined in relation to varied theoretical approaches. Selected sets of methods and techniques are critically appraised, while the range and scope of techniques with which students are familiar is extended. The structure of the course aims to achieve a balance between theory and practice. Considerable emphasis is therefore placed upon the logistics of setting-up, doing and disseminating research. The course not only introduces a range of research ideas and skills central to sound socio-environmental enquiry in general, but also acts as a critical and practical research forum where discussion and preparation for the PhD dissertation takes place.

(d) Teaching and Learning pattern:

Classes are held as a group discussion. Reading material which includes journal papers is distributed a week in advance, and students take it in turns to research and present new topics. The lecturer addresses questions to the students to encourage them to think about and understand the material. Each student undertakes a review of the different research methodologies and makes a presentation before the class. The students will identify researchable problems from which they will apply the concepts taught in class with an aim of producing research proposals by the end of the semester. The students will be required to build on their proposals on a weekly basis in line with the new concepts that will be taught. The students will make presentations of their draft proposal for critique and feedback from both the students and the lecturer.

(e) Assessment Method

Evaluation shall be based on presentations from a variety of reviewed papers and a research proposal produced by the end of the semester.

(f) References

  1. Qualitative research and evaluation methods; By Michael Quinn Patton; Edition: 3, illustrated; Published by SAGE, 2002; ISBN 0761919716, 9780761919711; 598 pages.
  2. Research Design & Statistical Analysis; Third Edition; By Jerome L. Myers, Arnold D. Well, Arnold D. Well, Robert F. Lorch, Jerome L. Myers; Pages: 736; Published by: Routledge; Publication Date: 1st November 2002; ISBN: 978-0-8058-4037-7
  3. Are Your Lights On? How to Figure out what the Problem Really Is, by Donald C Gause and Gerald M Weinberg, Dorset House, USA, 1990. A brilliant book about getting ready to make decisions.
  4. Bordens, K.S. & Abbott, B.B. (1988) Research design and methods: A process approach. Mayfield.

(a) Description

This course aids students to explore in depth selected areas in digital security. It helps them get the general knowledge as well as getting an in-depth knowledge of the current state of practice. It also guides them in making in depth reading so as to be able to critique recent research works as well as identify some existing research gaps.

(b) Aims and Objectives

The aims of the course are to:

  • Equip students with the general state and challenges in security of computer systems
  • Assist students explore the current state of the art in selected aspects of digital security
  • Assists students make deep analysis of the current literature in digital security and identify research gaps

(c) Learning outcomes

    By the end of the course, the students should be able to

  • Comprehensively elaborate the typical security challenges in the digital world today.
  • Explain ways of attack and techniques of defense on software, hardware and data.
  • Have an in-depth understanding of the current research trends in some areas of digital security.
  • Comprehend and critique state of the art research findings in digital security.

(d) Teaching and Learning Patterns

The lecturer will chose an area and subject matter to be focused on over a period of time and ask students to do the reading. The lecturer will provide the main reading materials (like journal papers, books, technical reports). The students will do the reading; write their findings (like critique, technical report, etc). The students will make the write up and presentations in class.

(e) Indicative content

  • Advances in software security
  • Advances in hardware security
  • Advances in cryptosystems

(f) Assessment Method

Assessment will be by evaluating the students write ups and presentations. For each write up and presentations, the lecturer will award marks depending on the extent to which the objectives of the assignment has been met. The lecturer will also award marks on the extent to which the student demonstrates his/her mastery of the subject matter during presentations and final write up of a scientific review paper.

(g) Reading lists

Reading materials will largely be got from the publications in journals and conferences of digital security. These include:

  1. International conference on privacy , security and trust
  2. Security Journal
  3. Journal of Computer Security
  4. International journal of Information Security
  5. International journal of applied cryptography

(a) Description

This course gives students exposure to cutting edge research in the fields of image processing, computer vision, machine learning, pattern recognition and computational statistics. It examines common methodologies in these fields. It also examines current research trends in these fields

(b) Aims/Goals

By the end of the course, students should:

  • Become familiar with major areas of research within the fields of image processing and pattern recognition.
  • Become familiar with established methodologies and tools which are used in recent mainstream research in these fields.
  • Narrow down a topic of interest which would be suitable for PhD research.
  • Be able to critically evaluate the strengths and weaknesses of a research paper in image processing.
  • Specific topics are to be selected based on the interests of students
  • who would generally be expected to have some exposure to these fields
  • (e.g. having studied the MSc. courses on Image Processing and Computer Vision, Pattern Recognition). These could include such areas as:Vision, Pattern Recognition). These could include such areas as:

(c) Learning outcomes

By the end of the course, the student shall be able to:

  • Identify the current trends in the specific areas of computer vision and image processing.
  • Make a critical review of current literature in selected areas of computer vision and image processing.
  • Identify realistic open research areas in the areas of computer vision and image processing.

(d) Teaching and Learning Patterns

The course will generally take the form of a reading group. Papers are selected in advance each week, and students take it in turn to lead a discussion through that paper, explaining the methodology used and identifying its strengths and weaknesses. The lecturer is on hand to Moderate the discussion, to provide explanations of difficult material (e.g. mathematical techniques which students are not familiar with) and to correct any misunderstandings which arise. The course will also make use of video lectures available online (e.g. from www.videolectures.net, which is particularly strong on machine learning material). Students should watch these videos of research presentations or tutorials in their own time, and then the class meets to discuss and compare notes.

(e) Indicative Content

  • Feature extraction, scale/rotation invariant feature transforms
  • Mathematical morphology
  • Dynamical models
  • Multi target tracking
  • Bayesian modeling, graphical models
  • Data mining
  • Ensemble methods
  • Structure learning
  • Image segmentation

(f) Assessment Method

Students should identify at least one core paper, which is a high-impact recent publication that they think will be relevant to their PhD research. Assessment is based on presentations made during class and a short research paper with a critical literature review of their core papers and surrounding literature, and accompanying seminar presentation.

(g) Reading lists

Papers for reading each week are to be selected according to specific interests, from recent papers in significant conferences and journal including the following:

  1. Transactions on Pattern Analysis and Machine Intelligence
  2. IEEE International Conference on Computer Vision and Pattern Recognition
  3. IEEE International Conference on Acoustics, Speech and Signal Processing
  4. International Conference on Machine Learning
  5. Machine Learning
  6. Advances in Neural Information Processing Systems

(a) Description

TMost of the interesting questions in Computer Science in some way involve finding an optimal solution to some problem given a set of constraints. This course gives students exposure to cutting edge research in the fields of optimization, combinatorics, graph theory, resource allocation, scheduling and applications.

(b) Aims

By the end of the course, students should:

  • Become familiar with major areas of research within the theory and application of optimization
  • Identify the shortcomings of different optimization methods and where the research opportunities are in terms of extending/modifying existing systems or applying them to new types of data.
  • Narrow down a topic of interest which would be suitable for PhD research.
  • Be able to critically evaluate the strengths and weaknesses of a research paper in optimization.

(c) Learning outcomes

By the end of the course, the student should:

  • Demonstrate sufficient knowledge on the application of queues in real life problems.
  • Have knowledge on the approaches of solving queue based problems.
  • Have knowledge on the current research trends in queuing systems.

(d) Teaching and Learning Patterns

Teaching and Learning will be by study groups. The Teacher will identify the papers and students will study, analyze and report on the papers. They will

(e) Indicative content

  • Network flow algorithms and their applications,
  • Transportation problem and its variants
  • Multi objective optimization
  • Formulation of large optimization problems

(f) Assessment Method

Students will present and write technical reports in selected areas of the course. The depth and expectations shall be prescribed by the lecturer conducting the course. Such expectations can be identification of gaps, describing the state of the art/practice or critiquing a certain paper/set of paper. The student’s score in at least two presentations and technical reports will constitute the score.

(g) Reading lists

Students will read papers from existing high quality journals/conferences in the broad area of optimization. These include but not limited to

  1. Journal of Optimization Theory and Applications.
  2. Queuing Systems: Theory and Applications.
  3. European Journal of Operations Research.

(a) Course Description

Scientific foundations for software engineering depend on the use of precise, abstract models for characterizing and reasoning about properties of software systems. This course considers many of the standard models for representing sequential and concurrent systems, such as state machines, algebras, and traces. It shows how different logics can be used to specify properties of software systems, such as functional correctness, deadlock freedom, and internal consistency. Concepts such as composition mechanisms, abstraction relations, invariants, non-determinism, inductive definitions and denotational descriptions are recurrent themes throughout the course.

(b) Aims

By the end of the course you should be able to

  • understand the strengths and weaknesses of certain models and logics, including state machines, algebraic and trace models, and temporal logics.
  • to select and describe abstract formal models for certain classes of systems. to reason formally about the elementary properties of modeled systems

(c) Learning outcomes

At the end of the course students will be able to: describe and relate different models of software systems; select appropriate methodology to use in the final research work and dissertation.

(d) Teaching and Learning Patterns

Classes are held as a group discussion. Reading material which includes journal papers is distributed a week in advance, and students take it in turns to research and present new topics. The lecturer addresses questions to the students to encourage them to think about and understand the material. The lecturer should become aware of the students' proposed topics of research so that the discussion explores how the principles in the course apply to these topics. The students make presentations of their review paper for critique from both the students and the lecturer.

(e) Indicative content

  • what is a model?
  • Foundations Logic, Proof Techniques
  • Sets, Relations, Functions, Proof Techniques
  • State Machines ,Variations , FSP and LTSA , Reasoning about State
  • Machines
  • Z Techniques
  • Refinement & Abstraction
  • Modeling Concurrency in FSP , Modeling Techniques, Reasoning about Concurrency,
  • Model Checking Linear Temporal Logic, Promela/Spin
  • Petri Nets
  • UML

(f) Assessment Method

Assessment will be by take-home assignments leading to presentations and a scientific review paper. Students will be given tasks to read and write about then present in class. The lecturer will award marks for each write up of a scientific review paper.

(g) Reading List

  1. Concepts and Notations for Concurrent Programming," Andrews and Schneider. Computing Surveys, Vol. 15, No. 1, March 1983.
  2. Formal Methods: State of the Art and Future Directions", ACM Computing Surveys, Vol. 28, No. 4, December 1996, pp. 626-643. Available as CMU-CS-96-178.
  3. "Statecharts: a visual formalism for complex systems." D. Harel. Science of Computer Programming, 8:231-274, 1987.
  4. "FAA En Route Resectorization - A Formal Specification." V.J. Harvey, and P.R.H Place. Unpublished manuscript, September 1999.
  5. "Coloured Petri Nets: A High Level Language for System Design and Analysis." K. Jensen. In High-level Petri Nets: Theory and Application. K. Jensen and G. Rozenberg (eds.) Springer-Verlag, 1991.
  6. "Temporal Logic." Draft version of chapter from book in preparation. 1996.
  7. Concurrency: State Models and Java Programs. J. Magee and J. Kramer. Wiley, 1999.
  8. "Petri Nets." J. L. Peterson. ACM Computing Surveys, Sept 1977.
  9. Software Engineering Mathematics. J. Woodcock and M. Loomis, Addison-Wesley 1988.