The prerequisite(s) for this Teaching Unit (Unité d’enseignement – UE) for the programmes/courses that offer this Teaching Unit are specified at the end of this sheet.
- Techniques for deriving the computational complexity of an algorithm
- Techniques for reasoning about programs
- Object-oriented modeling
- Linear and tree-like data structures
- Recursive algorithms
- Implementation in high level programming language of medium-sized programs
- Methods for testing and validating programs
At the end of this learning unit, the student is able to : | |
1 |
Contribution of the course to the program objectives
Given the learning outcomes of the "Bachelor in Computer Science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
Specific learning outcomes of the course
Students will have developed skills and operational methodology. In particular, they have developed their ability to:
|
The contribution of this Teaching Unit to the development and command of the skills and learning outcomes of the programme(s) can be accessed at the end of this sheet, in the section entitled “Programmes/courses offering this Teaching Unit”.
Linear data abstractions (stacks, queues, lists, etc.) and their applications
Techniques for representing linear data abstractions
Object-oriented modeling (inheritance, composition, and reuse)
Preconditions, postconditions, invariants
Reasoning techniques (deduction rules, termination proofs, ...)
Basics of computational complexity
Derivation of the temporal complexity of an algorithm
Derivation of the spatial complexity of a data structure
Recursive formulation of a solution and recursive algorithms
Tree-like data abstractions (binary trees) and their applications
Techniques for representing tree-like data abstractions
Quantified measurements of program efficiency
Design and implementation of methods for testing and validating programs
The evaluation has 2 components: an intermediary evaluation during the semester and a final exam at the end of the semester (written exam). The final mark is a combination of the scores in these two evaluations |
Dossiers de travail sur les différentes parties du cours (version disponible sur le site, et version papier) Peter Van Roy et Seif Haridi, PROGRAMMATION: Concepts, techniques et modèles, Dunod, 2007 Peter Van Roy et Seif Haridi, Concepts, Techniques, and Models of Computer Programming, MIT press, 2004 |