Logo ÉTS
Session
Cours
Responsable(s) Catherine Laporte, Pascal Giard

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement





Cours

Semaine Contenus traités dans le cours Heures
 

Introduction:

Introduction à Linux; Système d’exploitation; Unix et Linux; Introduction aux notions muti-tâche, multi-utilisateur, multithread; Outils de Linux; Environnement de développement Visual Studio Code; Gestion de code et documentation dans Eclipse.  Introduction au contrôle de révisions et à Git.
1.5
 

Système d’exploitation Linux:

Système d’exploitation; Fichiers; Terminal; Mode noyau et mode utilisateur; Processus et threads; Appels systèmes; Entrée/Sortie; Socket; Horloge.
3
 

Programmation multi-processus sous Linux :

Programmation sous Linux; Processus; Création et terminaison de processus; Environnement de processus; Changement de contexte; Gestion du temps du processeur; Communication inter-processus; signaux et gestion d'erreurs.
3
 

Programmation multi-thread sous Linux :

Threads; Création et terminaison de threads; Environnement de threads; Synchronisation, sémaphores et mutex.

6
 

Déverminage et détection d’erreurs:

Gestion de mémoire; Déverminage; Erreurs dans la programmation; Saisie d’erreur; Déverminage au niveau de code source; Déverminage au niveau binaire; Rapport d’erreurs.
3
 

Programmation d’entrée/sortie:

Gestion d’entrée/sortie sous Linux; Système de fichiers; Droits d’accès; Descripteurs d’entrée/sortie; Système de fichiers virtuel; Appels de système; Sérialisation et désérialisation de données
3
 

Programmation réseau et modèle client-serveur;

Communication réseau par sockets; Programmation client-serveur; Serveurs itératifs et concurrentiels
3
 

Méthode de développement Agile:

Gestion de projets; Spécifications de logiciel; Méthode de développement Agile; Scrum.

1.5
 

UML et Patrons de conception

Introduction à la modélisation UML et à différents types de diagrammes UML.  Introduction aux patrons de conception.
6
 

Test et validation de logiciels

Tests; Test unitaire et intégration; Boîte noire et boîte blanche; Top-down et bottom-up.

3
 

Révision et réusinage de code :

Révision de code; Révision de code dans l’industrie; Réusinage de code; Maintenance de code.

1.5
 

Profilage et optimisation de performance :

Mesure de performance; Métriques; Profilage; Outils de profilage logiciels et matériels; Échantillonnage et instrumentation; Optimisation de performance.

1.5
  TOTAL  39

Remarque: la matière peut être vue dans un ordre différent de celui présenté au plan de cours pour faciliter l'assimilation des concepts et l'arrimage avec les laboratoires.

 

Laboratoires et travaux pratiques

Les laboratoires sont réalisés en langage C dans l’environnement GNU/Linux, sur les ordinateurs personnels des étudiant.e.s ou en accès distant aux ordinateurs d'un laboratoire GNU/Linux.

Séance Activité

Heures (lab/maison)

1 Laboratoire 1 3/4
2-4 Laboratoire 2 9/12
5-8 Laboratoire 3 12/16
9-12 Laboratoire 4 12/16
  TOTAL  36/48

Utilisation d'outils d'ingénierie

-    Environnement de développement Visual Studio Code pour le langage C;
-    Périphériques d’entrée/sortie et le réseau local;
-    Environnement de gestion de sources git et serveur de gestion de projet Gitlab.