Programming paradigms : theory, practice and applications [ LSINF2335 ]
5.0 crédits ECTS
30.0 h + 15.0 h
2q
Teacher(s) |
Mens Kim ;
|
Language |
English
|
Place of the course |
Louvain-la-Neuve
|
Online resources |
> https://icampus.uclouvain.be/claroline/course/index.php?cid=SINF2335
and/or > https://moodleucl.uclouvain.be/course/view.php?id=4653
|
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.
|
Aims |
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.
|
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. 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.
|
Bibliography |
References
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.
Support
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.
|
Cycle et année d'étude |
> Master [120] in Computer Science
> Master [120] in Computer Science and Engineering
|
Faculty or entity in charge |
> INFO
|
<<< Page précédente
|