0% ont trouvé ce document utile (0 vote)
32 vues14 pages

Descriptif Algorithmique Structures Données

Transféré par

dkiamsmatangala822
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
32 vues14 pages

Descriptif Algorithmique Structures Données

Transféré par

dkiamsmatangala822
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Descripteur du cours

Unité de rattachement de l’UE Section des Sciences Exactes


(Section et Département) :
Département d’Informatique
Code de l’UE : INF202

Titre de l’UE : Algorithmique et structures de données


Nombre de crédits : 6

Éléments constitutifs (EC) de


l’UE :
Semestre S3

Préalables : INF104

Objectif(s) de l’UE : Cette UE vise la maîtrise d’une variété de structures de données classiques
existantes et des principaux algorithmes sur celles-ci.
Contenu : Initiation à l'algorithmique et aux bases de la programmation, Structures de
données (liste, pile, file, tableau, arbre, table de hachage, graphe), Analyse
de performance des algorithmes, Techniques de base de conception d'algo-
rithmes (récursivité, algorithmes gloutons, etc.), Algorithmes de recherche et
d'extraction de l'information, Algorithmes de tri classiques, Introduction aux
algorithmes parallèles et distribués, Pratique en BASIC/C et Visual Basic 6.0.
Compétences professionnelles CP1, CP2, CP3, CP7, CP9, IN1, IN2, IN3
et disciplinaires visées :
Approches pédagogiques : Activités pratiques au laboratoire, Ateliers et exposés magistraux, Travaux
individuels ou équipe, Learning Lab.

Modalités d’évaluation : Evaluation continue et formative. Au moins la moitié des travaux des étu-
diants doivent être supervisés (travaux dirigés en classe).

Page | 1
Institut Supérieur Pédagogique

Section des Sciences et Technologies


Département d’Informatique
B.P. 127
Mbanza-Ngungu

PLAN DE COURS
INF202 – Algorithmique et structures des données
Semestre 3
Année académique 2021 – 2022
Code Google classroom : rsy6he3

Mode d’enseignement : Présentiel


Temps consacré :4–2–4
Crédits :6

Coordonnées du titulaire
Ruffin-Benoît M. NGOIE, PhD.
Email : [email protected]
Téléphone : +243(0) 89 71 11 489

Disponibilités
Sur rendez-vous uniquement, par téléphone ou par courriel. Le courriel est préférablement le
meilleur moyen de me joindre. Sauf en cas d’extrême urgence, je n’accepte pas de SMS, ni
des messages ou voice des réseaux sociaux. C’est plus simple de m’envoyer un courriel et de
prendre rendez-vous si besoin.

Place du cours dans le programme


Bien que le monde de la programmation ait, dans son ensemble, pris le virage du modèle
objet, la programmation procédurale (structurée) y demeure omniprésente, quand bien
même ce ne serait que parce que le modèle objet lui doit en partie son succès. Encore
aujourd’hui, il est souvent naturel d’aborder, partiellement ou intégralement, certains
problèmes sous un angle structuré, quitte à inclure leur solution dans un cadre orienté
objet plus englobant.
Les principes fondamentaux de la programmation structurée sont souvent approchés
comme les principes fondamentaux de la programmation en général. Pour aller plus loin,
il faut encore aujourd’hui passer d’abord par une compréhension solide de ceux-ci. Par la
suite, nous verrons comment appliquer ces principes dans le contexte de la
programmation orientée objet.

Page | 1
Ce cours obligatoire s’adresse à tous les étudiants de premier cycle en Informatique toutes men-
tions confondues. Il exige comme préalable la maîtrise du premier cours d’algorithmique
(INF104) et de la programmation (INF104 et INF20). Il est un préalable pour la maîtrise de la
programmation orientée-objet. L’étudiant devra faire montre de la capacité d’analyse rigou-
reuse et méthodique.

Page | 2
Descripteur du cours

Cette UE vise la maîtrise d’une variété de structures de données clas-


