This learning unit is not open to incoming exchange students!
Teacher(s)
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.
Main themes
- 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.
Learning outcomes
At the end of this learning unit, the student is able to : | |
With regard to the AA reference of the program "Bachelor in Engineering Sciences, orientation civil engineer", this course contributes to the development, acquisition and evaluation of following learning outcomes:
|
|
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 threads and synchronization mechanisms.
- Design Java programs;
- Analyze programs according to their performance;
- 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, tree, and recursive data 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
The teachers will present the material in a traditional classroom setting, using the textbook entitled "Programming Concepts in Java".
For each topic covered, exercises are continuously available on the INGInious platform, allowing the application of theoretical concepts.
During the practical sessions, teaching assistants or tutors will be present to support and guide the students.
Each student is fully responsible for his or her own learning. To succeed in the computer exam, it is essential for students to practice Java on a regular basis using the IntelliJ tool.
For each topic covered, exercises are continuously available on the INGInious platform, allowing the application of theoretical concepts.
During the practical sessions, teaching assistants or tutors will be present to support and guide the students.
Each student is fully responsible for his or her own learning. To succeed in the computer exam, it is essential for students to practice Java on a regular basis using the IntelliJ tool.
Evaluation methods
A practical programming exam on INGInious is organized in the first examination session. Its purpose is to assess not only students’ knowledge of the material, but also their ability to apply the knowledge they have acquired to write programs. The questions are written in technical English.
The same type of exam is offered in the second examination session.
The same type of exam is offered in the second examination session.
Online resources
https://pschaus.github.io/book_lepl1402/ (for the lecture notes)
https://moodle.uclouvain.be/course/view.php?id=3831 (Moodle for communication with the students and for the slides)
https://inginious.info.ucl.ac.be/course/LEPL1402 (for the exercises)
https://moodle.uclouvain.be/course/view.php?id=3831 (Moodle for communication with the students and for the slides)
https://inginious.info.ucl.ac.be/course/LEPL1402 (for the exercises)
Faculty or entity
Programmes / formations proposant cette unité d'enseignement (UE)
Title of the programme
Sigle
Credits
Prerequisites
Learning outcomes
Bachelor in Computer Science