Cahier de texte de la classe de BTS Informatique industrielle, seconde année du lycée
Louis RASCOL

Année scolaire 1999-2000

Séquence pédagogique | Mémoire professionnel

10/01/2000 | 13/12/1999 | 9/12/1999 | 6/12/1999 | 2/12/1999 | 29/11/1999 | 22/11/1999 | 18/11/1999 | 15/11/1999 | 8/11/1999 | 18/10/1999 | 11/10/1999 | 4/10/1999 | 27/9/1999 | 13/9/1999 | 6/9/1999


Lundi 10/01/2000

Correction 2h Correction de l'interrogation du 13/12/1999
  • Retour sur le synopsis du programme principal en C sous UNIX (le "main")
  • Retour sur l'arithmétique des caractères en C
  • Les fonctions isXXXX (isupper, islower, ...)
  • Retour sur l'utilisation des tubes/pipes en C sous UNIX.
Moyenne de la classe: 5,5 / 20
Meilleure note: 11,5 / 20
Moins bonne note: 1,5 / 20
Absents: 2

Pour la partie QCM, de l'interrogation, les notes sont les suivantes:
Moyenne de la classe: 15,6 / 20
Meilleure note: 20 / 20
Moins bonne note: 4 / 20
Absents: 2


Lundi 13/12/1999

Interrogation 1h15 Validation des cours sur la programmation E/S vers des fichiers sous UNIX.
  • QCM sur 'vi' et la langage 'HTML'
  • Exercices de programmation en C sur les accès aux fichiers (primitives open, close, read, write). Création et lancement de processus (primitives pipe, dup, exec et fork)
TP 4h Application de la programmation des E/S sous UNIX.
  • Lecture/ecriture sur les E/S standards.
  • Programmation d'un filtre.
  • Création et recouvrement de processus.
  • Communicaiton par tube.


Jeudi 9/12/1999

Cours / TD 1h Les primitives du multi-tâche:
  • La primitive de création de processus fork.
    Notion de processus père et de processus fils:
    • Le père et le fils sont deux processus identiques
    • Le fils hérite des descripteurs de fichiers de son père
    • Chacun possède une copie des données (pas de données partagées)
    • Chacun possède son propre identificateur de processus (pid)

    Les valeurs de retour de la primitive fork:

    • 0 dans le processus fils si tout s'est bien passé
    • >0 dans le processus père si tout s'est bien passé
    • < 0 dans le processus père en cas d'erreur (dans ce cas, le fils n'est pas créé!!!)
  • Les primitives de recouvrement de la famille exec
    Le processus lancé par exec recouvre le processus l'ayant lancé. Un seul des deux existe à la fois: il n'y a pas de création, mais remplacement d'un processus par un autre.

Ètude illustrée en s'appuyant sur le fonctionnement de l'interpréteur de commandes (shell).
Cours / TD 2h Les tubes, et la communication entre processus

Un tube est un moyen de communication unidirectionnel entre processus. Pour avoir une communication bidirectionnelle il faut deux tubes.

