FICHE DESCRIPTIVE DU COURS · MAT231

Algorithmes et Programmation Avancée I

Obligatoire · Français Ouvert aux étudiants d'échange Erasmus+
ECTS
3
Crédit local
3
Cours Théoriques + Travaux Dirigés (TD) + Travaux Pratiques (TP)
1 + 1 + 1
Niveau du Cours
Licence
Cours Pré-Requis
-
Semestre du Cours
3

Contenus

Objectif du Cours

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.

Contenu du Cours

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

Acquis d'Apprentissage du Cours

-é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é.

Méthodes d'Enseignement

lectures théoriques, applications pratiques

Ressources

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

Intitulés des Sujets

Intitulés des Sujets Théoriques
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

Système d'évalution

Contribution à la Note Finale
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
Contrôle Continu
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

Evalution de la Compétence

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

Tableau de la Charge de Travail

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