Objectif de l’UE siques existantes et des principaux algorithmes sur celles-ci.
Initiation à l'algorithmique et aux bases de la programmation, Struc-
tures de données (liste, pile, file, tableau, arbre, table de hachage,
graphe), Analyse de performance des algorithmes, Techniques de base
Contenu de conception d'algorithmes (récursivité, algorithmes gloutons, etc.),
Algorithmes de recherche et d'extraction de l'information, Algorithmes
de tri classiques, Introduction aux algorithmes parallèles et distribués,
Pratique en Python.
À la fin du cours, l’étudiant(e) sera capable de :
 Formaliser son raisonnement ;
 Analyser un problème dans le but d’y trouver une solution infor-
matique ;
 Elaborer une solution formelle (algorithmique) à un problème ;
 Modéliser un algorithme en respectant une convention textuelle
Objectifs d’apprentissage
ou graphique ;
 Manipuler des structures de données complexes ;
 Implémenter un algorithme à l’aide d’un langage de program-
mation ;
 Vérifier le bon fonctionnement d’un programme ;
 Respecter des normes et des standards de programmation.

Activités pratiques au laboratoire, Ateliers et exposés magistraux,


Approches pédagogiques Travaux individuels ou équipe, Learning Lab.

Evaluation continue et formative. Au moins la moitié des travaux des


Modalités d’évaluation étudiants doivent être supervisés (travaux dirigés en classe).

Page | 3
Calendrier des activités pédagogiques
Séance Contenu Objectifs Activités pédagogiques Références Travaux de l’étudiant
Séance 1 Présentation du cours et vue d’en- Situer le cours dans le programme et dans Design pédagogique Exercices en classe (évaluation con-
semble la formation. tinue)
Exposé magistral interactif Cormen, T., Leiserson, C., Rivest, R., and Stein, C.
 Introduction à l’algorithmique Formaliser son raisonnement. Introduction à l’algorithmique – Cours et exercices.
 Définition des concepts 2ème édition, Dunod, Paris, 2004.
Analyser un problème dans le but d’y trou-
ver une solution informatique. (Disponible en numérique chez l’enseignant)

Séance 2 Introduction aux graphes Modéliser un algorithme en respectant une Exposé magistral interactif. Cormen, T., Leiserson, C., Rivest, R., and Stein, C. TD1 :
convention textuelle ou graphique. Introduction à l’algorithmique – Cours et exercices.
 Définition 2ème édition, Dunod, Paris, 2004. Lire (Cormen et al., 2004 : 513-516)
 Typologie Manipuler des structures de données com- et (West, 2002 : 1-7) pour préparer
 Problèmes plexes. West, D. B. Introduction to graph theory. 2nd edi- la séance 3.
tion, Pearson education, India, 2002.
Implémenter un algorithme à l’aide d’un Déterminer le degré entrant, le degré
langage de programmation. Erciyes, K. Guide to graph algorithms – Sequential, sortant et le degré de chaque sommet
parallel and distributed. Springer, Switzerland, d’un graphe donné. Rédiger un algo-
2018. rithme en respectant les conventions
et traduire dans un langage de pro-
Bretto, A., Faisant, A., Hennecart, F. Eléments de grammation au choix (QB ou PAS-
théorie des graphes. Springer, France, 2012. CAL). A renvoyer sur Google
classroom au plus tard la veille de
séance 3.
Séance 3 Introduction aux graphes (suite) Modéliser un algorithme en respectant une Pédagogie inversée, Exposé Cormen, T., Leiserson, C., Rivest, R., and Stein, C. Exercices en classe (évaluation con-
convention textuelle ou graphique. magistral interactif, Buzz Introduction à l’algorithmique – Cours et exercices. tinue)
 Problèmes de parcours group. 2ème édition, Dunod, Paris, 2004.
 Problèmes de couplage Manipuler des structures de données com- TP1 :
 Coloration plexes. West, D. B. Introduction to graph theory. 2nd edi-
tion, Pearson education, India, 2002. Implémenter les algorithmes de
Implémenter un algorithme à l’aide d’un Kruskal, de Dijkstra et de Welsh-Po-
langage de programmation. Sache, A. La théorie des graphes. « Que sais-je ? », wel en QB. Le travail est à rendre au
PUF, Paris, 1974. plus tard à la veille de la séance 6
(sur Google classroom).
Jungnickel, D. Graphs, Networks and algorithms.
Springer, Berlin Heidelberg, 2005.

