UE Langage et programmation

1 September 2013

Objectif

Au niveau 1, l’objectif de ce cours est de :

  • connaître un langage de programmation impératif multi-usage (par exemple le langage C) ;
  • pouvoir s’adapter facilement à d’autres langages équivalents ;
  • savoir programmer efficacement les principaux algorithmes “classiques” ;
  • connaître les outils et méthodes élémentaires d’aide au développement et à la validation de programmes.

Au niveau 2, l’objectif de ce ce cours est d’introduire à aux concepts fondamentaux de l’informatique que sont langages et automates.

Volume horaire par certificat

Heures encadrées :

  • 10 h cours
  • 10 h travaux dirigés

Heures non-encadrées :

  • 10 h travaux pratiques non encadrés en salle de TP (voir l’organisation type de la journée)
  • 20 h travail personnel

Niveau 1 : Langage et programmation (certificat DU-ISN-C1.3)

Responsable Anne Rasse

Intervenants : Anne Rasse et Guillaume Huard

Page du cours

Contenu

  • Notions fondamentales des langages de programmation impératifs
    • Un exemple : le langage C
    • notion de syntaxe et de sémantique;
    • structure d’un programme (module, sous-programme, portée, durée de vie);
    • état et transformation d’états, structures de contrôle;
    • principaux types de données, allocation dynamique;
    • interface avec un environnement utilisateur (fichiers, ligne de commande, interface graphique).
  • Implémentation de structures de données et algorithmes classiques
    • encapsulation de données, notion de type abstrait;
    • implémentation des types de données usuels (séquence, pile, file, arbre, graphe, etc).
    • mise en oeuvre d’algorithmes standards (tris, parcours de graphe, algorithmes géométriques, etc.)
  • Techniques et outils élémentaires d’aide au développement de programmes}
    • fonctionnalités offertes par le système d’exploitation (gestion de fichiers, langage de commande);
    • compilation : compilation séparée, Makefile;
    • mise au point : technique et outils;
    • validation : test et instrumentation de programmes

Niveau 2 : Langage et compilation (certificat DU-ISN-C2.3)

Responsable Fabienne Carrier

Page du cours

Contenu

Ce cours doit permettre d’acquérir

-les connaissances en terme de savoirs (fondamentaux et appliqués) - Langage : lexicographie, syntaxe, sémantique - Description et reconnaissance de langages - Compilation : vérifications syntaxiques et sémantiques, génération de code, optimisation - les savoir-faire - Description de langages simples a l’aide de grammaires régulières ou hors-contexte - Utilisation de la sémantique opérationnelle pour décrire les aspects de sémantique statique et dynamique d’un langage - Programmation d’un reconnaisseur syntaxique

  • les connaissances/outils pédagogiques maîtrisés
    • Grammaires, programmation d’un reconnaisseur en utilisant un generateur d’analyse LL, realisation d’un interpreteur

Bibliographie

  • Chapitres 3 de Introduction à la science informatique : Pour les enseignants de la discipline en lycée informatique, Gilles Dowek (coordination de l’ouvrage collectif) Collection Repères pour agir, CRDP Académie de Paris. 2011
  • Autres références (non exhaustif)
    • Gilles Dowek and Jean-Jacques Lévy. Introduction à la théorie des langages de programmation. Ecole Polytechnique, 2006.
    • Pierre Wolper. Introduction à la calculabilité : Cours et exercices corrigés. Dunod, 3e edition, 2006.
    • Alfred Aho, Ravi Sethi, and Jeffrey Ullman. Compilateurs : principes techniques et outils, cours et exercices. Dunod, 2000.
  • Quelques références sur des langages de programmation
    • Bernard Cassagne. Introduction au langage C. Livre électronique, 1998.
    • K. N. King. C Programming : A Modern Approach. W. W. Norton & Company, 2e edition, 2008.
    • Bruce Eckel. Thinking in Java. Prentice Hall, 2e edition, 2006.
    • Patrick Niemeyer and Jonathan Knudsen. Introduction à Java. O’Reilly, 2002.