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

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