Learning outcomes

At the end of the course, the student will have mastered the C language and will be able to • build a complex program involving advanced algorithms and programming mechanisms • to design a software architecture, based on different components • to specify these components • derive algorithms from it • and to derive effective programmes from them. It should be noted that, although the course uses the C language, the vast majority of the learning outcomes apply to any imperative language.

Goals

The course aims at completing the study of imperative programming started in SINF B103 and SINF B104 by introducing new mechanisms not studied, in particular, pointers as well as various data structures. On the other hand, it aims at presenting a rigorous framework for the construction of algorithms and programs.

Content

Three phases are highlighted in the process of building software and are successively studied: i) the elaboration of specifications, ii) the techniques of proof and construction of algorithms, iii) the techniques of derivation and transformation of programs.

Assessment method

Students are assessed during the term on the basis of their portfolio of exercises and, in particular, exercises completed in practice sessions and submitted on Webcampus, and with an oral examination.

Language of instruction

English