Plan de cours IFT 211/IFT 776 – Programmation scientifique en Python Hiver 2016
D´
epartement d’informatique
IFT 211/IFT 776 – Programmation scientifique en Python
Plan de cours
Hiver 2016
Enseignant
Gabriel Girard
Local : D4-1010-1
T´
el´
ephone : (819) 821-8000 poste 63033
Site : http://info.usherbrooke.ca/GabrielGirard/cours
Disponibilit´
e : sur rendez-vous
Professeur responsable : Gabriel Girard
Horaire
Expos´
e magistral : Lundi 13h30 `
a 15h20 salle D4-2021/D4-1017 (Laboratoire)
Vendredi 08h30 `
a 10h20 salle D4-2021/D4-1017
Description officielle de l’activit´
e p´
edagogique 1
Objectifs Pouvoir d´
evelopper des programmes de bonne qualit´
e`
a l’aide du langage de programmation
Python.
Contenu Introduction aux ordinateurs. La syntaxe g´
en´
erale et les types de bases de Python. Les structures
de contrˆ
ole : s´
equence, s´
election, it´
eration, r´
ecursivit´
e. Concept de fonctions et d’abstraction
proc´
edurale. Concept de base de l’abstraction de donn´
ees. Les entr´
ees/sorties. Utilisation de
biblioth`
eques pour la programmation scientifique.
Cr´
edits 1
Organisation 2 heures d’expos´
e magistral par semaine
1 heure d’exercices par semaine
0 heures de travail personnel par semaine
Particularit´
es Aucune
1. http ://www.usherbrooke.ca/programmes/cours/IFT/ift211/ift776.htm
4 janvier 2016 1
Plan de cours IFT 211/IFT 776 – Programmation scientifique en Python Hiver 2016
1 Pr´
esentation
Cette section pr´
esente les objectifs sp´
ecifiques et le contenu d´
etaill´
e de l’activit´
e p´
edagogique. Cette section, non
modifiable sans l’approbation d’un comit´
e de programme du D´
epartement d’informatique, constitue la version offi-
cielle.
1.1 Mise en contexte
Le cours IFT 211, Programmation scientifique en Python, est un premier cours de programmation qui s’adresse
aux ´
etudiants de tous les cycles de physique, de chimie et de biologie. Il ne pr´
esuppose pas de connaissance en
programmation. Il ne requiert que la connaissance de l’utilisation usuelle d’un ordinateur. Comme son nom l’indique
c’est un cours de programmation en Python. Il vise l’apprentissage des notions de base de ce langage avec pour objectif
de l’utiliser dans des applications sp´
ecifiques au domaine d’´
etude des ´
etudiants.
Ce cours sera compl´
et´
e par un cours de laboratoire sp´
ecialis´
e dans une des domaines d’application soit la physique,
la biologie ou la chimie.
1.2 Objectifs sp´
ecifiques
L’objectif du cours est d’apprendre `
a programmer en Python et `
a utiliser ce langage dans un domaine scientifique.
De fac¸on plus pr´
ecise, `
a la fin de cette activit´
e p´
edagogique, l’´
etudiante ou l’´
etudiant sera capable :
1. de comprendre le fonctionnement d’un ordinateur dans le contexte de l’utilisation d’un outil d’´
elaboration d’une
solution programm´
ee ;
2. de manipuler les environnements de d´
eveloppement associ´
es `
a Python;
3. de d´
evelopper des outils informatique `
a l’aide du langage Python;
4. de respecter des normes et standards de programmation ;
5. d’utiliser les m´
ecanismes ´
el´
ementaires d’encapsulation orient´
ee objet;
6. de documenter la solution.
1.3 Contenu d´
etaill´
e
Th`
eme Contenu Heures Objectifs Travaux
1 Br`
eve introduction aux ordinateurs :
Mod`
ele pratique du calcul, mod`
ele th´
eorique du calcul, ´
etapes
de la mise en oeuvre et de l’ex´
ecution d’un programme.
2 1
2 D´
eveloppement de programmes s´
equentiels :
´
El´
ements de base du Python, notions de programmes, notions
de compilation. Organisation des donn´
ees et types, ´
Enonc´
es
d’affectation, de lecture et d’´
ecriture.
3 2,3,4,6 A/P
3 Structures s´
electives des langages :
Expressions logiques; ´
enonc´
eif ,´
enonc´
es compos´
es,
´
enonc´
eif emboˆ
ıt´
e.
2 2,3,4,6 A/P
4 Structures it´
eratives des langages :
Concept d’it´
eration, boucle conditionnelle et de comptage,
´
enonc´
es while ,for ; boucles emboˆ
ıt´
ees.
2 2,3,4,6 A/P
5 Les fonctions et introduction `
a la r´
ecursivit´
e :
Concept de modularit´
e, Concept de fonctions, utilisations des
fonctions, r´
ecursivit´
e; param`
etres d’entr´
ee et de sortie.
2 2,3,4,6 A/P
6 Introduction `
a l’abstraction de donn´
ees :
cr´
eation de nouveaux types simples, encapsulation; concepts
d’abstraction de donn´
ees, introduction aux classes.
2 2..6 A/P
7 Conclusion. 1
1. Les heures associ´
ees `
a un th`
eme particulier inclues les heures d’exercices pour un total de 14 heures.
2. Le cours doit comprendre au moins cinq travaux pratiques couvrant tous les sujets marqu´
es dans le tableau. Les
lettres Aet Prepr´
esentent respectivement l’analyse/conception et la programmation.
4 janvier 2016 2
Plan de cours IFT 211/IFT 776 – Programmation scientifique en Python Hiver 2016
2 Organisation
Cette section propre `
a l’approche p´
edagogique de chaque enseignante ou enseignant pr´
esente la m´
ethode p´
edago-
gique, le calendrier, le bar`
eme et la proc´
edure d’´
evaluation ainsi que l’´
ech´
eancier des travaux. Cette section doit ˆ
etre
coh´
erente avec le contenu de la section pr´
ec´
edente.
2.1 M´
ethode p´
edagogique
Le cours est intensif sur cinq semaines. Une semaine comprend quatre heures de pr´
esence en classe: deux heures
de cours magistral et deux heures de laboratoire. Chaque semaine, il y aura donc environ deux heures d’expos´
es
magistraux d´
ecrivant la th´
eorie ainsi que des exemples d´
evelopp´
es au tableau. Tous les th`
emes du cours, sauf le
premier, seront abord´
es de la mˆ
eme mani`
ere: au moins une ´
etude de cas sera ´
etudi´
ee; l’analyse du probl`
eme sera
effectu´
ee et une fois correcte, la solution sera programm´
ee; enfin on reviendra sur les ´
el´
ements nouveaux du langage
vus dans la programmation de la solution.
Chaque semaine il y aura un laboratoire portant sur le th`
eme abord´
e.
2.2 Calendrier
Semaine Date Th`
emes Laboratoire Lecture
1 04/01/16 1-2 Pr´
esentation de l’environnement, programme simple
2 11/01/16 3-4 S´
election/it´
eration
3 18/01/16 5 Fonctions + classes (types abstraits)
4 25/01/16 6 Classes et biblioth`
eques
5 01/02/16 6-7 Classes + conclusion + examen
2.3 ´
Evaluation
Devoirs 40 %
Laboratoires 20 %
Final 40 %
Conform´
ement `
a l’article 17 du r`
eglement facultaire d’´
evaluation des apprentissages 2l’enseignant peut retourner `
a
l’´
etudiante ou `
a l’´
etudiant tout travail non conforme aux exigences quant `
a la qualit´
e de la langue et aux normes de
pr´
esentation.
Le plagiat consiste `
a utiliser des r´
esultats obtenus par d’autres personnes afin de les faire passer pour sien et dans
le dessein de tromper l’enseignant. Si une preuve de plagiat est attest´
ee, elle sera trait´
ee en conformit´
e, entre autres,
avec l’article 8.1.2 du R`
eglement des ´
etudes 3de l’Universit´
e de Sherbrooke. L´
etudiant ou l’´
etudiante peut s’exposer
`
a de graves sanctions dont automatiquement un z´
ero (0) au devoir ou `
a l’examen en question.
Ceci n’indique pas que vous n’ayez pas le droit de coop´
erer entre deux ´
equipes tant que la r´
edaction finale des
documents et la cr´
eation du programme reste le fait de votre ´
equipe. En cas de doute de plagia, l’enseignant peut
demander `
a l’´
equipe d’expliquer les notions ou le fonctionnement du code qu’il consid`
ere comme ´
etant plagi´
e. En
cas de doute, ne pas h´
esiter `
a demander conseil et assistance `
a l’enseignant afin d’´
eviter toute situation d´
elicate par la
suite.
2.4 ´
Ech´
eancier des travaux
TP # R´
eception de l’´
enonc´
e Date de remise Th`
eme
1 08/01/15 15/01/15 S´
equence
2 15/01/14 22/01/15 S´
election et it´
eration
3 22/01/15 29/01/15 Fonctions
4 29/01/15 05/02/15 Classes (abstraction de donn´
ees)
Directives particuli`
eres :
2. http://www.usherbrooke.ca/sciences/intranet/informations-academiques/reglement-devaluation/
3. http://www.usherbrooke.ca/programmes/references/reglement/
4 janvier 2016 3
Plan de cours IFT 211/IFT 776 – Programmation scientifique en Python Hiver 2016
Examen
L’examen portera sur la programmation. `
A moins d’avis contraire, la consultation du manuel de cours et des notes
de cours est autoris´
e`
a l’examen. Aucun ordinateur, t´
el´
ephone cellulaire, calculatrice ou autre appareils ´
electroniques
n’est autoris´
e lors des examens.
Devoirs
1. Les travaux se feront en ´
equipe de 2 personnes. Un travail effectu´
e par une ´
equipe de trois se verra impos´
e une
p´
enalit´
e de 25%. Cette p´
enalit´
e sera de 100% pour des ´
equipes de plus que trois.
2. Il y aura de 4 laboratoires. Les laboratoires doivent ˆ
etre fait individuellement. Ils sont tous corrig´
es et compta-
bilis´
es.
3. La qualit´
e du franc¸ais et de la pr´
esentation est consid´
er´
ee dans le r´
esultat du travail.
4. Les sujets des travaux seront disponibles sur la page WEB du cours (page web du DMI sous la rubrique Le
personnel/Professeurs d’informatique/Gabriel Girard ) au jour sp´
ecifi´
e dans le plan de cours pour la r´
eception
du devoir. La remise du travail s’effectue le jour et `
a l’heure exig´
es. Le non respect de la date de remise entraˆ
ıne
une p´
enalit´
e de 25% de la note par jour de retard, `
a moins d’un cas exceptionnel. Il est `
a noter qu’un oubli
ou un emploi du temps charg´
e n’est pas un cas exceptionnel. Il en est de mˆ
eme en ce qui concerne une panne
´
electrique, d’ordinateur, d’imprimante, ou du r´
eseau. Cela signifie qu’il faut toujours viser `
a terminer son travail
de programmation au moins 24 heures avant la date de remise pour tenir compte des pannes possibles et de la
surcharge quasi-in´
evitable. Ceci est un conseil qui vaut son pesant de points. Les modalit´
es de remise de chaque
travail vous seront fournies avec le sujet de chaque travail.
5. Le respect des normes d´
epartementales est imp´
eratif. Le document Norme de documentation des programmes
[6] contient les normes du d´
epartement en mati`
ere de programmation. Ces normes pourront ˆ
etre adapt´
ees au
langage Python.
Cette contrainte permet de v´
erifier que l’´
etudiant ou l’´
etudiante sait s’astreindre `
a une discipline de programma-
tion. Elle permet de plus de mieux insister sur les concepts importants du cours.
6. La programmation en Python est test´
ee dans l’environnement UNIX, qui est la base du syst`
eme Linux. Elle peut
ˆ
etre r´
ealis´
ee sous tout autre environnement (Windows, Linux ou Mac OS X par exemple), mais devra se trouver
et fonctionner sous UNIX au moment de la remise du travail. Il est de votre responsabilit´
e de vous assurer que
votre programme est fonctionnel dans l’environnement de correction (Linux).
De l’aide technique est disponible sur les ordinateurs des laboratoires, que ceux-ci tournent sous Windows 10
et Linux. Sur le site, les ´
etudiants et ´
etudiantes pourront trouver des liens et de la documentation pour travailler
`
a partir de chez eux. Cependant, aucune autre aide ne sera fournie par manque de temps et de ressources. Il
est conseill´
e, pour un travail hors des laboratoires, d’utiliser l’environnement de d´
eveloppement PyCharm ou
Spyder qui est disponible sur la plupart des plates-formes principalement sous Linux (Ubuntu).
3 Mat´
eriel n´
ecessaire pour le cours
Les ac´
etates du cours sont disponibles sur le WEB.
Les normes de programmation du D´
epartement d’informatique sont d´
ecrites dans [6]. Vous devez absolument vous
procurez ce document et le lire.
Il n’y a pas de manuel de r´
ef´
erence sp´
ecifique pour le cours. Les manuels [4,9,13,14,16,19] sont tous de tr`
es
bonnes r´
ef´
erences. Certains sont disponibles en ligne ou en PDF. Certains sont gratuits d’autres sont disponibles `
a
faible coˆ
ut.
Les formations en lignes [1,7,12,20] sont extrˆ
emement pertinentes et utiles.
Le site PythonTutor [8] offre aussi une fac¸on de comprendre en permettant de visualiser son code.
4 R´
ef´
erences
[1] ANONYME : Python tutorial. http://pythonprogramminglanguage.com/, 2015.
[2] Joey BERNARD : Doing astronomy with python. www.linuxjournal.com/, Aoˆ
ut 2015.
[3] Joey BERNARD : General relativity in python. www.linuxjournal.com/, Juillet 2015.
4 janvier 2016 4
Plan de cours IFT 211/IFT 776 – Programmation scientifique en Python Hiver 2016
[4] Jamie CHAN :Python : Learn Python in One Day and Learn It Well. LCF Publishing, 2014.
[5] Allen B. DOWNEY :Think Python 2nd Edition. O’Reilly Media, 2015. Disponible `
a l’adresse :
http ://www.greenteapress.com/thinkpython2/index.html.
[6] Marc FRAPPIER : Normes de r´
edaction et de programmation du d´
epartement. http://
www.usherbrooke.ca/informatique/intranet/ressources-et-documentation/
logiciels-services-outils/normes-de-programmation/, 2005. Aussi disponible sur le
site Web du cours.
[7] Python Sofware FUNDATION : Python tutorial. https://docs.python.org/3/tutorial/, 2015.
[8] Philip GUO : Python tutor. http ://www.pythontutor.com/.
[9] Cody JACKSON :Learning to Program Using Python. 2013. Une version pdf est disponible `
a :
http ://www.onlineprogrammingbooks.com/learning-program-using-python/.
[10] Robert JOHANSSON :Introduction to Scientific Computing in Python. 2014.
[11] Hans Petter LANGTANGEN :A Primer on Scientific Programming with Python. Springer, 2014.
[12] LEARNPYTHON : Learn python. http ://www.learnpython.org/.
[13] Mark LUTZ :Learning Python, 5th Edition. O’Reilly Media, 2013.
[14] Mark LUTZ :Python Pocket Reference, 5th Edition. O’Reilly Media, 2014.
[15] MATPLOTLIB : Matplotlib crash course python tutorial. https ://pythonprogramming.net/matplotlib-graphing-
series/, 2015.
[16] Mark PILGRIM :Dive Into Python 3 2nd Edition. APRESS, 2009. Disponible en ligne ou en pdf `
a l’adresse :
http ://www.diveintopython3.net/.
[17] Lennart REGEBRO : Porting to python 3 : An in-depth guide. www.onlineprogrammingbooks.
com/porting-to-python-3-an-in-depth-guide/, Novembre 2012. voir aussi http://
python3porting.com/.
[18] Nicolas P. ROUGIER : Matplotlib tutorial. http ://www.labri.fr/perso/nrougier/teaching/matplotlib/, 2015.
[19] C. H. SWAROOP : A byte of python. http://www.swaroopch.com/notes/python/. Une version pdf
est disponible `
a : files.swaroopch.com/python/byte of python.pdf.
[20] TUTORIALSPOINT : Python - tutorial. http ://www.tutorialspoint.com/python/, 2015.
4 janvier 2016 5
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !