Acquis d'apprentissage

A l'issue du cours, l'étudiant maitrisera le langage C et sera capable

  • de construire un programme complexe impliquant la maîtrise d'algorithmes évolués et de de mécanismes de programmation avancé
  • de concevoir une architecture logicielle, basé sur différents composants
  • de spécifier ces composants
  • d'en dériver des algorithmes
  • et de déduire de ceux-ci des programmes efficaces.

Il est à noter que, bien que le cours utilise le langage C, la grande majorité des acquis d'apprentissage s'appliquent à tout langage impératif.

Objectifs

Le cours vise à compléter l'étude de la programmation impérative entamée au cours SINF B103 et SINF B104 en introduisant de nouveaux mécanismes non étudiés, en particulier, les pointeurs ainsi que différentes structures de données.  D'autre part, il vise à présenter un cadre rigoureux de construction d'algorithmes et de programmes.

Contenu

Trois phases sont mises en évidence dans le processus de construction d'un logiciel et sont successivement étudiées: i) l'élaboration de spécifications, ii) les techniques de preuve et de construction d'algorithmes, iii) les techniques de dérivation et de transformation de programmes.

Table des matières

Les mécanismes de programmation en C non abordés aux cours SINF B103 et SINF B104 sont progressivement étudiés.

Le contenu du cours est réparti en six unités:
  1. Linux en Virtual Machine
  2. Copmpilation, CMake
  3. Pointers
  4. Dynamic memory allocation
  5. File I/O
  6. Data structures and sorting algorithms
  7. Graphical rendering
  8. Database avec sqlite3

Méthodes d'enseignement

Cours ex-cathédra basé sur de nombreux exemples ainsi que la résolution de cas lors des séances d'exercices.

Méthode d'évaluation

Les étudiants sont évalués durant le quadrimestre sur la base de leur portfolio d'exercices et, en particulier, des exercices réalisés en séances d'exercices et soumis sur Webcampus, et avec un examen oral.

Langue d'instruction

Formation Programme d’études Bloc Crédits Obligatoire
Bachelier en sciences mathématiques Standard 0 2
Bachelier en sciences mathématiques Standard 2 2