Les processus qui communiquent par un tube doivent avoir un ancêtre en commun qui a créé ce tube. Les processus fils héritant des descripteurs de fichier de leur père, ceux-ci peuvent lire ou écrire dans le tube (si le père ne l'a pas fermé).

  • La primitive de duplication de descripteur de fichier dup.
  • La primitive de création de tube: pipe.
  • La notion d'opération bloquante: écrire dans un tube sans lecteur. Lire dans un tube sans écrivain.
  • La notion d'interblocage (deadlock).

Application: Ècriture d'un programme simulant le fonctionnement de la commande shell 'ls | cat'.

TP (groupe B) 4h Accès aux port d'E/S sous UNIX (Fin du TP du 29/11/1999) et pour les groupes ayant terminé (2 sur 6) début du TP suivant: programmation de filtres.


Lundi 6/12/1999

Correction 2h Correction de l'interrogation du 29/11/1999
  • Retour sur les redirections des flots d'entrée et de sortie
  • Retour sur les tubes/pipe et l'enchaînement de commandes en shell
  • Recherche d'informations dans le manuel.
  • Ètude, à partir du manuel, des expressions régulières (rôle, syntaxe). Les ensembles de caractères ("charset": par exemple [a-z]), les multiplicités 1 ou plusieurs (+) et 0 ou plusieurs (*).
Moyenne de la classe: 11,6 / 20
Meilleure note: 17 / 20
Moins bonne note: 7 / 20
Absents: 1
Cours / TD 2h Introduction aux fichiers sous UNIX (1ère partie)

Ètudes des entrées/sorties vers des fichiers sous UNIX.

  • La notion de descripteur de fichier.
  • Les descripteurs standards:
    • 0: entrée standard
    • 1: sortie standard
    • 2: sortie d'erreur
  • Lecture et écriture dans un fichier préalablement ouvert: les primitives read et write.

Application aux E/S standard: réalisation d'un programme lisant des données sur l'entrée standard et les écrivant sur la sortie standard (similaire à la commande 'cat' sans aucun argument).

Ouverture, création et fermeture de fichier: les primitives open, close et creat.

  • Modes d'ouverture: lecture seule, écriture seule, lecture/écriture, ouverture pour ajout (append) ou pour écrasement (trunc).
  • Spécification des permissions lors de la création d'un fichier.

Le passage d'arguments sur la ligne de commande; le prototype du programme principal:

int main(int argc, char* argv[]);

Application: reprise du programme précédemment réalisé, mais avec passage du nom du fichier vers lequel doivent être écrites les données lues (similaire à la commande 'catÊnom_de_fichier').

TP (groupe A) 4h Accès aux port d'E/S sous UNIX (Fin du TP du 29/11/1999)

Programmation en C sous UNIX de la commande dont l'algorithme a été défini lors de la séance précédente.

  • Mise en oeuvre des primitives setuid, getuid, execvp et fork.
  • Mise en oeuvre du passage d'arguments sur la ligne de commande.
  • Gestion des erreurs (récupération et traitement des codes d'erreur renvoyés par les primitives).
  • Introduction au langage HTML


Jeudi 2/12/1999

TP (groupe B) 4h Le langage HTML / Recherche et exploitation d'information (Voir au TP du 29/11/1999)


Lundi 29/11/1999

TD 2h Ètude de la carte d'entrées/sorties analogiques et numériques CIO-DAS08-AOM (2ème partie)
  • Architecture
  • Mode d'emploi
  • Utilisation réelle
Note: La dernière partie (Utilisation réelle) est laissé à titre d'application personnelle pour les élèves.
Interrogation 2h Validation du cours sur UNIX / Lecture de documentation en anglais
  • Commandes UNIX de base.
  • Exploitation des pages de manuel sur des problèmes.
TP (groupe A) 4h Le langage HTML / Recherche et exploitation d'information
  • Présentation de l'environnement UNIX
  • L'éditeur 'vi'
  • Le langage HTML, balises de base (HTML, HEAD, TITLE, BODY, Hn, P, BR). Liens hyper-texte (balise A).
  • Recherche dans le manuel des commandes getuid, setuid, ioperm et execvp.
  • Droits d'un processus; recouvrement.


Lundi 22/11/1999

Correction 1h30 Correction de l'interrogation du 15/11/1999
  • Retour sur les connaissances transversales abordées lors du cours du 8/11/1999 (orbite d'un satellite, notions de géométrie de base sur les ellipses)
  • Précision de certains points de vocabulaire liés aux catégories de scientifiques utilisant les données provenant du satellite Poséidon 2 (différence entre un géographe, un géologue et un géophysicien; différence entre un océanographe et un océanologue).
  • Retour sur l'exercice de 8/11/1999 (calcul du temps de propagation d'un signal).
  • Renforcement des points non-aquis sur l'architecture générale du système Poséidon 2.
Moyenne de la classe: 10,8 / 20
Meilleure note: 16 / 20
Moins bonne note: 5 / 20
Absents: 2
Cours 1h30 Introduction à UNIX (2ème partie)
Suite du cours du 18/11/1999
  • Bref retour sur les principes de base d'UNIX. Ceux-ci semblent assimilés.
  • retour sur les commandes étudiées le 18/11/1999 sous la forme de questions-réponses permettant de résoudre les problèmes rencontrés par les étudiants. En particulier la différence entre accès direct à un périphérique (par un fichier du répertoire /dev) et montage d'un périphérique n'était par bien comprise.
  • Utilisation du manuel: la commande 'man'
  • Approfondissement sur les commandes de base 'ls', 'chmod', 'chgrp' et 'chown'.
  • La notion de 'métacaractère' (Les caractères 'joker' tels que l'étoile de Kleene *)
  • La notion de fichier d'E/S standard: stdIn, stdOut et stdErr
  • Les redirections >, >> et <
  • Utilisation des pipes | en shell
  • Lecture et exploitation du manuel (application à la commande 'ls')
TD 1h A partir des échantillons du manuel distribués le 18/11/1999, recherche des options d'une commande permettant de résoudre un problème particulier.

Application à la commande 'date':

  • Utilisation générale: 'date' sans options
  • Spécification du format de sortie pour obtenir un date au format JJ/MM/YYYY: date '+%d/%m/%Y'
  • Utilisation de la commande date pour générer un en-tête de la forme suivante:
        /*
            Dernière modification le JJ/MM/YYYY
        */
                    
    où la date est la date de dernière modification d'un fichier donné, et non la date courante
  • Utilisation d'un pipe et de la commande 'cat' pour insérer la date un début du fichier:
        date -r f.cc É | cat - f.cc > f.cc.tmp
        rm f.cc
        mv f.cc.tmp f.cc
                    
Note: Une interrogation sur le même principe (exploitation du manuel pour résoudre des problèmes en shell) est prévue pour le lundi 29/11/1999. Pour cette interrogation les pages de manuel distribuées le 18/11/1999 seront indispensables.
Ces documents seront les seuls autorisés.


Jeudi 18/11/1999

Cours 2h Introduction à UNIX (1ère partie)

Introduction générale à UNIX utilisateur: principes généraux, connexion à une machine, commandes de base

Note: ce cours suit un cours de 2h de présentation de l'historique d'UNIX présenté par Nicolas MICHEL.

  • UNIX, un système multi-tâche et multi-utilisateur
  • La notion d'utilisateur et de groupe.
  • La notion de super-utilisateur (root): rôles, responsabilités et droits.
  • La notion de fichier au sens d'UNIX:
    • présentation de deux types de fichiers: réguliers (un fichier de donnée) et fichiers spéciaux (fichier associé à un périphérique d'entrée/sortie):
    • Sous UNIX, un périphérique d'E/S (port série, lecteur de bande, ...) est accédé comme un fichier régulier (en suivant le cycle ouverture, lecture/écriture, fermeture).
    • Propriétaires (utilisateur propriétaire, groupe propriétaire) d'un fichier et droits d'accès (spécifique à chaque catégorie d'utilisateur: l'utilisateur propriétaire, un utilisateur membre du groupe propriétaire, ou un autre utilisateur).
  • Rappel sur le super-utilisateur qui a tous les droits sur tous les fichiers...
  • Présentation du système de fichier UNIX: arborescence, chemins d'accès absolu et relatif, le répertoire père '..', la notion de montage d'un périphérique (lecteur de disquette, CD-ROM, ...) sur une branche de l'arborescence.
  • Procédure de connexion à un terminal UNIX: ouverture de session (login), changement du mot de passe (commande passwd) et fin de session (commande exit).
  • Principes généraux de sécurité des systèmes: utilité d'un mot de passe, choix du mot de passe, responsabilité en cas d'intrusion du système par un pirate sous l'identité d'un utilisateur, confidentialité d'un mot du passe.
  • Introduction de commandes UNIX de base pour la navigation (cd, pwd), la manipulation de fichiers et répertoires (cp, mv, rm, mkdir, rmdir). Avertissement sur l'utilisation inconsidérée de 'rmÊ-r'.
  • Première approche de la manipulation des droits d'un fichier commandes chmod, chown et chgrp)
  • Présentation de commandes utilitaires: cat, echo.
Note: Ce cours, très dense, apporte de nombreuses connaissances nouvelles aux étudiants. Un second cours suivra dans lequel ces connaissances seront revues et approfondies. Le délai de quelques jours permettra aux élèves de faire le point et de déterminer quel(s) point(s) leur semble obscur(s) et mérite(nt) d'être précisé(s).


Lundi 15/11/1999

Intervention extérieure 45min Présentation d'une école d'ingénieur

Présentation de son école par un ancien étudiant de RASCOL (cursus, modalités d'inscription pour les élèves venant de BTS Informatique industrielle) Après questionnement, il apparaît que si moins d'un quart (5) des élèves souhaite intégrer une école d'ingénieur après le BTS, plus de la moitié (15) d'entre eux souhaitent poursuivre leurs études par une troisième année de spécialisation. Cependant, les spécialités et/ou écoles envisagées restent très vagues pour la plupart d'entre eux.

Correction 45min Correction de l'interrogation du 8/11/1999
  • Si dans le principe, les notions de classe générique et d'exception sont est bien assimilées, leur utilisation, et surtout leur syntaxe pose encore trop de problèmes à certains élèves.

    Ceci dénote chez certains moins un manque de compréhension qu'un manque de travail personnel ou d'investissement en TP, puisque même les constructions de base du langage C++ telles que celles des constructeurs et des destructeurs (déjà étudiées en 1ère année) ne sont pas encore maîtrisées.

  • Toujours de gros problèmes avec le vocabulaire spécifique de l'informatique.
  • Les élèves ne savent pas lire un sujet (en répondant uniquement aux questions dont la réponse était quelque part dans le sujet, il était possible d'avoir 10/20).
Moyenne de la classe: 7,3 / 20
Meilleure note: 12,5 / 20
Moins bonne note: 4 / 20
Absents: 0
Interrogation 30min Validation du cours du 8/11/1999
  • Connaissances transversales et vocabulaire: notions sur les satellites, exploitation des données de Poséidon 2 (Par qui? Pourquoi?), principe de fonctionnement de l'altimètre.
  • Exercice d'application: calcul du temps de propagation d'une télécommande du sol vers un satellite (cas de Poséidon 2 et cas d'un satellite géostationnaire).
  • Rôle d'un banc de test: simuler l'environnement de l'appareil à tester, et valider son fonctionnement opérationnel dans diverses situations.
TD 2h Ètude de la carte d'entrées/sorties analogiques et numériques CIO-DAS08-AOM (1ère partie)

A partir de la documentation constructeur (en anglais), les élèves ont commencé à compléter un document à trou (en français) reprenant la démarche que devrait suivre un technicien pour rechercher, lors de la prise en main d'un nouvelle carte, et de façon exhaustive, toutes les informations nécessaires à l'installation et à l'utilisation de cette carte:

  1. Compatibilité
  2. Précautions d'utilisation
  3. Configuration
  4. Installation
  5. Architecture
  6. Mode d'emploi
  7. Utilisation réelle
Note: L'étude ne porte que sur les E/S analogiques de la carte. Cette carte sera utilisée dans un TP à venir par J.C. JOULLIE, sous Windows 95. Elle sera également utilisée dans d'autres TP dans le cadre de l'initiation à la programmation sous UNIX.

Dans cette première partie seuls les points 1 à 4 ont été vu. Les Points restant le seront après la réalisation par les élèves du TP de M. JOULLIE.


Lundi 8/11/1999

Interrogation 1h Validation des cours sur les classes génériques et la gestion des exceptions
  • Vocabulaire spécifique. Principes généraux.
  • Utilisation d'une classe générique.
  • Définition d'une classe générique.
  • Implantation du mécanisme de gestion des exceptions du C++ dans cette classe générique.
Cours 2h Présentation du système industriel Poséidon 2

Apport de vocabulaire et de connaissances transversales concernant les satellites:

  • segment sol/segment spatial
  • plate-forme/charge utile
  • orbite d'un satellite
Présentation spécifique du système Poséidon 2:
  • Son but: mesurer le niveau de la mer (Rejet de l'idée reçue selon laquelle la 'mer est plate')
  • L'utilisation par les scientifiques (météorologues, géophysiciens, océanographes) des mesures.
  • Précision des mesures: nécessité d'une référence spatiale et temporelle, assurée par les balises DORIS.
Introduction/Rappel de quelques notions de physique appliquées au système:
  • Le géo&iulm;de
  • Propagation d'une onde électromagnétique
  • Principe de l'altimétrie RADAR.
TD 30min Calcul du délai T entre l'émission d'une onde par le satellite, et la réception de l'écho de celle-ci.

Calcul du δt devant être atteint pour effectuer la mesure, si l'on veut une précision de 2 cm.

Calcul du rapport entre ces deux grandeurs, ce qui donne un ordre d'idée de la précision devant être assurée par les mesures.

cours 30min Présentation du banc de test:
  • Altimètre (instrument à tester)
  • Calculateur de test
  • Baie de contrôle et de mesure
  • Simulateur d'écho
Dans le système, c'est à la baie de contrôle et de mesure (un système informatisé fonctionnant sous UNIX) que nous nous intéresseront. A la fin de la séquence, les élèves:
  • Auront les connaissances de base de la programmation sous UNIX.
  • Seront capables d'accéder à une carte de la machine sans passer par un driver fourni par le fabriquant.
  • Utiliser la communication interprocessus pour pouvoir piloter la carte à distance, ou fournir des mesures lors de requêtes (client/serveur).


Lundi 25/10/1999

cours / TP 3h La gestion des exceptions en C++

Introduction du principe de gestion des exceptions en C++. Nouvelle syntaxe

  • le bloc try
  • le bloc catch
  • le mot réservé throw
La notion de hiérarchie d'exception
  • identification des exceptions pouvant survenir
  • classification des exception dans une hiérarchie (de la plus générique à la plus particulière)

Implémentation d'une classe 'chaîne de caractère' simplifiée avec gestion des exceptions.

Exposé 1h Présentation de stage

Présentation de leur stage de 1ère année par deux élèves de la classe.


Lundi 18/10/1999

TP 3h Les classes génériques en C++ (2ème partie)

Fin du TP commencé le 11/10/1999.

Exposé 1h Présentation de stage

Présentation de leur stage de 1ère année par deux élèves de la classe.


Lundi 11/10/1999

TP / TD 1h30 Les classes génériques en C++ (1ère partie)

Implémentation d'une classe pour modéliser une liste simplement chaînée d'entiers.

Implémentation d'une classe pour modéliser une liste simplement chaînée de nombres à virgule flottante.

Identification des points communs.

Cours 1h Introduction de la notion de classe générique.
  • Utilité
  • Vocabulaire spécifique (template, patron, classe générique)
  • La notion d'instanciation d'une classe générique en classe concrète.
Description de la syntaxe:
  • le mot réservé template et son utilisation:
    template<class T>
  • Instanciation d'un patron: List<int>
TP 30min Mise en oeuvre des templates: écriture de la classe générique de liste.

Instanciation de cette classe à des fins de validation (comparaison entre les résultats obtenus à partir du patron, et à partir des classes spécifiques codées en dur au tout début du cours).

Utilisation du patron de liste dans un TP précédent réalisé par B. FENEUIL utilisant un tableau.

Ce TP sera terminé lors du cours prochain.

Exposé 1h Présentation de stage

Présentation de leur stage de 1ère année par deux élèves de la classe.


Lundi 4/10/1999

TD 3h Conventions de codage (2ème partie)

Rédaction avec les élèves, à partir d'un plan de convention de codages et du travail réalisé la semaine dernière, des conventions de codage finales à appliquer en TP.

Interrogation 1h Validation des cours sur les conventions de codage et la qualité
Questions de cours.
Exercice: rendre robuste une fonction donnée (comme fait en cours le 27/9/1999)


Lundi 27/09/1999

TD 2h Conventions de codage (1ère partie)

Deux demi-groupes en parallèle avec Nicolas MICHEL; Sous la forme d'un brainstorming:

A partir d'exemples de code source (C++, Java) et d'exemples de conventions de codages (venant de l'industrie, ou des archives du lycée), identification des différents types de fichiers impliqués dans le processus de programmation, analyse de leur structure et recherche des types d'identifiants pouvant se trouver dans les fichiers sources.

TD 2h Confrontation des résultats des deux demi-groupes. Débat sur les solutions apportées: avantages inconvénients. Cette action a permis aux élèves de prendre conscience des points suivants concernant le travail en équipe:
  • Il est nécessaire de suivre des règles communes pour d'une part éviter l'anarchie, d'autre part faciliter la communication entre les personnes.
  • Il est difficile d'obtenir l'unanimité, à moins de prendre le plus petit dénominateur commun. A un moment ou un autre, quelqu'un (chef de projet, professeur) doit imposer une solution.
  • Lorsqu'une solution est adoptée, tous les membres d'un projet doivent la suivre, même si cette solution n'était pas la leur au départ.


Lundi 13/9/1999

Cours 2h Les normes ISO9000 et les outils d'assurance de la qualité. (En collaboration avec Nicolas MICHEL)
TD 2h Introduction à la qualité logicielle: la robustesse du code

A partir d'un exemple simple en C (une fonction de copie de chaîne de caractères similaire à la fonction standard strcpy), recherche de tous les problèmes pouvant survenir:

  • Dépassements de capacité
  • Problèmes d'allocation mémoire
  • Paramètres invalides
  • Bug Recherche avec les élèves de techniques permettant soit d'éviter, soit de signaler ces exceptions:
    • Validation des arguments
    • Assertions
    • Utilisation de codes de retour
    • Tests

  • Lundi 06/9/1999

    Présentation 4H Prise de contact avec les élèves


    Cahier de Texte, © 1999-2000 Sylvain LEROUX
    1