Page | 4
Séance Contenu Objectifs Activités pédagogiques Références Travaux de l’étudiant
Séance 4 Introduction aux graphes (suite) Modéliser un algorithme en respectant une Exposé magistral interactif, Cormen, T., Leiserson, C., Rivest, R., and Stein, C. Exercices en classe (évaluation con-
convention textuelle ou graphique. Buzz group. Introduction à l’algorithmique – Cours et exercices. tinue).
 Mariages stables 2ème édition, Dunod, Paris, 2004.
 Flots Manipuler des structures de données com-
plexes. West, D. B. Introduction to graph theory. 2nd edi-
tion, Pearson education, India, 2002.
Implémenter un algorithme à l’aide d’un
langage de programmation. Sache, A. La théorie des graphes. « Que sais-je ? »,
PUF, Paris, 1974.
Jungnickel, D. Graphs, Networks and algorithms.
Springer, Berlin Heidelberg, 2005.
Séance 5 Fondamentaux sur le langage Py- Implémenter un algorithme à l’aide d’un Laboratoire, Exposé magistral Casamayou-Boucau, A., Chauvin, P. and Connan, Bricollage au laboratoire, exercices
thon langage de programmation. interactif, Pédagogie du bi- G. Programmation en Python pour les mathéma- pratiques et analyses des pseudo-
douillage, Learning lab. tiques. 2ème édition, Dunod, Paris, 2016. codes et codes.
Hetland, M. L. Python algorithms, Mastering basic
algorithms in the Python language. Apress, New-
York, 2010.
Mueller, J. P. Beginning programming with Python,
for dummies. 2nd edition, John Wiley and Sons,
USA, 2018.
Swimmen, G. Apprendre à programmer avec Py-
thon. Eyrolles, Paris, 2009.
Ziadé, T. Programmation Python, Conception et op-
timisation. 2ème édition, Eyrolles, Paris, 2009.
Séance 6 Discussions, mises au point et ob- Implémenter un algorithme à l’aide d’un Laboratoire, Exposé magistral Teghem, J. Recherche Opérationnelle. Tome 1 : Mé- TD2 :
servations sur le TP1 langage de programmation. interactif, Pédagogie du bi- thodes d'optimisation. Ellipses, Paris, 2012.
douillage, Learning lab. Lire les notes de cours mises en ligne
 Problème de transport Balakrishnan, V.K. Theory and problems of graph sur Google classroom et préparer la
 Problème d’affectation theory. Schaum’s outlines series, McGrawHill, séance 7. Répondre aux questions en
USA, 1997. ligne au plus tard la veille de la
séance 7.
TP2 :
Implémenter les algorithmes de
Coin Nord-Ouest, Moindres coûts,
Balas-Hammer et Khun-Munkres en
Python. A rendre au plus tard la
veille de la séance 9.

Page | 5
Séance Contenu Objectifs Activités pédagogiques Références Travaux de l’étudiant
Séance 7  Problème de transport Implémenter un algorithme à l’aide d’un Classe inversée, Buzz group, Cormen, T., Leiserson, C., Rivest, R., and Stein, C. Exercices en classe (évaluation con-
 Problème d’affectation langage de programmation. Exposé magistral. Introduction à l’algorithmique – Cours et exercices. tinue).
2ème édition, Dunod, Paris, 2004.
Vérifier le bon fonctionnement d’un pro-
gramme. Teghem, J. Recherche Opérationnelle. Tome 1 : Mé-
thodes d'optimisation. Ellipses, Paris, 2012.
Respecter des normes et des standards de
programmation.

Séance 8  Complexité algorithmique Formaliser son raisonnement. Exposé magistral interactif. Cormen, T., Leiserson, C., Rivest, R., and Stein, C. Exercices en classe (évaluation con-
 Etude de complexité Introduction à l’algorithmique – Cours et exercices. tinue).
