Note from June 29, 2020
Although we do not yet know how long the social distancing related to the Covid-19 pandemic will last, and regardless of the changes that had to be made in the evaluation of the June 2020 session in relation to what is provided for in this learning unit description, new learnig unit evaluation methods may still be adopted by the teachers; details of these methods have been - or will be - communicated to the students by the teachers, as soon as possible.
Although we do not yet know how long the social distancing related to the Covid-19 pandemic will last, and regardless of the changes that had to be made in the evaluation of the June 2020 session in relation to what is provided for in this learning unit description, new learnig unit evaluation methods may still be adopted by the teachers; details of these methods have been - or will be - communicated to the students by the teachers, as soon as possible.
5 credits
30.0 h + 15.0 h
Q2
Teacher(s)
Mens Kim;
Language
English
Prerequisites
This course assumes basic knowledge of one or more programming languages.
A minimum requirement to take this course is thus to have succeeded the programming courses (or equivalent):
-
LINFO1101 or LEPL1401 (informatique 1),
- LEPL1402 (informatique 2),
Main themes
In the course of a career, a computer scientist or software engineer will be confronted with many different programming languages and paradigms. To make informed design choices when selecting a particular language, he or she must understand the principles underlying how programming language features are defined, implemented and used.
This course will examine, from a historical perspective, the guiding principles of the major programming paradigms, starting from the earliest programming languages until the most recent ones. As such it will highlight the major principles, strengths and differences of different programming languages and paradigms.
This course will examine, from a historical perspective, the guiding principles of the major programming paradigms, starting from the earliest programming languages until the most recent ones. As such it will highlight the major principles, strengths and differences of different programming languages and paradigms.
Aims
At the end of this learning unit, the student is able to : | |
1 |
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:
|
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”.
Teaching methods
The course will consist of traditional theory sessions in which the characteristics and guiding principles of different programming languages and paradigms are explored in detail. The practical sessions complement these more theoretical course sessions with hands-on programming exercises in a selection of programming languages and paradigms seen in the theory course.
Evaluation methods
Throughout the year, in parallel with the theory and lab sessions, the students will study in detail (either individually or in pairs) several of the languages seen in the course, by carrying out three programming missions in three different languages. These missions will be evaluated through interviews and presentations to the professor and the course assistant. This evaluation replaces the traditional course exam.
Other information
Background :
-
Having a healthy interest in programming paradigms and programming language concepts, such as for example seen in the course LINGI1131.
-
The more different programming languages a student has been confronted with before, the more he or she will appreciate this course.
Online resources
http://moodleucl.uclouvain.be/course/view.php?id=4653
Bibliography
Références
Comme les langages étudies peuvent varier d'un année à un autre, les références conseillés pour ce cours pourront varier également. Néanmoins, une référence très utile qui couvre un large éventail de langages de programmation reste :
o 'Principles of Programming Languages - Design, Evaluation and Implementation' by Bruce J. MacLennan.
Support
Les transparents des cours magistraux ainsi que d'autres informations pratiques relatives au cours seront accessibles sur Moodle.Moodle sera également le moyen de communication préféré entre les étudiants et l'équipe didactique.
Comme les langages étudies peuvent varier d'un année à un autre, les références conseillés pour ce cours pourront varier également. Néanmoins, une référence très utile qui couvre un large éventail de langages de programmation reste :
o 'Principles of Programming Languages - Design, Evaluation and Implementation' by Bruce J. MacLennan.
Support
Les transparents des cours magistraux ainsi que d'autres informations pratiques relatives au cours seront accessibles sur Moodle.Moodle sera également le moyen de communication préféré entre les étudiants et l'équipe didactique.
Faculty or entity
INFO