lepl1402  2019-2020  Louvain-la-Neuve

Note from June 29, 2020
Although we do not yet know how long the social distancing related to the Covid-19 pandemic will last, and regardless of the changes that had to be made in the evaluation of the June 2020 session in relation to what is provided for in this learning unit description, new learnig unit evaluation methods may still be adopted by the teachers; details of these methods have been - or will be - communicated to the students by the teachers, as soon as possible.
5 credits
30.0 h + 30.0 h
Q1
Teacher(s)
Sadre Ramin; Schaus Pierre;
Language
French
Prerequisites

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.
Content
This teaching unit focuses on:
- Introduction to Java: compilation, byte-code, virtual machine, primitive type, strings, tables
- Abstract data types;
- Linear and tree structures, and their applications;
- recursive solution formulation and recursive algorithms;
- reasoning technique: preconditions, postconditions, invariants
- Notions of computational complexity and analysis of the temporal and spatial complexity of an algorithm;
- Functional programming and higher order programming
- Object-oriented modeling (inheritance, composition, reuse, polymorphism, class invariant);
- Introduction to design patterns;
- Program testing and validation methods;
- Introduction to parallelization: notion of thread and synchronization mechanisms.
Students who have successfully completed this course will be able to
  • to design Java programs
  • analyze programs according to their performance
  • to prove correctness of programs using invariants
  • apply the principles of object-oriented programming such as genericity, abstraction, composition and reuse
  • design and implement variants of the algorithms studied in high quality Java programs.
  • design and manipulate simple linear and tree and recursive structures
  • design tests for programs
  • design functional programming approaches to solve small algorithmic problems
  • use design patterns
  • design simple parallel programs with synchronization mechanisms
Teaching methods
Lectures + Exercices on Inginious + lab sessions with TA
Evaluation methods
An optional quiz takes place in the middle of the quad counting for two points only if the score is higher than the exam score: final note = max (quizz_on_2 + examen_on_18, examen_on_20).
The examination at the end of the semester aims to verify not only the knowledge of the subject, but also the ability to apply the knowledge acquired to write programs. The exam and the quiz will use the Inginious evaluation system.
Other information
Background: LEPL1401 or a similar course
Online resources
https://lepl1402.readthedocs.io/ (pour les liens vers les slides et contenu du cours)
https://moodleucl.uclouvain.be/course/view.php?id=12884 Moodle (pour la communication avec les étudiants)
https://inginious.info.ucl.ac.be/course/LEPL1402 pour les exercices
Faculty or entity
BTCI


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

Title of the programme
Sigle
Credits
Prerequisites
Aims
Bachelor in Mathematics

Master [120] in Linguistics

Bachelor in Computer Science

Bachelor in Engineering

Master [120] in Data Science : Statistic

Minor in Computer Sciences

Minor in Information and Communication Studies and Technologies