le Programme de licence en génie informatique

Programmation Orientée Objet(INF243-A)

Nom du Cours Semestre du Cours Cours Théoriques Travaux Dirigés (TD) Travaux Pratiques (TP) Crédit du Cours ECTS
INF243-A Programmation Orientée Objet 4 2 0 2 3 5
Cours Pré-Requis INF114
Conditions d'Admission au Cours INF114
Langue du Cours Français
Type de Cours Obligatoire
Niveau du Cours Licence
Enseignant(s) du Cours Ayşegül TÜYSÜZ ERMAN aerman@gsu.edu.tr (Email)
Assistant(e)s du Cours Şükrü Demir İnan ÖZER (Email)
Objectif du Cours L'objectif principal de ce cours est de permettre à l'étudiant de comprendre en profondeur le paradigme et les principes de la Programmation Orientée Objet (POO), qui est au cœur des processus modernes de développement logiciel. Tout au long du cours, les étudiants viseront à acquérir les compétences suivantes :

- Analyser des problèmes selon une perspective orientée objet.
- Décomposer des systèmes logiciels complexes en éléments gérables en utilisant les principes d'abstraction et de modularité.
- Développer des codes réutilisables, flexibles et durables en utilisant les structures de Classe (Class) et d'Objet (Object).
- Maîtriser les piliers fondamentaux tels que l'encapsulation (data encapsulation), l'héritage (inheritance) et le polymorphisme (polymorphism), tout en acquérant la capacité de modéliser l'architecture d'un système via les diagrammes UML lors de la phase de conception.
Contenus - Fondamentaux du Paradigme Orienté Objet : Approche orientée objet dans le développement logiciel, concepts de classe et d'objet.
- Abstraction et Encapsulation : Principes de masquage des données (data hiding), modificateurs d'accès et conception de structures modulaires.
- Relations entre Classes et Modélisation : Analyse des relations entre objets (is-a, has-a) et modélisation de systèmes avec les diagrammes de classes UML.
- Héritage et Réutilisation du Code : Mise en place de structures hiérarchiques, redéfinition de méthodes (overriding) et architecture logicielle extensible.
- Polymorphisme et Conception Flexible : Liaison dynamique (dynamic binding), interfaces et classes abstraites, développement de systèmes à faible couplage (loosely coupled).
- Gestion des Erreurs et Structures de Données : Contrôle des exceptions (exceptions) et gestion dynamique des données.
- Opérations d'Entrée/Sortie (I/O) et Persistance : Interaction avec les systèmes de fichiers et techniques de sérialisation d'objets.
Acquis d'Apprentissage du Cours À l'issue de ce cours, l'étudiant sera capable de :

1. Expliquer l'approche orientée objet en programmation.
2. Utiliser un langage de programmation orienté objet et ses bibliothèques de classes associées pour écrire et tester des programmes.
3. Développer des conceptions basées sur UML en utilisant les concepts d'encapsulation, d'héritage et de polymorphisme pour résoudre des problèmes du monde réel.
4. Mettre en œuvre des conceptions basées sur UML (basées sur des diagrammes de classes) pour des problèmes présentant une certaine complexité architecturale et une communication inter-classes importante.
5. Utiliser des IDE (Environnements de Développement Intégrés) pour concevoir, implémenter, déboguer et exécuter des applications orientées objet.
Méthodes d'Enseignement Cours magistral, exercices pratiques en classe, discussion, questions-réponses, résolution de problèmes et projet.
Ressources - Y. Daniel Liang, “Introduction to Java Programming”, Pearson, International Edition, Comprehensive 9th/10th /11th Edition
- Y. Daniel Liang, "Introduction to Java Programming and Data Structures", Pearson, 13E
- Sarnath Ramnath, Brahma Dathan, “Object-Oriented Analysis and Design“, Springer
Imprimer le contenu du cours
Intitulés des Sujets Théoriques
Semaine Intitulés des Sujets
1 Introduction et Paradigme POO: Programmation Procédurale vs. Orientée Objet, Concepts de Base
2 Fondamentaux Java et Mémoire: JVM, JRE, Variables, Types de Données (Primitifs vs. Référence), Logique du Stack et du Heap
3 Structure des Classes et Objets: Constructeurs, Surcharge de Méthodes (Method Overloading)
4 Encapsulation des Données: Modificateurs d'Accès (public, private, protected), Accesseurs/Mutateurs (Getters/Setters), mot-clé this, Portée (Scope)
5 Relations entre Classes et UML: Association, Agrégation, Composition et Diagrammes de Classes
6 Relations Avancées: Association, Agrégation, Composition et Multiplicité
7 Héritage (Inheritance): Utilisation de extends, mot-clé super, Redéfinition de Méthodes (Method Overriding)
8 Semaine d'Examen Partiel: Pas de cours - Examen Intra-semestriel (Midterm)
9 Classes Abstraites et Interfaces: Classes Abstraites vs. Interfaces, Problème de l'Héritage Multiple
10 Polymorphisme: Liaison Dynamique (Dynamic Binding), Upcasting et Downcasting / Annonce du Projet de Session
11 Gestion des Exceptions: Blocs Try-Catch, Exceptions Personnalisées, Hiérarchie des Exceptions
12 Fichiers et Flux d'E/S (I/O): Lecture/Écriture de fichiers, Sérialisation (Serialization)
13 Programmation Générique: Implémentation avec des exemples de Structures de Données
14 Révision et Études de Cas: Révision complète des conceptions POO avec des exemples concrets et modernes
Intitulés des Sujets Pratiques
Semaine Intitulés des Sujets
1 Fondamentaux de Java: Syntaxe de base, exemples pratiques et prise en main de l'IDE.
2 Objets et Introduction à UML: Définition, construction et accès aux objets ; Introduction à Visual Paradigm.
3 Objets et Gestion de la Mémoire: Types Référence vs Types Primitifs ; Cycle de vie des objets.
4 Listes d'Objets et Membres Statiques: Passage d'objets aux méthodes, ArrayList d'objets, variables et méthodes statiques.
5 Encapsulation et Portée: Modificateurs d'accès, Objets Immuables, Portée (Scope) et mot-clé this.
6 Relations entre Classes I: Composition, agrégation, association et multiplicité.
7 Relations entre Classes II: Modélisation avancée et mise en œuvre des relations entre classes en UML.
8 Héritage: Classes mères, classes filles et mécanisme d'extension des classes.
9 Héritage et Classes Abstraites: Conception de hiérarchies et rôle des classes abstraites dans l'héritage.
10 Classes Abstraites et Interfaces: Comparaison et implémentation des Classes Abstraites vs Interfaces.
11 Polymorphisme: Liaison dynamique (dynamic binding) et comportement polymorphe des objets.
12 Gestion des Exceptions: Gestion des erreurs d'exécution via les blocs Try-Catch et exceptions personnalisées.
13 Fichiers et Sérialisation: Opérations d'entrée/sortie (I/O) et persistance des données via la sérialisation.
14 Programmation Générique: Implémentation d'une structure de données (ex: Pile) via les Génériques.
Contribution à la Note Finale
  Numéro Frais de Scolarité
