CSC 3101 – Algorithmique et langage de programmation

Portail informatique

Présentation

Le module CSC 3101 – Algorithmique et langage de programmation est un module de première année d'école d'ingénieur (troisième année après le bac) dispensé à Télécom SudParis. À l'issue du module, un étudiant est capable de programmer seul une petite application Java à partir d'une description détaillée de son architecture et de son fonctionnement. En détail, à la fin du module, un étudiant est capable de :
  • transcrire en Java, en utilisant la programmation orientée objet, un algorithme à partir d'une description informelle,
  • mettre en œuvre et utiliser des structures de données classiques (liste, tableau, table de hachage, graphe) en prenant en compte les aspects performances,
  • mettre en œuvre des algorithmes classiques (tri, recherche, parcours de graphe, plus court chemin),
  • concevoir (de façon informelle) et mettre en œuvre en Java une application simple mais réaliste (par exemple un petit serveur Web ou un petit jeu vidéo).

  • Sujets
    Supports
    Notions clés
  • CM1
    Premiers pas (1/2)
    • Langage :
      • conception, compilation et exécution d’un programme Java,
      • types de base, opérateurs et structures algorithmiques,
      • déclaration d'une variable,
      • manipulation des tableaux,
      • notion de référence,
      • complexité.
  • CI1
    Premiers pas (2/2)
    • Langage :
      • mise en œuvre des notions présentées en CM1.
    • Algorithmique :
      • plus grand commun diviseur,
      • tri à bulle,
      • tri par insertion.
  • CI2
    Méthodes de classe
    • Langage :
      • définition et appel de méthodes de classe,
      • notion de cadre d'appel et de variables locales,
      • passage par valeur, passage par référence,
    • Algorithmique :
      • tri fusion,
      • tri rapide.
  • CI3
    Structures de données
    • Langage :
      • les structures de données en Java,
      • notion de classe, d'objet, d'instance et de référence,
      • tableaux de structures,
      • appels de méthodes de classe et passage par référence,
    • Algorithmique :
      • le tableau extensible,
      • la liste chaînée.
  • CI4
    Méthodes d'instance
    • Langage :
      • les méthodes d'instance,
      • les packages.
    • Algorithmique :
      • structure d'arbre
      • l'arbre binaire de recherche.
      • parcours d'arbre
  • CI5
    Programmation objet
    • Langage :
      • notion de programmation orientée objet,
      • le constructeur,
      • la visibilité.
    • Algorithmique :
      • graphe, parcours en profondeur, plus court chemin.
      • tas binaire
  • CI6
    Héritage
    • Langage :
      • héritage, interface, classes abstraites,
      • sur et sous-typage,
    • Algorithmique :
      • arbre de syntaxe abstrait,
      • principes d'un interpréteur.
      • arbre couvrant minimal
  • CI7
    Classes génériques
    • Langage :
      • les classes génériques,
    • Algorithmique :
      • la liste doublement chaînée circulaire,
      • la table de hachage.
      • les ensembles
      • les files et les piles
      • moteur de recherche
  • CI8
    Exceptions
    • Langage :
      • les exceptions,
      • les bibliothèques java.util, java.io et java.net.
    • Algorithmique :
      • principes d'un serveur Web.
  • CI9
    Classes anonymes
    • Langage :
      • les classes anonymes,
      • la bibliothèque JavaFX.
    • Algorithmique :
      • Modélisation d'IA
      • Minimax/Élagage AlphaBeta
      • A*
      • MCTS
      • principes d'un petit jeu vidéo.
CM : Cours Magistral       CI : Cours Intégré