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



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

The prerequisite(s) for this Teaching Unit (Unité d’enseignement – UE) for the programmes/courses that offer this Teaching Unit are specified at the end of this sheet.

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).

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
  • 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
Faculty or entity
in charge
> INFO
Programmes / formations proposant cette unité d'enseignement (UE)
  Sigle Crédits Prérequis Acquis
d'apprentissage
Bachelor in Computer Science SINF1BA 5 LFSAB1402 ET LMAT1111F ET LMAT1111E ET LSINF1140 ET LSINF1101 ET LSINF1102 ET LSINF1103
Minor in Computer Sciences LINFO100I 5 LSINF1103 ET LSINF1225
Minor in Engineering Sciences: Computer Sciences LSINF100I 5 -


<<< Page précédente