Bienvenue, Visiteur! Inscription RSS

Informatique Académique - Sétif

Vendredi, 19 Avr 2024

Semestre 4
CMTD
TP
Crédits
UEI10 (Fondamentale) 16
Algorithmique et Structures de données 2
1h301h301h30
5
Bases de Données
3h00
1h30
1h30
6
Systèmes d’exploitation 1
1h301h301h30
5
UEI11 (Fondamentale)12
Théorie des langages
1h30
1h30

4
Programmation linéaire
1h30
1h30

4
Génie Logiciel et Programmation Orientée Objet
1h301h30
4
UEI12 (Méthodologique)2
Anglais 4
1h30


2

CONTENUS PEDAGOGIQUES :

UEI10 (Fondamentale) 15 crédits
Bases de données (6 crédits)
Objectif:
Comprendre les objectifs, les architectures et les langages de bases de données. Maîtriser les fondements théoriques et les algorithmes de base des systèmes de gestion de bases de données, depuis la conception de base de données jusqu'au traitement de requêtes et la gestion de transactions. Le module s'appuie sur le modèle relationnel et les langages associés, en particulier SQL.
Programme :
    • Introduction: besoin de SGBD dans les applications, objectifs des SGBD, modélisation des données et niveaux d'abstraction, modélisation Entité Association.
    • Modèle relationnel: les concepts (schéma de relation, attributs, domaine, nuplet), l'algèbre relationnelle (opérateurs de base et opérateurs dérivés), passage d'un modèle entité-association à un modèle relationnel.
    • Introduction à la logique: notions de système formel, mécanisme de déduction et théorèmes, calcul propositionnel.
    • Logique pour bases de données relationnelles : calcul des prédicats, calcul relationnel à variable n-uplet, calcul relationnel à variable domaine.
    • Interrogation d'une base de données en SQL: requêtes simples, requêtes imbriquées, agrégats et groupement.
    • Définition et modification d'une base de données en SQL: création des tables insertion, suppression et mise à jour des données. Contraintes d'intégrité : typologie, vérification, définition en SQL 2.
    • Triggers: définition (événement, condition et action), modèle d'exécution, expression en QL3. Vues : définition, utilisation pour l'interrogation, mise à jour au travers des vues, matérialisation des vues et OLAP.
    • Conception et optimisation de schéma relationnel : notion de redondance, dépendance fonctionnelle, déduction (axiome d'Armstrong) et couverture minimale, formes normales.
    • Evaluation et optimisation de requête : arbre algébrique, optimisation logique par réécriture, opérateurs physiques et modèle de coût, choix du meilleur plan d'exécution.
    • Transactions : définition, propriétés (Atomicité, Cohérence, Isolation, Durabilité), résistance aux pannes (journalisation, validation, reprise à froid et à chaud.
    • Contrôle de concurrence : notion de sérialisabilité, verrouillage deux phases, interblocages, ordonnancement par estampillage.
Références bibliographiques :
    • Georges Gardarin. Bases de données: objet et relationnel. Eyrolles, 1999.
    • Raghu Ramakrishnan, Johannes Gehrke. Database Management Systems. 2nd edition. Mc Graw-Hill,1999.
    • Tamer Özsu, Patrick Valduriez. Principles of Distributed Database Systems. 2nd edition, Prentice Hall, 1999.
Algorithmique et Structures de données 2 (5 crédits)
Objectif:
L’orientation souhaitée pour l’associer à ce cours est: " présenter les mécanismes offerts par les langages de programmation et identifier leur usage dans le contexte d'un développement modulaire." Les concepts de base présentés iront jusqu'à " l'orée de l'univers objet " et seront illustrés avec pascal (principalement) et C (en particulier sur les aspects interfaçage). Il est souhaité également de présenter aux étudiants un environnement de production dont la philosophie, orientée " production, " s'inspire de ce que l'on peut trouver dans le monde industriel. Afin de détailler les notions que l'on trouve dans les langages de programmation, il sera utilisé en TD et en TP Pascal (choisi pour le premier semestre de la licence). Des comparaisons seront faites avec le langage C (choisi pour le second semestre de la licence). Outre l'écriture de programmes en Pascal, il sera demandé aux étudiants de lire et comprendre des services écrits en C.
Programme :
  • Organisation du cours, Description de l'environnement de travail. rappel des notions de base(types simples, structure d'un programme etc.)
  • Rappel des notions de base. Ecriture de programmes simples.
  • Structuration d’un programme. Procédures et fonctions. Recursivité. In-lining.
  • Types tableaux et types articles ("record"). Notion de paquetage.
  • Notion de types abstraits. Protection avec les types (privés, public, etc.). Contrôle de la visibilité en Ada et C.
  • Pointeurs et gestion de la mémoire dynamique (tas). Structures de données recursives.
  • Echappement et gestion des erreurs par exception.
  • Truc et astuces pour débugger un programme.
  • Généricité.
  • Vers les mécanismes objets. Présentation de la notion de fichiers.
  • Notions avancées de structuration. Conclusions sur le cours.
Références bibliographiques :
  • "Programmer en Pascal" de (Addison Wesley).
  • "Le langage C - norme ANSI", B.W. Kerninghan et D. M. Ritchie (Dunod).
  • "Méthodologie de la programmation en langage C", J-P Braquelaire (Masson).

Systèmes d’exploitation 1 (5 crédits)

Objectif:

L'objectif de ce module est d'étudier les principes, algorithmes et organisations des systèmes informatiques. Le but est de dégager les concepts communs à la base des systèmes modernes tel que le temps partagé, l'ordonnancement, la gestion de la mémoire et des disques. Des exemples d'implantation notamment dans UNIX seront évoqués.
Nous voulons insister sur l'interaction des mécanismes de base de façon à fournir aux étudiants une vision globale du fonctionnement du système. Pour faciliter l'assimilation des principes de base des systèmes, il paraît important d'illustrer les concepts par l'étude d'un système réel (en l'occurrence UNIX). De plus, il est indispensable que les étudiants puissent mettre en oeuvre les concepts du cours dans des TP. Une part importante des séances de TD sera consacrée à des TP (près de la moitié).

