University of Malta

Study-Unit Description
UOM Main Page
Apply - Admissions 2016
Campus Map button


TITLE Software Engineering

LEVEL 02 - Years 2, 3 in Modular Undergraduate Course


DEPARTMENT Computer Science

DESCRIPTION The student is exposed to various programming paradigms and is invited to solve different problems using these paradigms. Typical paradigms considered are:

1. Imperative programming with emphasis on how to program with an explicit notion of state/memory. We may consider ways on how to structure code so as to manage this state through techniques such as encapsulation and object-orientism.

2. Functional Programming and exposure to programming without an explicit notion of state. The emphasis is the structure of the data and the functions that operate on it, the use of control mechanisms such as recursion, the use of functions(closures) as data, the use of types in describing complex data-structures, capabilities introduced with laziness and the techniques for attaining the best performance within the paradigm, such as tail-recursion.

3. Concurrent programming with exposure to concurrency control structures and concurrency paradigms such as message passing.

Study-unit Aims

Expose the student to different programming paradigms, together with the different emphasis that each paradigm focusses on, the control structures that the paradigm typically comes equipped with and problems that are better suited for the particular paradigms.

Learning Outcomes

1. Knowledge & Understanding:
By the end of the study-unit the student will:

- Judiciously choose the right tool (language/paradigm) for the right problem;
- Be exposed to emerging/non-mainstream programming languages.

2. Skills:
By the end of the study-unit the student will be able to:

- Appreciate different ways how to describe and solve a problem;
- Improve analytical skills in terms of better abstraction and modular decomposition of design;
- Learn and adapt to new languages faster.

Main Text/s and any supplementary readings

- Programming Languages: Principles and Paradigms. Maurizzio Gabbrielli and Simone Martini. Springer.
- Programming Languages: Principles and Paradigms. Allen B. Tucker, Robert Noonan, McGraw-Hill.
- Language Specific Textbooks
- Programming Language Pragmatics. Michael Scott. Morgan Kaufmann.

ADDITIONAL NOTES Students taking this study-unit are assumed to have knowledge of the material covered in the following study-units:
- CPS1000 or CPS1011;
- CPS2004.

STUDY-UNIT TYPE Lecture and Independent Study

Assessment Component/s Resit Availability Weighting
Assignment Yes 40%
Examination (2 Hours) Yes 60%

LECTURER/S Mark Micallef

The University makes every effort to ensure that the published Courses Plans, Programmes of Study and Study-Unit information are complete and up-to-date at the time of publication. The University reserves the right to make changes in case errors are detected after publication.
The availability of optional units may be subject to timetabling constraints.
Units not attracting a sufficient number of registrations may be withdrawn without notice.
It should be noted that all the information in the study-unit description above applies to the academic year 2017/8, if study-unit is available during this academic year, and may be subject to change in subsequent years.
Study-unit Registration Forms 2017/8


For Undergraduate (Day) and Postgraduate students.


Academic Advisors 2017/8


Academic Advisors for ICT 1st year students (Intake 2017/8), NOW available

Faculty of ICT Timetables


ICT Timetables are available from Here.

Health and Safety Regulations for Labs Form

The Faculty of ICT Health and Safety Regulations for Laboratories form can be found here



Log In back to UoM Homepage