Analyser un problème dans le but d’y trou- 2ème édition, Dunod, Paris, 2004.
ver une solution informatique. TD3 :
Teghem, J. Recherche Opérationnelle. Tome 1 : Mé-
Elaborer une solution formelle (algorith- thodes d'optimisation. Ellipses, Paris, 2012. Etudier la complexité de l’algo-
mique) à un problème. rithme de Welsh-Powel pour la colo-
Karumanchi, N. Data structures and algorithmic ration d’un graphe de n sommets. A
Manipuler des structures de données com- thinking with Python. CareerMonk Publications, rendre au plus tard sur la plateforme
plexes. Bombay, 2016. Google classroom la veille de la
Vérifier le bon fonctionnement d’un pro- séance 9.
gramme.
.

Séance 9  Correction de TD3 Formaliser son raisonnement. Exposé magistral interactif. Cormen, T., Leiserson, C., Rivest, R., and Stein, C. TD4 :
 Discussions et mise au point Introduction à l’algorithmique – Cours et exercices.
Analyser un problème dans le but d’y trou- 2ème édition, Dunod, Paris, 2004. Lire (Cormen et al., 2004 : 933 –
ver une solution informatique. 945) ainsi que différents documents
Teghem, J. Recherche Opérationnelle. Tome 1 : Mé- sur Internet sur les classes de com-
Elaborer une solution formelle (algorith- thodes d'optimisation. Ellipses, Paris, 2012. plexité (privilégier les vidéos You-
mique) à un problème. tube). Préparer un exposé à remettre
Karumanchi, N. Data structures and algorithmic sur Google classroom au plus tard la
Manipuler des structures de données com- thinking with Python. CareerMonk Publications,
plexes. veille de la séance 10.
Bombay, 2016.
Vérifier le bon fonctionnement d’un pro-
gramme.

Page | 6
Séance Contenu Objectifs Activités pédagogiques Références Travaux de l’étudiant
Séance 10  Classes de complexité Formaliser son raisonnement. Classe inversée, Exposé magistral Cormen, T., Leiserson, C., Rivest, R., and Stein, Exercices en classe (évaluation con-
 Classe P interactif. C. Introduction à l’algorithmique – Cours et exer- tinue).
Analyser un problème dans le but d’y cices. 2ème édition, Dunod, Paris, 2004.
 Classe NP trouver une solution informatique.
 Conjecture P=NP ? Erciyes, K. Guide to graph algorithms – Sequen-
tial, parallel and distributed. Springer, Swit-
zerland, 2018.

Séance 11  Algorithmes gloutons Formaliser son raisonnement. Exposé magistral interactif. Cormen, T., Leiserson, C., Rivest, R., and Stein, Exercices en classe (évaluation con-
 Récursivité C. Introduction à l’algorithmique – Cours et exer- tinue).
Analyser un problème dans le but d’y cices. 2ème édition, Dunod, Paris, 2004.
 Programmation dynamique trouver une solution informatique.
Ngoie, R.-B. M, Mpemba, L.N. Complexity study
Elaborer une solution formelle (algorith- on Fibonacci’s sequence. International Journal of
mique) à un problème. Scientific and Innovative Mathematical Research,
Respecter des normes et des standards de 3(10) : 5-13, 2015.
programmation.
Séance 12  Problème de tri Formaliser son raisonnement. Exposé magistral interactif Cormen, T., Leiserson, C., Rivest, R., and Stein, TD5 :
C. Introduction à l’algorithmique – Cours et exer-
Analyser un problème dans le but d’y cices. 2ème édition, Dunod, Paris, 2004. Implémenter les différents algo-
trouver une solution informatique. rithmes de tri en Python. L’utilisa-
Hubbard, J.R. Structures de données en Java. Du- tion de l’internet est autorisée. Ce
Elaborer une solution formelle (algorith- nod, Paris, 2005. travail se fait en classe.
mique) à un problème.
Respecter des normes et des standards de
programmation.
Séance 13  Algorithmes probabilistes Formaliser son raisonnement. Exposé magistral interactif. Mitzenmacher, M., and Upfal, E. Probability and TD6 :
computing. 2nd edition, Cambridge university
Analyser un problème dans le but d’y press, 2017. Préparer les exposés à présenter à
trouver une solution informatique. partir de la séance 14.
Elaborer une solution formelle (algorith- Algorithmes numériques, Sher-
mique) à un problème. wood, Monte-Carlo, Las Vegas,
Graphe aléatoire, Générateurs
Respecter des normes et des standards de pseudo-aléatoires, Expérience de
programmation. Georges Louis Leclerc. S’appuyer
sur les vidéos Youtube pour avoir
une version simplifiée des présen-
tations.

