Presentation
The purpose of this course is to give a practical knowledge of C and C++. The subject studied covers imperative programming in C to object-oriented programming in C++:
- Imperative programming in C (types, arrays, structures and functions)
- Pointers and memory management in C
- From to source code to the execution (compilation, linking, libraries, Makefile, process and debugger)
- Classes, constructors, destructors and inheritance in C++
- Pointers, references and operator overloading in C++
- Templates in C++
- Introduction to the C++ standard library
The final grade is determined by graded labs (10%), an exam at the end of the 14th week (40% of the total) and the individual project's evaluation (50% of the total). Read the details of the evaluation for the project here.
Contacts:
- Course Coordinators
-
Group coordinators
- Group 1: Gaël Thomas and Julien Tierny
- Group 2: Gaël Thomas and Julien Tierny
- Group 3: Jeremy Dubut
- Group 4: Jeremy Dubut
- Group 5: Ricardo Buring
- Teaching assistants
-
TopicsResourcesKey concepts
-
Class #1Imperative programming (C)
- Types, arrays and functions
- Basic UNIX environment
-
Class #2Structures (C)
- Arrays and structures
- Functions and call frames
- Type conversion and cast
- git and gitlab
- Basic Makefile
-
Class #3Pointers (C)
- Pointers and memory management
- Macros
- Advanced Makefile
-
Class #4Objects and methods (C++)
- Modular programming
- Object and instance methods
-
Class #5Constructors (C++)
- Constructors and destructors
- Namespaces
- Streams and strings
- Graphs
-
Class #6Inheritance (C++)
- Inheritance
- Templates
- Visibility
- Tree and generic programming
-
Class #7References (C++)
- References
- Operator overloading
- Iterators
- rvalue reference
- Classical containers