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).
 
- 
			
			SujetsSupportsNotions clés
 - 
				CM1Premiers 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é.
 - 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,
 
 
 - 
							Langage :
							
 - 
				CI1Premiers pas (2/2)
- Kahoot!
 - Introduction TP1
 - TP
 
- 
							Langage : 
							
- mise en œuvre des notions présentées en CM1.
 
 - 
							Algorithmique :
							
- plus grand commun diviseur,
 - tri à bulle,
 - tri par insertion.
 - tri fusion,
 - tri rapide.
 
 
 - 
				CI2Structures de données
- Kahoot!
 - Structures de données
 - Introduction TP2
 - TP
 - CC 1
 
- 
							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.
 
 
 - 
				CI3Méthodes d'instance
- Kahoot!
 - Méthodes d'instance
 - Les packages
 - TP
 
- 
							Langage : 
							
- les méthodes d'instance,
 - les packages.
 
 - 
							Algorithmique : 
							
- structure d'arbre
 - l'arbre binaire de recherche.
 - parcours d'arbre
 
 
 - 
				CI4Programmation objet
- Kahoot!
 - Programmation orientée objet
 - TP
 - CC 2
 
- 
							Langage : 
							
- notion de programmation orientée objet,
 - le constructeur,
 - la visibilité.
 
 - 
							Algorithmique : 
							
- graphe, parcours en profondeur, plus court chemin.
 - tas binaire
 
 
 - 
				CI5Héritage
- Kahoot!
 - Héritage
 - Exemple du cours
 - TP
 
- 
							Langage : 
							
- héritage, interface, classes abstraites,
 - sur et sous-typage,
 
 - 
							Algorithmique : 
							
- arbre de syntaxe abstrait,
 - principes d'un interpréteur.
 - arbre couvrant minimal
 
 
 - 
				CI6Classes génériques
- Kahoot!
 - Classes génériques
 - TP
 - CC 3
 
- 
							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
 
 
 - 
				CI7Exceptions
- 
							Langage : 
							
- les exceptions,
 - les bibliothèques 
java.util,java.ioetjava.net. 
 - 
							Algorithmique : 
							
- principes d'un serveur Web.
 
 
 - 
							Langage : 
							
 - 
				CI8Classes anonymes
- Kahoot!
 - Classes anonymes
 - TP
 
- 
							Langage : 
							
- les classes anonymes,
 - la bibliothèque 
JavaFX. 
 - 
							Algorithmique :
							
- Principes d'un petit jeu vidéo.
 
 
 - 
				CI9Révisions
- TP
 - CC 4
 
- 
							Algorithmique :
							
- Modélisation d'IA
 - Minimax/Élagage AlphaBeta
 - A*
 - MCTS
 
 
 
		CM : Cours Magistral       CI : Cours Intégré