Programme :

  • Historique. Les principales composantes d'un système. Rappels sur l'architecture d'une machine. Introduction à UNIX et Windows NT.
  • Structure et organisation des systèmes (fichier, tâche, mémoire, entrées/sorties).
  • Modèles de multi-programmation. Gestion du temps (quantum et tics).
  • Interruption horloge et ordonnancement (préemptif et non-préemptif).
  • Processus Unix. Etat d'un processus. API. Signaux. Notion de thread.
  • Synchronisation 1 : Synchronisation par variables partagées, Sémaphores.
  • Synchronisation 2 : Schémas classiques. Interblocage. Exemple de synchronisation dans le système Unix (IPC).
  • Mémoire 1 : mémoire linéaire, segmentée, paginée.
  • Mémoire 2 : Remplacement de pages. Pagination multi-niveaux. Exemples Pentium – PowerPC.
  • Entrées/sorties disque (ordonnancement de requêtes). Système de Fichiers 1.
  • Système de gestion de fichiers 2 (ex Unix, NTFS).
  • API des systèmes de fichiers Unix. Introduction à la communication inter-processus : tube.

Références bibliographiques :

  • A. Silberschatz, P. Galvin Principes des Systèmes d'Exploitation, Addison-Welsly, 1994.
  • A. Tanenbaum Systèmes d'Exploitation : Systèmes Centralisés, Systèmes Distribués Prentice-Hall 1994.
  • G. Nutt Les Systèmes Ouverts, InterEdition 1995.

UEI11 (Fondamentale) 12 crédits

Théorie des langages (4 crédits)

  • Les langages:
  • Introduction et rappels mathématiques.
  • Opérations sur les langages.
  • Représentation des langages : grammaires et automates.
  • Hiérarchie de Chomsky.
  • Les automates d’états finis:
  • Automates déterministes et minimisation.
  • Automates indéterministes et passage a un automate déterministe.
  • Les langages réguliers:
  • Propriétés des langages réguliers.
  • Expression régulières.
  • Passage des expression régulières aux automates et réciproquement.
  • Grammaire et automates (grammaire de Kleene).
  • Les langages algébriques:
  • Propriétés des langages algébriques.
  • Les automates à pile.
  • Les langages à contexte lié:
  • Définition et propriétés.
  • Les automates à bornes linéaires.
  • Les machines de Turing:
  • Notion de machine de Turing.
  • Langages de type 0 et machine de Turing.
  • Introduction à la calculabilité.

Programmation linéaire (4 crédits)

Objectifs (compétences visées):

Ce cours dresse un panorama des techniques de modélisation utilisées en programmation linéaire, il permet le développement d’applications industrielles en optimisation.

Programme :

  • Rappels Mathématiques (Algèbre linéaire):
  • Espace vectoriel.
  • Dimension, base.
  • Matrice, déterminant d’une matrice, i,nverse d’une matrice …
  • Introduction et propriétés de la programmation linéaire:
  • Forme générale d’un programme linéaire, forme canonique, standard et mixte.
  • Résolution graphique, notion de polyèdre.
  • Résolution analytique.
  • Méthode du simplexe:
  • Introduction de la méthode, algorithme du simplexe, tableau du simplexe.
  • Méthodes particulières : méthode des pénalités, méthode des deux phases.
  • Forme révisée du simplexe.
  • Dualité:
  • Introduction, règles de passage du primal au dual.
  • Algorithme dual du simplexe.
  • Problème du transport:
  • Introduction du problème, graphe associé au tableau du transport.
  • Algorithme du transport.
  • Algorithme dual du transport.

Génie Logiciel et Programmation Orientée Objet (4 crédits)

  • Eléments de Génie logiciel : Cycle de vie d'un logiciel : analyse, modélisation, développement, test, maintenance.
  • Modèle Orienté Objets : Introduction au paradigme objet. Classes, objets, héritage, encapsulation.
  • Méthodes, envoi de message, attachement procédural.
  • Polymorphisme, résolution tardive des noms.
  • Programmation : Langage type JAVA. Machine virtuelle. Applets et graphique.
  • Threads et synchronisation.
  • Notions de C++.
  • L'analyse orientée objet et le modèle objet.
  • Réalisation d'un projet.

La source: Commission Nationale Mathématiques Informatique.