<- Archives UCL - Programme d'études ->

Programming paradigms : theory, practice and applications [ LSINF2335 ]

5.0 crédits ECTS  30.0 h + 15.0 h   2q 

Teacher(s) Mens Kim ; Gonzalez Montesinos Sebastian Andres (compensates Mens Kim) ;
Language English
of the course
Online resources


Main themes

In computer science, languages are omnipresent. They are very different according to the stage of the software life cycle, the programming paradigm used, or the application domain: modelling languages, specification languages, programming languages (imperative, object-oriented, functional, logic, constraints), query languages, scripting languages, rule-based languages, graphical languages, etc. The aim of this course is to examine in depth one or more recent or historically important computer languages or paradigms. This study may include the design of a language, its implementation techniques and underlying foundations, and how to use it or program in it. The language(s) or paradigm studied may vary from one year to another.

For each programming language or programming paradigm studied in this course, the following themes may be addressed:

  • Detailed study of the features of the programming paradigm or language;
  • Concepts, principles and implementation techniques of the paradigm or language;
  • Underlying foundations of the language or paradigm;
  • Use of the language or paradigm for problem solving.

Given the learning outcomes of the "Master in Computer Science and Engineering" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:

  • INFO1.1-3
  • INFO2.2-4
  • INFO5.2, INFO5.4-5
  • INFO6.4

Given the learning outcomes of the "Master [120] in Computer Science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:

  • SINF1.M2, SINF1.M3
  • SINF2.2-4
  • SINF5.2, SINF5.4-5
  • SINF6.4

Students completing this course successfully will be able to

  • describe and differentiate the main programming paradigms;
  • identify the fundamentals of a language or paradigm;
  • explain the differences between different languages ''and to link with the associated programming paradigms ;
  • choose language or paradigm suitable for solving a particular problem and argue this choice.

The contribution of this Teaching Unit to the development and command of the skills and learning outcomes of the programme(s) can be accessed at the end of this sheet, in the section entitled “Programmes/courses offering this Teaching Unit”.

Evaluation methods

Throughout the year, in parallel with the course, the students are asked (individually or in pairs) to study a language similar to the languages studied in the course, or to study in more depth one of the languages seen in the course. The course exam will consist of a detailed report and presentation of  this language and how it relates to the languages or paradigm seen in the course.

Teaching methods

The course will consist of theory sessions in which the characteristics of one ore more languages will be explored in detail. The course also comprises lab sessions in which students see learnt concepts in action. In parallel, the students will work on their study of a similar language. Optionally, invited speakers may be invited to present a specific aspect of some language.


Since the languages or paradigm studied may vary from year to year, the references for this course may vary as well. Nevertheless, a still very interesting reference that covers a wide range of programming languages, is :

  • Principles of Programming Languages - Design, Evaluation and Implementation. Bruce J. MacLennan.

The course slides as well as other relevant and practical information related to the course will be accessible on iCampus at will be accessible on-line (see on-line resources). The same platform will also be the preferred means of communication between the teacher(s) and the students.

Other information

Background :

  • LINGI1131
  • The more languages the student has been confronted with before, the more he or she will appreciate this course.
Faculty or entity
in charge
Programmes / formations proposant cette unité d'enseignement (UE)
  Sigle Crédits Prérequis Acquis
Master [120] in Computer Science and Engineering INFO2M 5 -
Master [120] in Computer Science SINF2M 5 -

<<< Page précédente