Computer language concepts

lingi1131  2017-2018  Louvain-la-Neuve

Computer language concepts
5 credits
30.0 h + 30.0 h
Q2
Teacher(s)
Van Roy Peter;
Language
English
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

At the end of this learning unit, the student is able to :

1

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 Computer science" 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”.
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).
Teaching methods
  • Lecture each week.
  • Practical sessions in the computer rooms each week.
  • Design and programming project (second half of the course).
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.
Other information
Background:
  • FSAB1402 : Good programming skills in a high-level language
Bibliography
  • Van Roy P. et Haridi S, "Concepts, Techniques, and Models of Computer Programming", MIT Press, March 2004. (support obligatoire)
  • Mozart Programming System version 2, www.mozart-oz.org.
Faculty or entity
INFO


Programmes / formations proposant cette unité d'enseignement (UE)

Title of the programme
Sigle
Credits
Prerequisites
Aims
Bachelor in Computer Science

Minor in Engineering Sciences: Computer Sciences

Minor in Computer Sciences