Contribution du contrôle continu à la note finale 0 60
Contribution de l'examen final à la note finale 0 40
Toplam 0 100
Contrôle Continu
  Numéro Frais de Scolarité
Devoir 0 0
Présentation 0 0
Examen partiel (temps de préparation inclu) 1 25
Projet 1 20
Travail de laboratoire 0 0
Autres travaux pratiques 0 0
Quiz 5 15
Devoir/projet de session 0 0
Portefeuille 0 0
Rapport 0 0
Journal d'apprentissage 0 0
Mémoire/projet de fin d'études 0 0
Séminaire 0 0
Autre 0 0
Make-up 0 0
Toplam 7 60
No Objectifs Pédagogiques du Programme Contribiton
1 2 3 4 5
1 Matematik, fizik ve mühendislik bilimlerine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinin modellenmesi ve çözümünde kullanabilme becerisi. X
2 Karmaşık bilgisayar mühendisliği problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. X
3 Yazılımsal veya donanımsal karmaşık bir sistemi, süreci veya donanımı gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. X
4 Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. X
5 Analitik düşünce ile bir sistemi, sistem bileşenini ya da süreci analiz etme, modelleme, deney tasarlama ve yapma, veri toplama, çözüm algoritmaları üretebilme, uygulamaya alma ve geliştirme becerileri. X
6 Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. X
7 Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az iki yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, yazılım ve donanım tasarımını, gerekirse teknik resim metotları kullanarak raporlayabilme, etkin sunum yapabilme becerisi. X
8 Bilgiye erişebilme ve bu amaçla kaynak araştırması yapabilme, veri tabanları ve diğer bilgi kaynaklarını kullanabilme becerisi X
9 Yaşam boyu öğrenmenin gerekliliği bilinci; kendini sürekli yenileme becerisi. X
10 Mesleki etik ilkelerine uygun davranma, mesleki sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi. X
11 Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi. X
12 Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi. X
13 Bilgisayar mühendisliği uygulamalarının hukuki ve etik boyutları konusunda farkındalık. X
Activités Nombre Durée Charge totale de Travail
Durée du cours 14 2 28
Préparation pour le cours 0 0 0
Devoir 0 0 0
Présentation 0 0 0
Examen partiel (temps de préparation inclu) 1 25 25
Projet 1 20 20
Laboratoire 14 2 28
Autres travaux pratiques 0 0 0
Examen final (temps de préparation inclu) 1 25 25
Quiz 0 0 0
Devoir/projet de session 0 0 0
Portefeuille 0 0 0
Rapport 0 0 0
Journal d'apprentissage 0 0 0
Mémoire/projet de fin d'études 0 0 0
Séminaire 0 0 0
Autre 0 0 0
baclé 0 0 0
Yil 0 0 0
Yil 0 0 0
Yil 0 0 0
Charge totale de Travail 126
Charge totale de Travail / 25 5.04
Crédits ECTS 5
Scroll to Top