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é
	
 
