• Cours Base de Données :  Architecture et objectifs des SGBD, Fichiers, hachage et indexation,  Modèle relationnel, Création et manipulation d’une base de données, Langage SQL, interrogation et mise à jour, Intégrité et confidentialité des données, Optimisation élémentaire et vues.

  • Algorithmique, Programmation, Fondement de l’informatique : Bases d’algorithmique et de programmation, explication du fonctionnement logique d’un ordinateur. Description des structures de données de base et des opérations élémentaires associées utilisées pour spécifier un algorithme afin de pouvoir donner leur représentation dans les langages de programmation.

  • Langage C : Mise en séquence, boucles, embranchements, Types et opérateurs de base, Structuration de code : appel de fonction, passage par valeur, Appels généraux, Pointeurs et listes chaînées, Algorithmes de tris, Structures de données complexes (liste, pile, file, arbre), fonctions récursives (déclaration et utilisation), programmation (structurée sur plusieurs fichiers, récursivité, paradigme de programmation fonctionnelle, utilisation de pointeurs), réalisation d’un projet.

  • Langage C++ : Notion d’objet, objets simples de C++ et leurs propriétés, instructions de composition : séquence, conditionnelle, itération, notion d’invariant, sous-programmes et modularité, composants logiciels, « boîtes noires », pré et post-conditions, structures de données séquentielles, tableaux, …

  • Langage JAVA : Notion d’objet, objets simples de JAVA et leurs propriétés, instructions de composition : séquence, conditionnelle, itération, notion d’invariant, sous-programmes et modularité, composants logiciels, « boîtes noires », pré et post-conditions, structures de données séquentielles, tableaux, algorithmes de recherche, d’ajout, de retrait de valeurs, listes chaînées : simples, doubles, circulaires, avec sentinelle, pile, file, recherche, ajout, retrait, programmation fonctionnelle des listes, arbres, arbres binaires de recherche : ajout, retrait, complexité, équilibrage, programmation récursive, parcours d’arbres, tables.

  • Mathematica : Concepts de base : langage de description (algorithme), type, variable, expression, affectation, élément de logique, instruction conditionnelle, instruction répétitive, structure de données, structure de programmes, chaîne de caractères, tableau.

  • Langage Pascal : Langage algorithmique : type de base, variable, expression, affectation, élément de logique, test (instruction conditionnelle), boucle, structure de données (tableau), structure de programmes, chaîne de caractères.

  • Algorithmique II :Graphes, parcours de graphes : Eulérien et Hamiltonien, algorithmes de plus courts chemins (Dijkstra, Bellman), définitions et propriétés d’arbres, définitions de base de théorie des graphes, arbres couvrants de poids minimum : Prim, Kruskal, recherche de plus courts chemins dans un graphe : Dijkstra, Ford, Bellman, Floyd, réseaux de flots : flots maximums, coupes minimales, flots de coût minimal : Algorithme de Ford-Fulkerson, méthode Diviser pour Régner et méthode gloutonne, introduction à la programmation dynamique classique et stochastique.

    .

  • Systèmes d’Exploitation – systèmes centralisés – Linux : Bases essentielles sur les systèmes d’exploitation (généralités, complexité, fiabilité, maintenabilité, modularité, portabilité, structure en couches) et mécanismes fondamentaux des systèmes d’exploitation centralisés, répartis et temps réel. Développement d’applications multiprocessus en utilisant des outils de communication et de synchronisation et des primitives ”noyau” (processus, fichiers, mémoire virtuelle, gestion des E/S).
  • Unix, Développement Web et Base de Données : Unix (scripts, processus), Web (HTML, PHP, CSS) et BD (Mysql, requêtes SQL)

  • Mise à niveau UNIX : Mise à niveau en système d ’exploitation UNIX, Programmation de scripts.
  • Processus stochastiques : projet de simulation d’une gare de péage à l’aide d’un langage de simulation de processus stochastiques afin de mettre en pratique le cours qui permet de modéliser et de prévoir l’évolution de phénomènes aléatoires c’est-à-dire soumis au hasard (applications aux phénomènes d’attente, à la fiabilité et aux réseaux).

  • Stages : Les stages correspondent à un travail d’ingénieur en informatique débutant, dans une entreprise ou un établissement public et doivent comporter une étude et une réalisation. Le tuteur organise le suivi du stage, la lecture du rapport et la soutenance.

  • Méta-Heuristiques et Méthodes Exactes : Présentation de la méthode du recuit simulé.

  • Projet Algorithmique :  Projet d’algorithmique mettant en œuvre les connaissances acquises en algorithmique de base – concevoir et implémenter un algorithme pour traiter un problème complexe.

  • Projet de Programmation Orienté Objet :  Projet mettant en œuvre les connaissances acquises en programmation objet – concevoir et implémenter un algorithme pour traiter un problème complexe.

  • Projet de programmation parallèle numérique : Programmation d’algorithmes numérique parallèle (par exemple, résolution de système linéaire par la méthode GMRES, par la factorisation LU, par la méthode Richardson, calcul des éléments propres d’une matrice par la méthode QR, par les méthodes ERAM et MERAM). Lors de ce projet une importance particulière est portée a la compréhension physique du phénomène modélisé.
  • Initiation, Word, Excel, Access, Internet : Architecture ,Système d’exploitation, Réseau : notions de base (serveur, client, connexion, mot de passe, mappage) ; Traitement de texte : mise en forme de texte (paragraphe, style, police, mise en page), publipostage, insertion d’objet (dessin, équation, tableur). Tableur : base (classeur, feuille, mise en forme), formule, macro. BD : relation, champ, formulaire, formule, macros; Messagerie : composition de message, paramétrage, lecture et envoi. Navigation : recherche sur internet, fonctionnement d’un site, Sécurité : base (virus, cheval de troie, …).