University of Ottawa, Canada's University Robert Laganière
message
CSI 2772 : Concepts avancés en programmation C++

Description
Différences entre la programmation Java et la programmation C++. Pointeurs et gestion de la mémoire. Programmation orientée objet en C++. Entrée-sortie des fichiers et flux de données. Macros du préprocesseur. Classes génériques et bilbiothèque STL. Calcul numérique en C++. Interfacage avec le matériel. Applications d'ingénierie. Préalables : ITI1521, ITI1500

Professeur
Robert Laganière
STE 5023
562-5800 poste 6707
laganier@eecs.uottawa.ca
http://www.site.uottawa.ca/~laganier

**Le cours débute le lundi 14 septembre 2020

Références
  • S.B. Lippman, J. Lajoie and B.E. Moo, C++ Primer, 6th ed, Addision-Wesley, 2020
ou:
  • P. Deitel and H. Deitel, C++ How To Program, 10th ed, 2017.
plus: quelques classiques:
  • Bjarne Stroustrup, The C++ Programming Language, 4th ed, Addison-Wesley, 2013
  • B.W. Kernighan, D.M. Ritchie, The C Programming Language, 2nd ed, Prentice Hall, 1988.
  • S. Meyer, Effective C++, 3th edition, Addison Wesley, 2005.
et ces références en ligne:

Évaluation
40% Devoirs (8 à 10)
30% Examen final
30% Projet en équipe de 2.

pour l'examen final un seul livre de référence C++ est permis (aucun autre documents ou notes)

Veuillez noter que les devoirs se font individuellement. La remise d'une solution trop similaire à celle d'un(e) collègue pourrait être considéré comme du plagiat et entrainer des conséquences importantes.

Thèmes abordés
  1. Storage classes (auto, static, extern, const)
  2. Pointers
  3. Arrays and pointer to arrays
  4. Pass by value, pass by reference, pass by address
  5. Memory allocation (new and delete)
  6. Function pointers
  7. Structures, classes, attributes and methods
  8. Class constructors and destructors
  9. Copy constructor, type conversion, and assignment
  10. Inheritance (private, protected, public)
  11. Polymorphism, virtual methods and abstract classes
  12. Multiple inheritance
  13. Class relationship (association, aggregation, generalization)
  14. Exception handling
  15. Lambdas and functors
  16. Template functions and classes
  17. Operator overloading
  18. Generic containers (std ::vector, std ::array, std::string)
  19. Associative container (std::map, std::set, std::multimap, std::multiset)
  20. Iterator
  21. Generic algorithms
  22. Smart pointers
  23. Move constructor and move assignment
  24. Function binding
  25. Type traits

Réglements généraux
La présence au cours est obligatoire. Comme le stipulent l'ensemble des règlements scolaires, l'étudiant(e) qui ne se présente pas à au moins 80 % du cours ne pourra pas écrire l'examen final.

Toutes les composantes du cours (tels que les rapports de laboratoire, les devoirs, etc.) doivent être remplies sinon l'étudiant(e) pourrait recevoir la note de INC comme note finale (équivalente à un F).

Pour satisfaire aux exigences du cours, l'étudiant devra obtenir une note d'au moins 50% au total de ses examens

La fraude scolaire peut avoir des conséquences importantes