Computer language concepts [ LINGI1131 ]
5.0 crédits ECTS
30.0 h + 30.0 h
2q
Teacher(s) |
Van Roy Peter ;
|
Language |
English
|
Place of the course |
Louvain-la-Neuve
|
Online resources |
> https://icampus.uclouvain.be/claroline/course/index.php?cid=ingi1131
|
Prerequisites |
Good programming skills in a high-level language, for example given by the courses SINF1121 or FSAB1402.
|
Main themes |
- Concepts, techniques and paradigms of programming languages
- Concurrent programming paradigms
- Reasoning and design techniques for programming
- Practical Programming and Applications
|
Aims |
Students completing successfully this course will be able to
- define with precision and use appropriately in medium-size programs the key programming concepts;
- define with precision the principal programming paradigms, with concepts they contain and the properties they give to programs
- explain how languages work in the programming paradigms, the relations between paradigms;
- learn quickly new languages;
- design new languages targeted toward an arbitrary application;
- interface different languages;
- define the main paradigms of concurrent programming (shared state, message passing and declarative concurrency), with concepts they contain and the properties they give to programs;
- write medium-sized programs in these paradigms of concurrent programming.
Students will have developed skills and operational methodology. In particular, they have developed their ability to
- think with abstractions (reason correctly about a system that consists of several layers of abstractions, and define new abstractions to simplify a problem's solution).
|
Evaluation methods |
-
Mid-term test (dispensatory for 1 / 4 of the mark).
-
Project (1 / 4 of the mark).
-
Written exam in session (3 / 4 of the mark).
|
Teaching methods |
-
Lecture each week.
-
Practical sessions in the computer rooms each week.
-
Design and programming project (second half of the course).
|
Content |
-
Deep understanding of key concepts of programming languages. The concepts are presented in a uniform framework. The course is organized around a progressive and coherent presentation of the various paradigms of concurrent programming.
-
Major programming concepts including function, object, class, abstraction, instantiation, inheritance, state, encapsulation, concurrency, dataflow, lazy evaluation, nondeterminism, agent (active object), lock (lock), monitor transaction Deadlock (deadlock), higher-order programming, compositionality, etc..
-
Description of a wide spectrum of programming paradigms, relationship between these paradigms and introduction to the major programming languages.
-
Reasoning and design techniques with different paradigms to design correct programs.
-
Practical applications in several areas (eg, simulation of logic circuits, simulation lifts, a transaction manager).
|
Bibliography |
-
Van Roy P. and Haridi S, "Concepts, Techniques, and Models of Computer Programming", MIT Press, March 2004 (mandatory book)
-
Mozart Programming System version 1.4.0, www.mozart-oz.org.
|
Cycle et année d'étude |
> Bachelor in Computer Science
> Preparatory year for Master in Computer science
> Bachelor in Economics and Management
> Bachelor in Mathematics
> Bachelor in Engineering
|
Faculty or entity in charge |
> INFO
|
<<< Page précédente
|