Page | 7
Séance Contenu Objectifs Activités pédagogiques Références Travaux de l’étudiant
Séance 14  Exposés sur les algorithmes pro- Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
babilistes aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Elaborer une solution formelle (algorith-
mique) à un problème.
Respecter des normes et des standards de
programmation.
Séance 15  Exposés sur les algorithmes pro- Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
babilistes aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Elaborer une solution formelle (algorith-
mique) à un problème.
Respecter des normes et des standards de
programmation.
Séance 16  Exposés sur les algorithmes pro- Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
babilistes aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Elaborer une solution formelle (algorith-
mique) à un problème.
Respecter des normes et des standards de
programmation.
Séance 17  Exposés sur les algorithmes pro- Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
babilistes aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Elaborer une solution formelle (algorith-
mique) à un problème.
Respecter des normes et des standards de
programmation.
Séance 18  Exposés sur les algorithmes pro- Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
babilistes aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Elaborer une solution formelle (algorith-
mique) à un problème.

Page | 8
Séance Contenu Objectifs Activités pédagogiques Références Travaux de l’étudiant
Séance 19  Exposés sur les algorithmes pro- Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
babilistes aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Elaborer une solution formelle (algorith-
mique) à un problème.
Séance 20  Introduction aux automates et Formaliser son raisonnement. Exposé magistral interactif. - TP3 :
machine de Turing
Analyser un problème dans le but d’y Exposer sur la théorie de Turing.
trouver une solution informatique. Etablir un lien entre cette théorie et
celle des langages formels établie
Elaborer une solution formelle (algorith- par Chomsky. Exposé à rendre sur la
mique) à un problème. plateforme Google classroom au
Respecter des normes et des standards de plus tard la veille de la séance 23.
programmation.
Séance 21  Parallélisme et distribution Formaliser son raisonnement. Exposé magistral interactif. Erciyes, K. Guide to graph algorithms – Sequen- TD7 :
 Exposé introductif tial, parallel and distributed. Springer, Swit-
Analyser un problème dans le but d’y zerland, 2018. Préparer les exposés à présenter à
trouver une solution informatique. partir de la séance 22.
Trobec, R., Slivnik, B., Bulic, P., Robic, B. Intro-
duction to parallel computing. Springer, Swit- Taxonomie de Flynn, Ordinateurs
zerland, 2018. SISD, SIMD, MISD, MIMD, Sys-
tèmes distribués, PRAM, Com-
Gebali, F. Algorithms and parallel computing. Wi- plexité computationnelle parallèle,
ley & sons, New-Jersey, 2011. Théorème de Brent, Loi de Amdhal,
loi de Gustafson-Barsis, Processus
MPI, Parallélisation des boucles.
Séance 22  Exposés sur la programmation Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
parallèle et distribuée aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Elaborer une solution formelle (algorith-
mique) à un problème.
Séance 23  Exposés sur la programmation Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
parallèle et distribuée aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Elaborer une solution formelle (algorith-
mique) à un problème.

