About the module (OOP)
Résumé de section
-
4th semester
Methodological teaching unit: MTU
Module: Object Oriented Programming
Credits: 4
Coefficient: 2
Teaching goals: The basic objective of this course is to introduce the basic concepts of object-oriented programming (OOP) by practice using the Java language. Each chapter includes concepts that are translated at the end into java, so that the student can translate the theoretical concepts acquired into practice. At the end of the semester, the student is expected to have acquired the following skills:
1. The essence of object programming and its transformation into the Java language
2. To acquire an intuitive reasoning to give a solution to a simple problem according to the object-oriented
3. Write a program in Java that is functional
4. The essence and importance of OO reasoning and OOP
Prerequisite knowledge: C language
Module Content:
1. Introduction
2. Fundamental concepts of OOP
a. Short history of OOP
b. Procedural programming vs. object-based programming
c. Code reuse
d. Introduction to modularity
3. Objects and classes
a. Notions of object
b. Notions of class
c. Attributes
d. Notion of message
e. Problem solving by message exchange
4. Introduction to Java
a. Types and control structures in Java
b. Classes and instantiation
c. Methods
d. References and parameter passing
e. Inputs /Outputs
f. Default constructor and other constructors
g. Destructors
Chapter 2: Encapsulation
1. Levels of visibility
2. Encapsulation
a. Encapsulation of data (attributes)
b. Code encapsulation (Messages)
3. Encapsulation in Java
a. Access control (public, private)
b. Accessors (get and set)
c. Access to the instance (this)
d. Class variables and methods (static)
Chapter 3: inheritance
1. Subclasses and inheritance
2. Simple inheritance, multiple inheritances
3. Class hierarchy
4. Polymorphism
5. Inheritance and polymorphism in Java
a. Simple inheritance (extends)
b. Encapsulation in heritage
i. Member protection (protected)
ii. Class constructors (this (), super ())
iii. ‘Object’ class
iv. Implicit and explicit transtyping
v. Limitation of heritage (final)
c. Polymorphism
i. Method overloading
ii. Method redefinition
d. Abstract classes (use and importance)
e. Interfaces (use and importance)
Evaluation method: Examination (60%), continuous control (40%)
References
1. Apprendre la Programmation Orientée Objet avec le langage Java. Luc Gervais. Eni. 2ème édition.
2. https://openclassrooms.com/courses/apprenez-a-programmer-en-java
3. Java 8 - Apprendre la Programmation Orientée Objet et maîtrisez le langage. Thierry GROUSSARD Luc GERVAIS. Edition ENI. 2015.
4. La programmation objet en Java. Michel Divay. Edition DUNOD. 2006.