M3105 Conception et programmation objet avancées …nowak/teaching/cpoa/Amphi01.pdf · • rendre...
Transcript of M3105 Conception et programmation objet avancées …nowak/teaching/cpoa/Amphi01.pdf · • rendre...
CPOA Conception et programmation
objet avancées
Amphi 1 : introduction
Thomas NowakUniversité Paris-Sud
Organisation• Amphis : 2 x 45min
• le lundi à 15h
• le vendredi à 11h
• en salle Hubert Coudanne (horaires différents la première semaine, voir EDT)
• TD : 2h par semaine sur machine (à partir de la semaine prochaine)
• https://www.lri.fr/~nowak/teaching/cpoa/
Équipe• Giancarlo Fissore (TD anglophone, groupe D, vendredi
matin, salle I101)
• Hakim Haroun (TD, groupe B, lundi 9h, salle I105)
• Rémy Lautie (TD, groupe C, mercredi 15h15, salle I013)
• Hugues Mandon (TD, groupe A, lundi 9h30, salle I101)
• Thomas Nowak (cours, TD, groupe E, vendredi 9h45, salle I013)
Modalités de contrôle Contrôle continu
Somme des 2 meilleures notes parmi :
1. Midterm : 10 points, 45 min, sans documents, 23 novembre 2018, heure de l’amphi
2. Rendus de TD : 10 points, entretien à la fin du semestre
3. Notes de cours : 10 points, élaborer vos notes manuscrites sous forme électronique
Rendus de TD• ~10 feuilles de TD, traitent le contenu du cours des semaines
précédentes
• 1 point pour chaque feuille terminée et déposée sur Moodle pendant la séance TD correspondante
• faire signe au chargé de TD pour qu’il vérifie la solution
• inscription sur Moodle (pour dépôt) :
• clé d'inscription dépend du groupe de TD, pour le groupe 3C1 :
• Clé-TP3C1
Notes de cours• élaborer vos notes manuscrites pour 2 séances amphi
sous forme électronique (format LaTeX, HTML, Markdown, texte brut ou Word)
• jusqu’à 5 points par séance amphi (a priori 10 points max, plus si vraiment bien)
• partagé avec vos collègues, sauf si demande contraire
• rendre par email au plus 2 semaines après la séance : [email protected]
Modalités de contrôle Devoir surveillé
• 2 heures, tous les documents autorisés
• semaine du 17 au 21 décembre 2018
• appliquer les notions du cours
• note finale = 40% CC + 60% DS
Au programme• Java avancé
• collections, tests automatiques, threads
• notion d’objet
• design patterns, spécification, sous-types
• Java et d’autres langages
• Java moderne, C++ moderne, POO vs. POD
Livre
Notion d’objet
Triangle
ab
c
Triangle équilatéral
a
a a
Java et d’autres langages
Paradigmes de programmation
• Impératif
• Procédural (e.g., C)
• Orienté objet (e.g., Java)
• Déclaratif
• Fonctionnel (e.g., Lisp)
• Logique (e.g., Prolog)
Aspects de langages de programmation
• Modèle de calcul (théorique, pratique)
• Modularité (paramétrisation, substitution)
• Types (cohérence, abstraction)
Programmation procéduraletypedef struct { double x; double y; } point; point p = {0, 0}; int f(int x) { return 2*x; } int x = 2; int y = f(x);
Programmation orientée objet
public class Point { double x; double y; public Point(double x, double y) { this.x = x; this.y = y; } } public class IntPoint extends Point { public IntPoint(int x, int y) { super(x, y); } }
Programmation fonctionnelle
(defun f (n) (if (= n 1) 1 (* n (f (- n 1))))) (f 2)
Programmation logique
humain(socrates). mortel(X) :- humain(X). ?- mortel(socrates). > yes.
Paradigmes de programmation
• Programmation objet est un des paradigmes les plus populaires
• Raisons : abstraction objet adaptée aux humains, utilisation large, bons outils omniprésents
• Historiquement extension de la programmation procédurale
• Aujourd’hui souvent couplée avec la programmation fonctionnelle
Questions