L'objectif de ce cours est d'améliorer les capacités de programmation des étudiants en étudiant certains algorithmes courants, leurs implémentations et leurs applications aux certaines problèmes de calcul.
Revue de programmation (avec Python): variables, conditions, boucles, fonctions
Structures de données: liste, array multidimensionnel, arbre
Algorithmes: recherche, tri, fonctions d'agrégation
Recursion: calcul numérique, traversée d'arbre (inorder / preorder / postorder)
Analyse algorithmique: classes de complexité temps / espace
-étant donnée un problème, les étudiants seront capables d'identifier les composants logiques du problème, leurs interdépendances et les algorithmes qui peuvent être utilisés pour résoudre chacun de ces composants.
-étant donnée un algorithme, les étudiants seront capables de comparer leurs performances et leurs caractéristiques avec d'autres algorithmes de la même classe.
-étant donnée un code source, les étudiants seront capables d'identifier les structures de données et les algorithmes implémentés dans le code source donné.
lectures théoriques, applications pratiques
Algorithmique - 3ème édition - Cours avec 957 exercices et 158 problèmes - Cormen, Leiserson, Riverst, Stein
Problem Solving with Algorithms and Data Structures Using Python - Bradley N Miller and David L. Ranum
The Art of Computer Programming - Donald Knuth
Python - How to Program - Deitel
Data Structures and Algorithms Using Python - Rance D. Necaise
Data Structures and Algorithms with Object-Oriented Design Patterns in Python - Bruno R.Preiss
| Semaine | Intitulés des Sujets |
|---|---|
| 1 | Introduction aux algorithmes, implementation de la division euclidienne |
| 2 | Complexité temporelle: Le plus grand et le plus petit diviseur |
| 3 | Recursion |
| 4 | Structures de Data I |
| 5 | Structures de Data II |
| 6 | Structures de Data III |
| 7 | Algorithmes de Tri: Complexité et applications I |
| 8 | Partiel |
| 9 | Algorithmes de Tri: Complexité et application II |
| 10 | Types de Data Abstrait |
| 11 | Arbres |
| 12 | Algorithmes numériques: nombres aleatoires, racine carré |
| 13 | Recherche: recherche simple, recherche binaire, recherche récursive |
| 14 | Classes de complexité, comparaison d'algorithmes |
| Activités | Numéro | Contribution |
|---|---|---|
| Contribution du contrôle continu à la note finale | 1 | 50 |
| Contribution de l'examen final à la note finale | 1 | 50 |
| Total | 2 | 100 |
| Activités | Numéro | Contribution |
|---|---|---|
| Devoir | 0 | 0 |
| Présentation | 0 | 0 |
| Examen partiel (temps de préparation inclu) | 1 | 100 |
| Projet | 0 | 0 |
| Travail de laboratoire | 0 | 0 |
| Autres travaux pratiques | 0 | 0 |
| Quiz | 0 | 0 |
| Devoir/projet de session | 0 | 0 |
| Portefeuille | 0 | 0 |
| Rapport | 0 | 0 |
| Journal d'apprentissage | 0 | 0 |
| Mémoire/projet de fin d'études | 0 | 0 |
| Séminaire | 0 | 0 |
| Autre | 0 | 0 |
| Make-up | 0 | 0 |
| Total | 1 | 100 |
| No | Objectifs Pédagogiques du Programme | Contribiton | ||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 1 | comprend les principes de la méthode hypothético-déductive; s'est interrogé systématiquement sur la pertinence et la justesse des énoncés mathématique qu'il a rencontré ou produit; | X | ||||
| 2 | sait énoncer et utiliser judicieusement les concepts et les résultats des mathématiques de base; | X | ||||
| 3 | maîtrise les techniques de calcul et les algorithmes courants; possède une bonne intelligence de calcul pour les mettre en œuvre; est capable d'identifier les outils pertinents, parmi ceux qu'il connaît, pour la résolution d'un problème, et est capable de juger s’il ne possède pas ces outils; | X | ||||
| 4 | est capable d'exprimer de manière organisée, tant à l'écrit qu'à l'oral, ses idées mathématiques; | X | ||||
| 5 | a réalisé les relations essentielles qui lient entre eux ces concepts et résultats; est capable de passer de l'un à l'autre de divers mode de représentation des objets mathématiques (dessins, formules, énoncés précis, heuristiques, collection d'exemples,...); | X | ||||
| 6 | a poursuivi, en autonomie, une stratégie d'apprentissage guidée; s'est engagé dans des stratégies de résolution d'un problème complexe; | X | ||||
| 7 | a les bases théoriques et pratiques suffisantes en informatique pour pouvoir poursuivre l'apprentissage d'un langage de programmation; | X | ||||
| 8 | s'est interrogé sur la pertinence de la modélisation mathématique et l'usage des outils mathématiques dans les sciences naturelles et dans le monde professionnel; a été sensibilisé à l'évolution historique des concepts mathématiques; | X | ||||
| 9 | a eu l'opportunité de choisir librement certains de ses cours (de mathématiques ou d'autres disciplines) et a, à l'occasion, appris à prendre ses responsabilités et à organiser son projet éducatif par lui-même; | X | ||||
| 10 | a une maîtrise de la langue française et d'une autre langue étrangère suffisante pour pouvoir poursuivre des études ou travailler à l'étranger. | X | ||||
| Activités | Nombre | Durée | Charge totale de Travail |
|---|---|---|---|
| Durée du cours | 14 | 3 | 42 |
| Préparation pour le cours | 14 | 1 | 14 |
| Devoir | 0 | 0 | 0 |
| Présentation | 0 | 0 | 0 |
| Examen partiel (temps de préparation inclu) | 1 | 10 | 10 |
| Projet | 0 | 0 | 0 |
| Laboratoire | 0 | 0 | 0 |
| Autres travaux pratiques | 0 | 0 | 0 |
| Examen final (temps de préparation inclu) | 1 | 10 | 10 |
| Quiz | 0 | 0 | 0 |
| Devoir/projet de session | 0 | 0 | 0 |
| Portefeuille | 0 | 0 | 0 |
| Rapport | 0 | 0 | 0 |
| Journal d'apprentissage | 0 | 0 | 0 |
| Mémoire/projet de fin d'études | 0 | 0 | 0 |
| Séminaire | 0 | 0 | 0 |
| Autre | 0 | 0 | 0 |
| baclé | 0 | 0 | 0 |
| Yil | 0 | 0 | 0 |
| Yil | 0 | 0 | 0 |
| Yil | 0 | 0 | 0 |
| Charge totale de Travail | 76 | ||
| Charge totale de Travail / 25 | 3.04 | ||
| Crédits ECTS | 3 | ||