Page | 9
Séance Contenu Objectifs Activités pédagogiques Références Travaux de l’étudiant
Séance 24  Exposés sur la programmation Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
parallèle et distribuée aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Elaborer une solution formelle (algorith-
mique) à un problème.
Séance 25  Exposés sur la programmation Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
parallèle et distribuée aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Elaborer une solution formelle (algorith-
mique) à un problème.
Séance 26  Discussion et mise au point sur Formaliser son raisonnement. Exposé magistral interactif. - Jeux de questions réponses et exer-
les exposés cices.
Analyser un problème dans le but d’y
trouver une solution informatique.
Elaborer une solution formelle (algorith-
mique) à un problème.
Respecter des normes et des standards de
programmation.
Séance 27  Exposés sur les machines de Tu- Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
ring aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Séance 28  Exposés sur les machines de Tu- Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
ring aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Séance 29  Exposés sur les machines de Tu- Formaliser son raisonnement. Buzz group. - Exposés en groupe et participation
ring aux activités.
Analyser un problème dans le but d’y
trouver une solution informatique.
Séance 30 Evaluation et auto-évaluation Evaluer l’efficacité de l’action pédago- Panel de discussion - Participation au débat.
gique

Page | 10
Description des travaux pratiques et critères de correction
Implémenter des algorithmes sur les graphes en QB
Etudier chacun des algorithmes vus au cours avec minutie. Ensuite, les traduire en pseudocodes
puis en QB, recopier les codes dans un fichier texte et, enfin, envoyer ledit fichier sur la plate-
forme Google Classroom. Ce travail est à rendre après 2 semaines.
Critères d’évaluation : Syntaxe du QB bien respecté, correction du code, élégance dans le
style du programmeur, documentation du code (présence des commentaires).

Implémenter des algorithmes des problèmes de transport et affectation en Python


Etudier chacun des algorithmes vus au cours avec minutie. Ensuite, les traduire en Python, re-
copier les codes dans un fichier texte et, enfin, envoyer ledit fichier sur la plateforme Google
Classroom. Ce travail est à rendre après 2 semaines.
Critères d’évaluation : Syntaxe du Python bien respecté, correction du code, élégance dans le
style du programmeur, documentation du code (présence des commentaires).

Exposer sur la théorie de Turing


Ce travail consiste à exposer la théorie de Turing sur 10 à 15 pages. L’auteur veillera à établir
une relation claire entre la théorie de Turing et celle des langages formels établie par Chomsky.
Le travail étant collectif, chaque membre veillera à participer activement à son élaboration au
risque de se voir attribué la note 0. Il sera rendu après 2 semaines sur la plateforme Google
Classroom. Les quatre dernières séances du cours seront consacrées aux exposés.
Critères d’évaluation : Analyse juste du problème étudié, pertinence des éléments repris dans
le rapport, effort de rendre compréhensible la théorie, cohérence de l’ensemble, qualité du fran-
çais.

Modalités pratiques d’évaluation


Nature du travail Poids (en %) Date de remise
Travail pratique 1 5% Après 2 semaines
Travail pratique 2 5% Après 2 semaines
Travail pratique 3 10% Après 2 semaines
Travaux dirigés 10%
Mini-tests* 20%
Examen final 50%
(*) : Seules les 4 meilleures notes des mini-tests seront comptabilisées.

Page | 11
Pénalités sur les travaux
Aucun retard dans la remise des travaux n’est permis. Tout travail pratique remis en retard est
sujet à une pénalité. La note sera réduite de 25% pour chaque jour de retard. En conséquence,
la note attribuée après 3 jours de retard sera zéro. Si l’étudiant n’a pas pu terminer le travail à
temps, il devra le notifier au Professeur par courrier électronique.

Mini-tests
Les mini-tests sont des tests comprenant des questions à développement court. Leur durée est
d’au plus 20 minutes. En considération des objectifs du cours et des compétences visées, des
restrictions peuvent être imposées sur l’usage ou non des calculateurs.

Examen final
L’examen final interviendra à la fin du semestre. Il comprend des questions à développement
court et des questions à développement long. Sa durée est d’au plus deux heures. Aucune do-
cumentation n’est permise. Par contre, l’usage des calculateurs électroniques est autorisé.

Correction des travaux


La correction des travaux pratiques, des travaux dirigés, des mini-tests et de l’examen final est
entre autres basée sur le fait que chacune des réponses soit :
 Claire, c'est-à-dire lisible et compréhensible pour le correcteur ;
 Précise, c'est-à-dire exacte ou sans erreur ;
 Complète, c'est-à-dire que toutes les étapes de résolution du problème sont présentes ;
 Concise, c'est-à-dire que la méthode de résolution est la plus courte possible.

