Study-Unit Description

Study-Unit Description


CODE CIS1221

 
TITLE Principles and Paradigms of Programming Languages

 
UM LEVEL 01 - Year 1 in Modular Undergraduate Course

 
MQF LEVEL 5

 
ECTS CREDITS 5

 
DEPARTMENT Computer Information Systems

 
DESCRIPTION Programming languages are a medium through which it is possible to describe, and reason about, computation. It is important for students to realise that knowledge of a single programming language is not really enough. This compulsory first year study unit is an introduction to the principles of programming languages with emphasis on the four main programming paradigms - imperative, object oriented, functional, and declarative. Students are also introduced to other fundamental aspects of the study of programming languages. These include interpreters and compilers, memory management, programming constructs, language specification, data types, type checking, and binding.

To be a good software developer one has to be familiar with not just more than one programming language but, more importantly, the four main programming paradigms. In the first part of the study unit students will learn these universal concepts and will also have the opportunity to compare two or more languages from each of these paradigms

In the second part of this study unit the emphasis will be on implementing a solution to a given computational problem in a programming language in each of the four paradigms, using languages such as Python for the imperative and object oriented paradigms, F# for the functional paradigm, and Prolog for the declarative paradigm.

Study-Unit Aims:

- To introduce students to the four main programming paradigms - imperative, object oriented, functional, and declarative.
- To introduce the fundamental aspects of programming languages.
- To develop the students' ability to choose the appropriate paradigm for the problem at hand.
- To develop the practical skills required to solve a given computational problem by writing a computer program in each of the four main paradigms.
- To provide students with further motivation, and the mechanisms to become independent learners who take control over their education rather passively taking in information.

Learning Outcomes:

1. Knowledge & Understanding:

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

- Explain, classify, compare, and contrast the 4 main programming paradigms - imperative, object oriented, functional, and declarative.
- Summarize the main attributes that differentiate the four main programming paradigms.
- Explain, illustrate, and relate programming principles, data types, variables and operators, control-flow (simple statements, sequence, if-then-else, while), functions (stack, input/output), and memory models.
- Explain and summarize important concepts such as lexical, syntactic, and contextual structure, data types, binding, and type checking.
- Demonstrate the suitability of each paradigm for various computational problems.

2. Skills:

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

- Compose a structured algorithmic design to solve a descriptive problem specification in each of the four paradigms - Imperative, Object Oriented, functional, and declarative.
- Evaluate the suitability of different paradigms for different problem types.
- Design and implement programs in several programming languages of different paradigms and demonstrate an ability to solve more complex problems in at least one non-procedural paradigm.

Main Text/s and any supplementary readings:

- Programming Languages: Principles and Paradigms. Maurizio Gabbrielli and Simone Martini. Springer London 2010.ISBN-13: 978-1848829138
- Principles of Programming Languages (Undergraduate Topics in Computer Science) 2009 Edition, Gilles Dowek, Springer London 2009, ISBN-13: 978-1848820319
- Lecture slides and notes.
- Class handouts.

 
STUDY-UNIT TYPE Lecture, Independent Study & Tutorial

 
METHOD OF ASSESSMENT
Assessment Component/s Assessment Due Sept. Asst Session Weighting
Project SEM1 Yes 40%
Examination (2 Hours) SEM1 Yes 60%

 
LECTURER/S Abel Garcia Celestrin

 

 
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 description above applies to study-units available during the academic year 2023/4. It may be subject to change in subsequent years.

https://www.um.edu.mt/course/studyunit