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 |
Within SINF1BA : LFSAB1402
Withing FSA1BA: LFSAB1101, LFSAB1102, LFSAB1201, LFSAB1202, LFSAB1301, LFSAB1401
|
Main themes |
-
Concepts, techniques and paradigms of programming languages
-
Concurrent programming paradigms
-
Reasoning and design techniques for programming
-
Practical Programming and Applications
|
Aims |
Given the learning outcomes of the "Bachelor in Engineering" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
-
AA1.1, AA1.2
-
AA2.4-7
-
AA4.1, AA4.3-4
Given the learning outcomes of the "Bachelor in Engineering" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
-
S1.I5
-
S2.2-4
-
S5.2, S5.4-5
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).
The project is obligatory and is done during the quadrimester. It can only be done only once and it counts for all academic year.
|
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 2, www.mozart-oz.org.
|
Other information |
Background:
-
FSAB1402 : Good programming skills in a high-level language
|
Cycle et année d'étude |
> Preparatory year for Master in Computer science
> Bachelor in Engineering
> Bachelor in Economics and Management
> Bachelor in Mathematics
> Bachelor in Computer Science
|
Faculty or entity in charge |
> INFO
|
<<< Page précédente
|