Course label : | Object Oriented Design & Programming |
---|---|
Teaching departement : | MIN / Applied Mathematics and General Computing |
Teaching manager : | Mister MAXIME OGIER |
Education language : | French |
Potential ects : | 0 |
Results grid : | |
Code and label (hp) : | LE4_8_SI_MIN_POO - Programmation orientée objet |
Education team
Teachers : Mister MAXIME OGIER / Mister DIEGO CATTARUZZA
External contributors (business, research, secondary education): various temporary teachers
Summary
This course aims to bring new knowledge about object-oriented development. The objective is to be able to develop efficient applications, in terms of data persistence and algorithms, to respond to complex industrial problems. Regarding data persistence, we will see how to implement object-relational mapping to achieve data persistence with a database, and without using the JDBC API. This will also be an opportunity to focus on the use of some design patterns. Finally, we will see different algorithmic tools that effectively solve complex industrial problems (in the sense that the solution is not easy to find), and on large instances (in the sense that there is a lot of data). This course is based on the Java language. The summary content of the course is as follows: - relational object mapping (JPA API); - design patterns (singleton, DAO, factory); - constructive methods to solve a problem; - local search methods; - metaheuristic methods; - exact approaches based on linear programming.
Educational goals
At the end of the course, the student will be able to: - develop an application according to the object-oriented programming paradigm; - know good development practices in object-oriented programming; - choose and use the right data structures (list, set, associative table); - use the JPA API to propose a data model in an object language from a relational model from a database; - use the JPA API to propose a database from an object model; - perform queries on a database through the JPA API; - know what a design pattern is, and use some of them; - know efficient algorithmic methods to solve an optimization problem; - develop an information system in object-oriented language, able to efficiently solve a complex problem. Contribution of the course to the competency framework; at the end of the course, the student will have progressed in: - design a system; - to develop a system; - set up test protocols; - make and execute test sets; - produce technical project documentation. Working knowledge: - vocabulary of object-oriented programming; - good development practices in object-oriented programming; - implementation of data structures (list, set, associative table); - object-relational mapping; - efficient methods to solve an optimization problem; - design patterns. Skills developed: - good development practices in object-oriented programming; - perform unit tests; - make clean code; - comment on your code; - design a program in an object-oriented programming language; - develop an efficient algorithm.
Sustainable development goals
Knowledge control procedures
Final Exam
Comments: The course is evaluated on the project.
Students must present their work in a final defense.
There is a grade for the team, and individual coefficients provided by the members of the team that leads to an individual grade for each student.
Online resources
- For each class, subjects available on Moodle.
Pedagogy
- This course consists of a first part (28 hours) in the form of classes in the machine room, then a second part (40 hours) in the form of a project. - For the first part, for each class, a subject in the form of a case study allows the students to discover the new concepts: first the theoretical aspect, then the students implement them in practice. - The teacher does not make a systematic correction, but can answer all the students' questions. Students must therefore be active. - Work outside the classes is necessary. - In the second part, the students must carry out a project whose essential elements are the use of the JPA API to interact with a database, and the realization of an efficient algorithm to solve a complex industrial problem. - The quality of the code developed is very important.
Sequencing / learning methods
Number of hours - Lectures : | 0 |
---|---|
Number of hours - Tutorial : | 64 |
Number of hours - Practical work : | 0 |
Number of hours - Seminar : | 0 |
Number of hours - Half-group seminar : | 0 |
Number of student hours in TEA (Autonomous learning) : | 0 |
Number of student hours in TNE (Non-supervised activities) : | 0 |
Number of hours in CB (Fixed exams) : | 0 |
Number of student hours in PER (Personal work) : | 0 |
Number of hours - Projects : | 0 |
Prerequisites
- Algorithmic notions. - Know the basic data structures (array, linked list, set). - Know how to develop an application in object-oriented programming. - Understand a UML class diagram. - Know how to make SQL queries on a database. - Know how to use the JDBC API in Java.