Learning outcomes

At the end of the course, the student will have mastered the Python 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 Python 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, classes and objects, multithreading, graphical interface, and persistent 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.

Table of contents

Python programming mechanisms not covered in SINFB103 and SINFB104 are progressively studied.
 
The course content is divided into the following units:
 
Linux in Virtual Machine
Principles of object-oriented programming
Objects and methods
Classes and inheritance
Graphical interface
Persistent data structure
Relational database
Multithreading
Scientific libraries

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

Anglais
Training Study programme Block Credits Mandatory
Bachelor in Mathematics Standard 0 2
Bachelor in Mathematics Standard 2 2