WikiLuc

Guest connection: login: Guest, password: anonymous

User Tools

Site Tools


dit:cours:maths2_2013-14

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

dit:cours:maths2_2013-14 [2017/04/05 17:06] (current)
Line 1: Line 1:
 +====== Cours de programmation orientée objet 2013-14 ======
 +
 +
 +<WRAP center round warning 60%>
 +La [[dit:​cours:​maths2:​projet2|page spéciale]] du projet 2 est en ligne!
 +</​WRAP>​
 +
 +====== Projets ======
 +
 +   * [[dit:​cours:​maths2:​projet1|Matrices]]:​ déterminant,​ inversion, exponentiation,​ stabilité numérique
 +   * [[dit:​cours:​maths2:​projet2|Graphisme]]:​ manipulation de figures, opérations,​ remplissage,​ mouvement
 +====== Organisation ======
 +
 +
 +  * Responsable:​ [[Luc.Bouge@ens-rennes.fr|Luc Bougé]], bureau R110 à Ker Lann le mardi (le lundi et le vendredi à l'​IRISA sur le Campus de Beaulieu)
 +  * TD: [[Pierre.Chatelain@irisa.fr|Pierre Chatelain]]
 +  * Délégué de classe: [[Laura.Gay@ens-rennes.fr|Laura Gay]]
 +  * [[https://​docs.google.com/​spreadsheet/​ccc?​key=0AlrHsh34RbYGdFpkRlpDQmhmb0EzTEY0eWxMRW9YYmc&​usp=sharing|Programme prévisionnel]]
 +  * Mode d'​évaluation:​ contrôle continu basé sur les 3 projets. Critères d'​appréciation:​ contribution,​ rapport, soutenance. Pas d'​examen final sur table en temps limité.
 +
 +== Support technique ==
 +
 +  * Documentation C++ de référence:​ [[http://​www.cplusplus.com/​|The C++ Resources Network]]
 +  * Outils, environnements de programmation,​ etc.: cliquez [[#​outils_environnements_de_programmation_etc|ici]].
 +
 +== Organisation du cours (accès privé) ==
 +
 +  * {{:​dit:​cours:​maths2:​private:​liste_eleves_maths2_2013-14.xlsx|Liste des élèves}}
 +  * {{:​dit:​cours:​maths2:​private:​trombi_eleves_maths2_2013-14.pdf|Trombinoscope}}
 +  * {{:​dit:​cours:​maths2:​private:​adresses_eleves_maths2_2013-14.txt|Adresses mail}}
 +  * [[https://​docs.google.com/​spreadsheet/​ccc?​key=0AlrHsh34RbYGdFpkRlpDQmhmb0EzTEY0eWxMRW9YYmc#​gid=1|Les niveaux déclarés au TD1]]
 +
 +<WRAP center round important 60%>
 +Vous avez cours le lundi, 10h15-12h15 à Beaulieu, et TP le mardi, 8h-10h à Ker Lann. Voir le [[https://​docs.google.com/​spreadsheet/​ccc?​key=0AlrHsh34RbYGdFpkRlpDQmhmb0EzTEY0eWxMRW9YYmc&​usp=sharing|programme prévisionnel]] pour les détails.
 +</​WRAP>​
 +
 +== Bibliographie ==
 +
 +
 +  * //​[[http://​www.ams.jhu.edu/​~ers/​cpp4m/​|C++ for mathematicians]]//,​ by Ed Scheinerman and published by CRC Press. Le livre de référence du cours. Achat recommandé.
 +  * [[http://​ndc.istic.univ-rennes1.fr/​|Notes de cours]] de l'​ISTIC:​ Programmation par objets en C++, P. Le Certen, L. Ungaro, numéro 99. Un exemplaire de ce polycopié vous sera distribué la première semaine.
 +
 +
 +Pour aller plus loin, voir la [[#​bibliographie_complementaire|bibliographie complémentaire]]
 +
 +
 +----
 +
 +
 +====== Cours 6: Standard Template Library ======
 +
 +18 février 2014
 +
 +  * Types abstraits: vecteur, liste, pile, file, table, ensemble
 +  * Conteneurs standards
 +  * Parcours
 +
 +Compléments:​
 +  * Le pointeur ''​this''​
 +  * Pointeur et virtualisation
 +  * Chaînes de caractères,​ passage d'​arguments en ligne de commande
 +
 +== Références ==
 +  * [[http://​www.cplusplus.com/​reference/​stl/​|Containers]]:​ Containers replicate structures very commonly used in programming:​ dynamic arrays (vector), queues (queue), stacks (stack), heaps (priority_queue),​ linked lists (list), trees (set), associative arrays (map)...
 +  * [[http://​stdcxx.apache.org/​doc/​stdlibug/​noframes.html|Manuel de référence STL]]
 +
 +
 +====== Cours 5: Pointeurs ======
 +
 +17 février 2014
 +
 +  * Notion d'​adresse et de pointeur
 +  * Applications:​ passage de paramètre par adresse, partage d'​objets dans un vecteur
 +  * Pointeurs et tableaux: arithmétique pointeur
 +
 +À traiter:
 +  * Le pointeur ''​this''​
 +  * Pointeur et virtualisation
 +  * Chaînes des caractères
 +  * Allocation dynamique
 +
 +== Tuturiels ==
 +
 +  * [[http://​www.cplusplus.com/​doc/​tutorial/​pointers/​|Pointers]]
 +  * [[http://​www.cplusplus.com/​doc/​tutorial/​dynamic/​|Allocation dynamique]]
 +  * [[http://​www.cplusplus.com/​doc/​tutorial/​ntcs/​|Chaînes de caractères C]]
 +====== Cours 4: Héritage et virtualisation ======
 +
 +11 février 2014
 +
 +  * Notion d'​héritage:​ extension, redéfinition,​ abstraction
 +  * Déclaration C++: ''​NamedPoint''​ fille de ''​Point''​
 +  * Visibilité:​ qualificateur ''​protected''​
 +  * Virtualisation et polymorphisme:​ qualificateur ''​virtual''​
 +
 +TP 7: Lancement du projet Graphisme
 +
 +== Tutoriels ==
 +
 +  * [[http://​www.cplusplus.com/​doc/​tutorial/​inheritance/​|Héritage]]
 +  * [[http://​www.cplusplus.com/​doc/​tutorial/​polymorphism/​|Virtualisation]],​ polymorphisme
 +====== Cours complémentaire:​ Outils de gestion de projets ======
 +
 +3 février 2014
 +
 +  * make
 +  * subversion sur la [[http://​forge.istic.univ-rennes1.fr/​projects/​cpmath-svn/​|Forge ISTIC]]
 +
 +TP 6: Soutenances
 +
 +== Manuels de référence ==
 +  * [[http://​www.gnu.org/​software/​make/​manual/​make.html|Make]]
 +  * [[http://​svnbook.red-bean.com/​nightly/​fr/​svn-book.html|Subversion]]
 +====== Cours 3: Classes et objets ======
 +
 +20 janvier 2014
 +
 +  * Approche par type abstrait: ''​Complex'',​ constructeurs,​ accesseurs, observateurs,​ combinateurs,​ modificateurs
 +  * Classe: attributs, constructeurs,​ méthodes, fonctions externes
 +  * Principes de programmation objet: minimisation de la classe, approche défensive, assertions
 +  * L'​objet ''​*this''​
 +  * Attributs et méthodes statiques
 +
 +  * Complément C++: références,​ application au passage de paramètre, qualification ''​const''​
 +
 +TP 3: Lancement du projet Matrices\\
 +TP 4: Suivi de projet\\
 +TP 5: Suivi de projet\\
 +
 +====== Cours 2: Un peu plus loin en C++ ======
 +
 +14 janvier 2014
 +
 +  * Fonctions: passage de paramètres par valeur, variables locales, retour
 +  * Structures de données avancées: échappements,​ variations sur la boucle ''​for'',​ boucles imbriquées
 +  * Gestion des erreurs: assertions, fonction ''​exit''​
 +  * Entrées-sorties:​ ''​cout''​ et ''​cin'',​ gestion des erreurs en lecture
 +  * Déclarations locales et globales
 +
 +TP 2: Calcul du PGCD
 +====== Cours 1: Premiers pas en C++ ======
 +
 +7 janvier 2014
 +
 +  * Un peu d'​histoire
 +  * ''​Hello world!''​
 +  * Types de base, déclarations,​ chaînes, vecteurs
 +  * Structures de contrôle: choix, itération non bornée, itération bornée, bloc, fonctions
 +
 +TP 1: Prise en main Linux
 +
 +----
 +
 +====== Bibliographie complémentaire ======
 +
 +  * //​[[http://​www.amazon.fr/​Langage-2e-%C3%A9dition-Jacquelin-Charbonnel/​dp/​2100048090/​|Langage C++: les spécifications du standard ANSI/ISO expliquées]]//,​ par Jacquelin Charbonnel, Dunod. Le livre que j'​utilise pour enseigner C++ aux élèves d'​informatique
 +  * //​[[http://​www.amazon.com/​The-Programming-Language-3rd-Edition/​dp/​0201889544|The C++ programming language]]//,​ Bjarne Stroustrup. La Bible où se trouvent les réponses à toutes les questions, même celles que vous n'​auriez jamais pensé à poser!
 +
 +----
 +
 +====== Outils, environnements de programmation,​ etc. ======
 +
 +<WRAP tip>
 +{{  http://​www.geany.org/​images/​geany.png?​100}}
 +Un environnement de développement recommandé:​ [[http://​www.geany.org/​|Geany]]
 +
 +Geany is known to run under Linux, FreeBSD, NetBSD, OpenBSD, MacOS X, AIX v5.3, Solaris Express and Windows. More generally, it should run on every platform, which is supported by the GTK libraries. Only the Windows port of Geany is missing some features. ​
 +</​WRAP>​
 +
 +
 +== Environnements de développement ==
 +
 +Tout le cours est construit sur le compilateur GNU ''​g++''​ et les outils GNU standard: ''​make'',​ ''​gdb'',​ etc. Nous utiliserons aussi des outils avancés comme ''​valgrind''​. L'​environnement recommandé est Linux Ubuntu, mais vous pouvez tout à fait travailler sur Windows ou Mac. Voir les pages détaillées ci-dessous
 +  * [[dit:​cours:​maths2:​systeme:​Linux|Linux]]
 +  * [[dit:​cours:​maths2:​systeme:​Mac|Mac]]
 +  * [[dit:​cours:​maths2:​systeme:​Windows|Windows]]
 +  * [[dit:​cours:​maths2:​systeme:​VM_Ubuntu|Machine virtuelle Ubuntu]]
 +
 +<WRAP important>​
 +Attention cependant, les projets sont corrigés sous Linux Ubuntu. C'est votre responsabilité que de vérifier que tout marche bien dans cet environnement si vous développez autrement.
 +</​WRAP>​
 +
 +Un site ressource sur les environnements de développement C++: la page Wikipedia sur les [[http://​fr.wikipedia.org/​wiki/​Environnement_de_d%C3%A9veloppement_int%C3%A9gr%C3%A9#​Principaux_EDI|environnements de développement intégré]] (EDI)
  
dit/cours/maths2_2013-14.txt · Last modified: 2017/04/05 17:06 (external edit)