5.00 credits
30.0 h + 30.0 h
Q1
This learning unit is not open to incoming exchange students!
Teacher(s)
Jodogne Sébastien; Sadre Ramin;
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.
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.
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.
- 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 : | |
AA 1.2, 1.5- AA 2.4 - AA 4.3, 4.4, 4.5 - AA 5.1, 5.3 | 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 learning outcomes. following: - AA 1.2, 1.5 - AA 2.4 - AA 4.3, 4.4, 4.5 - AA 5.1, 5.3 More specifically, at the end of the course, the student will be able to: - make a justified choice between several representations of information and several algorithms to process them, - design (fragments of) programs in a functional style, - reasoning about (fragments of) programs: complexity of algorithms and efficiency of programs implementing them, recursive reasoning, - apply object-oriented modeling principles, - design and apply methods for testing a program, - design a simple parallel program Students will have developed methodological and operational skills. In particular, they will have developed their ability to: - Analyze a medium-sized problem, propose a computer solution to solve it and implement it in the Java language. |
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
- 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
Flipped classroom method:
- Theoretical lectures are available online as videos.
- Practical exercises are accessible online at any time on the INGInious platform.
- Lab sessions consist in asking support online to tutors or teaching assistants.
- On-site or remote restructuration sessions allow students to ask their questions and/or to witness the resolution of selected exercises.
Evaluation methods
Oral examination at the end of the quadrimester. The purpose of the exam in January is to test not only knowledge of the subject, but also the ability to apply the knowledge acquired to write programs.
An optional quiz is held at the mid of the quadrimester as a part of the continuing assessment.
The final grade is computed as follows: final_grade_over_20 = max(quiz_over_2 + exam_over_18, exam_over_20).
The points obtained for the quiz will be kept for the August session.
An optional quiz is held at the mid of the quadrimester as a part of the continuing assessment.
The final grade is computed as follows: final_grade_over_20 = max(quiz_over_2 + exam_over_18, exam_over_20).
The points obtained for the quiz will be kept for the August session.
Other information
Background: LSINC1101 or a similar course.
Online resources
https://lepl1402.readthedocs.io/ (links to the slides and other course contents)
https://moodleucl.uclouvain.be/course/view.php?id=12884 Moodle et/ou Teams (communication with the students)
https://inginious.info.ucl.ac.be/course/LEPL1402 for the exercises
https://moodleucl.uclouvain.be/course/view.php?id=12884 Moodle et/ou Teams (communication with the students)
https://inginious.info.ucl.ac.be/course/LEPL1402 for the exercises
Faculty or entity
SINC