La correction des programmes prend en compte la qualité du code et celle de la documentation.


Le correcteur peut soustraire jusqu’à 5% de chaque évaluation pour la qualité du français. Des
consignes supplémentaires ou des modifications pourront être communiquées au cours du se-
mestre.

Document obligatoire
Les notes de cours (syllabus) sont disponibles en ligne sur la plateforme Google Classroom.
Des documents supplémentaires peuvent être fournis sur demande des étudiants ou quand le
besoin s’impose.

Plagiat
Un document dont le texte et la structure se rapportent à des textes intégraux tirés d'un livre,
d'une publication scientifique ou même d'un site Internet, doit être référencé adéquatement.
Lors de la correction de tout travail individuel ou de groupe une attention spéciale sera portée
au plagiat, défini comme « le fait, dans une activité pédagogique évaluée, de faire passer indû-
ment pour siens des passages ou des idées tirées de l’œuvre d'autrui. »
Est aussi considéré comme plagiat « tout acte ou manœuvre visant à tromper quant au rende-
ment scolaire ou quant à la réussite d'une exigence relative à une activité pédagogique. » À titre
de sanction disciplinaire, les mesures suivantes peuvent être imposées:

Page | 12
a) Obligation de reprendre un travail, un examen ou une activité pédagogique et
b) Attribution de la note 0 pour un travail, un examen ou une activité évaluée.

Tout travail suspecté de plagiat sera référé au chargé de l'enseignement du département d’In-
formatique.

Bibliographie
Balakrishnan, V.K. Theory and problems of graph theory. Schaum’s outlines series, McGrawHill, USA, 1997.
Bretto, A., Faisant, A., Hennecart, F. Eléments de théorie des graphes. Springer, France, 2012.

Casamayou-Boucau, A., Chauvin, P. and Connan, G. Programmation en Python pour les mathématiques. 2 ème édition, Dunod,
Paris, 2016.
Cormen, T., Leiserson, C., Rivest, R., and Stein, C. Introduction à l’algorithmique – Cours et exercices. 2ème édition, Dunod,
Paris, 2004.
Erciyes, K. Guide to graph algorithms – Sequential, parallel and distributed. Springer, Switzerland, 2018.

Gebali, F. Algorithms and parallel computing. Wiley & sons, New-Jersey, 2011.

Hetland, M. L. Python algorithms, Mastering basic algorithms in the Python language. Apress, New-York, 2010.
Hubbard, J.R. Structures de données en Java. Dunod, Paris, 2005.

Jungnickel, D. Graphs, Networks and algorithms. Springer, Berlin Heidelberg, 2005.

Karumanchi, N. Data structures and algorithmic thinking with Python. CareerMonk Publications, Bombay, 2016.

Mitzenmacher, M., and Upfal, E. Probability and computing. 2 nd edition, Cambridge university press, 2017.
Mueller, J. P. Beginning programming with Python, for dummies. 2 nd edition, John Wiley and Sons, USA, 2018.
Ngoie, R.-B. M, Mpemba, L.N. Complexity study on Fibonacci’s sequence. International Journal of Scientific and Innovative
Mathematical Research, 3(10) : 5-13, 2015.
Sache, A. La théorie des graphes. « Que sais-je ? », PUF, Paris, 1974.
Swimmen, G. Apprendre à programmer avec Python. Eyrolles, Paris, 2009.
Teghem, J. Recherche Opérationnelle. Tome 1 : Méthodes d'optimisation. Ellipses, Paris, 2012.
Trobec, R., Slivnik, B., Bulic, P., Robic, B. Introduction to parallel computing. Springer, Switzerland, 2018.
West, D. B. Introduction to graph theory. 2nd edition, Pearson education, India, 2002.
Ziadé, T. Programmation Python, Conception et optimisation. 2 ème édition, Eyrolles, Paris, 2009.

Page | 13

Vous aimerez peut-être aussi