plan de cours : ift-1004 -

publicité
PLAN DE COURS
Hiver 2012
IFT-1004 18821 - Introduction à la programmation
Informations générales
Crédits :
Temps consacré :
Mode d'enseignement :
Site Web :
Intranet Pixel :
Enseignant(s) :
Responsable :
Date d'abandon sans échec :
3
3-2-4
À distance
https://cours.ift.ulaval.ca/2012h/ift1004_18821/
https://pixel.fsg.ulaval.ca
Alikacem, Abderrahim [email protected]
Alikacem, Abderrahim [email protected]
19 Mars 2012 à 23h59
Description sommaire
Paradigmes et langages de programmation. Introduction à la résolution de problèmes avec Python. Du
langage interprété, Python, vers un langage compilé et structuré, le langage C. Spécification d'un
problème et décomposition fonctionnelle. Programmation modulaire. Notions de boîte noire,
d'interface, de précondition et de postcondition. Traitement des erreurs et mécanisme de gestion des
exceptions. Récursivité. Introduction à la complexité des algorithmes. Normes de programmation.
Horaire et disponibilités
Classe virtuelle synchrone : Mardi
Mercredi
Vendredi
Disponibilité de l'enseignant :
Mercredi
Aide à l'enseignement :
13h30 à 14h50
12h30 à 13h50
13h30 à 15h30
14h00 à 16h00 PLT-3960
Vendredi 13h30 à 15h30 PLT-3947
(du 9 janv. au 16
avril)
(du 9 janv. au 16
avril)
Objectifs
L'objectif principal de ce cours est de former l'étudiant aux notions de base de la programmation
moderne afin qu'il puisse solutionner des problèmes reliés à sa discipline, avec comme support un
langage interprété et non typé, Python, et un langage compilé et typé, le C. Les « bonnes manières »
1/13
d'utilisation de ces langages seront présentées tout au long du cours dans un souci de concision,
d'efficacité, et de lisibilité du code. Chaque langage sera étudié suivant ses spécificités qui font sa
force. De plus, des méthodes d'interfaçage entre Python et le langage C seront présentées afin de tirer
le maximum de ces 2 langages du point de vue efficacité dans la conception d'un programme.
De plus, ce cours fournira une vision différente de la programmation qui ne doit pas être réduite à son
aspect purement syntaxique, souvent déroutant pour un débutant. Un bon programmeur doit certes
maîtriser les aspects techniques de la programmation mais une approche algorithmique doit
impérativement précéder la réalisation de tout projet d'envergure. Ce sera notre démarche tout au long
du cours.
Ce cours s'adresse à tout étudiant qui devra, au cours de sa carrière professionnelle, participer à
l'élaboration de logiciels, que ce soit comme informaticien ou non.
Objectifs spécifiques
À l'issue de ce cours, l'étudiant sera en mesure de:
1. résoudre des problèmes de programmation en maniant efficacement les éléments fondamentaux de
procédure:
a) les blocs séquentiels,
b) conditionnels,
c) et répétitifs;
2. programmer avec des structures de données de base;
3. effectuer la décomposition fonctionnelle d'un problème;
a) notion de fonctions et passage de paramètres;
b) de spécification des fonctions à l'aide des commentaires spécialisés;
c) de modules,
d) de gestion des exceptions,
e) de tests unitaires.
4. adopter et de respecter des normes de programmation;
5. produire la documentation automatisée de programmes à l'aide d'outils dédiés;
6. juger l'efficacité de la performance des programmes et de leur qualité;
7. acquérir les bases de Python et disposer d'une bonne vue d'ensemble de ces modules ;
8. maîtriser tous les mécanismes nécessaires au développement d'applications avec Python;
9. acquérir les bases de la programmation en langage C, norme ANSI C99;
10. maîtriser les spécificités du C que sont les pointeurs et la gestion dynamique de la mémoire;
11. développer le reflexe de faire du prototypage de programmes avec Python;
12. concevoir des interfaces en Python vers le langage C pour des fins d'optimisation.
2/13
Contenu
Le contenu du cours est étalé sur les 15 semaines que compte la session. Les cinq premières semaines
sont consacrées entièrement à la programmation avec le langage Python. En effet, nous sommes
persuadés qu'il n'y a pas mieux que commencer avec ce langage car il est très simple à apprendre et
d'une manière générale très intuitif qui font que rapidement vous commencerez à développer des
programmes relativement complexes. En effet, au lieu de s'attarder à apprendre un langage avec, entre
autres, une syntaxe lourde, ce qui n'est pas le cas de Python, ceci nous permettra de nous concentrer
sur l'activité qu'est la programmation, ses besoins, ses méthodes ainsi que ses normes. Avec Python,
nous préciserons alors une méthodologie de résolution de problèmes afin de produire des solutions
sous forme de programmes complets, robustes et efficaces.
Durant les six semaines suivantes, nous découvrirons les bases de la programmation en C. Dans une
activité de programmation, Python est souvent dédié au prototypage d'une solution vu sa rapidité de
mettre en oeuvre une solution. Cependant, ce langage est reconnu pour ne pas produire des
programmes rapides, et la rapidité de l'exécution d'un logiciel est primordiale dans beaucoup de
situations. Les langages C (et C++) sont eux reconnus pour la production de solutions plus efficace en
termes de temps d'exécution. Il s'agit donc d'apprendre le C pour une alternative pour offrir une
solution à la performance d'un logiciel malgré que c'est plus ardu de produire un programme en C
qu'en Python. De plus, nous verrons dans la semaine 13 suivant le semainier, des techniques qui
permettent d'interfacer le langage C avec Python, c'est-à-dire comment produire des "colles" qui
permettent de lier des instructions en langage C avec ceux de Python. Ainsi, un développeur pourra
utliser Python pour construire un logiciel et le langage C pour coder les parties qui nécessient plus de
performance dans le temps d'exécution.
La dernière semaine est dédiée à une introduction à la programmation par objet en C++, un paradigme
de programmation assez différent de celui utilisé à date. Le langage C++ est une extension du langage
C qui permet de pratiquer ce nouveau paradigme de production de logiciels.
Enfin, nous profitons pour rappeler que l'accomplissement des travaux pratiques est une activité vitale
dans le cadre de notre cours. C'est pourquoi le travail qu'ils impliquent est considérable. N'hésitez
surtout pas à nous contacter si vous avez de la difficulté dans votre apprentissage. La clé de la réussite
est de réagir vite, i.e. contacter votre enseignant, dès qu'une difficulté surgira, peu importe sa nature.
Dans tous les cas, votre enseignant est entièrement à votre entière disposition pour vous aider à
comprendre la matière et à réaliser vos travaux pratiques et autres exercices.
Voici la description des 15 semaines qui compose le cours. Vous trouverez sur le site Web du cours,
dans la section Semainier, le contenu très détaillé du travail à faire et autres activités hebdomadaires.
Semaine 1- Introduction
Programmation et ordinateur. Environnement matériel et logiciel. Langage machine, de
programmation. Les langages de programmation. Compilation et interprétation. Travail de l'analyste
programmeur. Mise au point d'un programme et recherche des erreurs. Exigence du génie logiciel.
Performance algorithmique et temps de production d'une solution. Justification du choix des langages
de programmation utilisés dans le cours.
Semaine 2- Premiers pas avec Python - Énoncés et syntaxe
Environnement de développement. Données et variables.Affectation. Afficher la valeur d'une variable:
la fonction print(). Interaction avec l'utilisateur : la fonction input(). Typage dynamique des variables.
Opérateurs arithmétiques, relationnels et logiques. Priorité des opérations. Expressions, composition et
3/13
séquences d'instruction. Structures de contrôle: Sélection et Énoncés répétitifs. Importer un module de
fonctions prédéfinies. Les fichiers scripts Python. Utilisation de l'aide help() dans l'interpréteur
Python.
Semaine 3- Les types de données dans Python
Les types numériques. La bibliothèque mathématique. Le type string. Les instructions is et in.
L'instruction for…in. Les listes. La fonction range(). Aliasing. Référence vs copie. Les tuples. Les
dictionnaires. Les ensembles. Les fichiers. Écriture et lecture séquentielle dans un fichier texte. Le
module pickle de Python. La programmation orienté objet en tant qu'utilisateur.
Semaine 4- Fonctions et récursivité dans Python
Fonctions dans Python. Fonction avec et sans paramètres. Typage des paramètres. L'instruction return.
Arguments par défauts. Arguments avec étiquettes. Variables locales et globales.Portée des variables.
Usine à fonctions.Forme * et **. Fonctions anonymes (énoncé lambda). Fonctions génératrices
(énoncé yield). Définition récursive d'un problème. Technique: diviser pour régner. Récursion,
conditions d'arrêt et convergence. Efficacité et inefficacité des algorithmes récursifs.
Semaine 5- Modules, gestion des exceptions, normes de programmation et complexité
algorithmique
Créer et tester ses modules. Architecture d'un programme Python. L'espace des noms. Groupe de
modules (package). Les modules standards de Python. Gestion des exceptions. Les énoncés try /
except, else et finally. Lever une exception. Les énoncés as et assert. Principales classes d'exception
dans Python. Complexité algorithmique. Mesure de la complexité d'un algorithme. Notation O
(big-oh). Comparaison entre les classes de complexité. Normes de programmation. La documentation
automatisée.
Semaine 6- Langage C - Éléments de programmation de base
Représentation et typage des données. Déclaration et utilisation des variables. Les types entier, réel et
caractère. Les constantes explicites et symboliques. L'affectation. Les opérateurs arithmétiques,
relationnels et logiques. Les expressions et leur évaluation. Instructions et séquencement. Les
alternatives (structures sélectives). Les boucles (structures itératives). Conversion de types. Les
entrées/sorties. Fichiers de caractères. Structure d'un programme sans fonctions.
Semaine 7- Langage C - Fonctions et pointeurs
Les fonctions en langage C. Définition et prototype. Spécification à l'aide de commentaires. Variables
locales et pile d'exécution. Le type void. Passage de paramètres par valeur. Les pointeurs. Notion
d'adresse mémoire. Adresse d'une variable. Adresse et pointeur. Opérateurs * et &. Passage de
paramètres dans une fonction par adresse. Gestion des exceptions à l'aide d'un pointeur.
Semaine 8- Normes et programmation modulaire en C
Programmation modulaire. Les commentaires de spécification dans un programme. Spécifications
d'implémentation. Spécifications d'interface. Fiabilisation des programmes et gestion des exceptions.
Normes de programmation.
Semaine 9- Semaine de lecture
4/13
Semaine 10- Les types composés en langage C (première partie)
Les tableaux à une dimension en langage C. Déclaration et utilisation. Les tableaux comme paramètre
d'entrée et de sortie de fonction. Les tableaux à plusieurs dimensions. Chaînes de caractères en C.
Représentation en mémoire des chaînes de caractères. Fonctions portant sur les chaînes de caractères.
Semaine 11- Les types composés en langage C (deuxième partie)
Enregistrements. Déclaration de structs. Notation pointée et l'accès aux structs. structs en paramètres
d'entrée et comme valeur de sortie d'une fonction. Introduction à la modélisation de données à l'aide de
structs. Les fichiers typés ou binaires.
Semaine 12- Pointeurs avancés - Gestion dynamique de la mémoire
Pointeurs. Arithmétique des pointeurs. Utilisations des pointeurs. Outils pour la gestion dynamique de
la mémoire. Listes simplement chaînées.
Semaine 13- Interfaçage C - Python
Motivations. Performances Python vs. C. Interfaçages Python – C: utilisation des modules ctypes et
SWIG. Langage Cython. Exemple d'application. Comparaison quantitative des 3 techniques.
Semaine 14. Du langage C au C++
Du C au C++. Espace de nommage. Les références. Surcharge de fonctions et arguments par défaut.
Notion de classe. Constructeurs et destructeur. Constructeur par copie. Surcharge d'opérateurs. Gestion
des exceptions.
Semaine 15- révision générale
Modalités d'évaluation
Heure
Pondération de
la note finale
09h00 à 11h50
30.00%
Une feuille manuscrite recto-verso
Examen final Samedi 21 avril 2012 09h00 à 11h50
30.00%
Une feuille manuscrite recto-verso
Examen
Date
Examen intra Samedi 3 mars 2012
Travail
Équipes
Document(s) autorisé(s)
Date
Heure
Pondération de
la note finale
TP#1
1à2
Lundi 30 janvier 2012
17h00
4.00%
TP#2
1à2
Mercredi 8 février 2012
17h00
4.00%
TP#3
1à2
Mardi 21 février 2012
17h00
7.00%
TP#4
1à2
Mercredi 14 mars 2012
17h00
8.00%
TP#5
1à2
Mercredi 4 avril 2012
17h00
8.00%
5/13
Évaluation de l'enseignement
TP#6
Individuel
Vendredi 13 avril 2012
00h00
1.00%
1à2
Vendredi 20 avril 2012
17h00
8.00%
Politiques sur les examens
Les étudiants qui ont une lettre d'Attestation d'accommodations scolaires obtenue auprès d'un
conseiller du secteur Accueil et soutien aux étudiants en situation de handicap (ACSESH)
doivent compléter un rapport d'anomalie sur Pixel à cet effet au début de la session. Les étudiants
doivent également rencontrer leur professeur au début de la session afin que des mesures
d'accommodations en classe ou lors des évaluations puissent être prévues et planifiées suffisamment à
l'avance puis mises en place. Ceux qui ont une déficience fonctionnelle ou un handicap, mais qui n'ont
pas cette lettre doivent contacter le secteur ACSESH au 656-2880 le plus tôt possible.
Les étudiants inscrits dans un cours à distance et résidant, durant leurs études, à plus de 100 km de la
ville de Québec doivent procéder à l'inscription pour le lieu d'examen au plus tard le 23 janvier à
l'adresse suivante : www.distance.ulaval.ca/lieu_examen
Concernant une absence à un examen, le plus rapidement possible, et ce dans un délai maximal de 3
jours ouvrables l'étudiant doit utiliser le formulaire Web à cet effet qu'il ou elle trouvera sur son
guichet étudiant. Sans quoi, une note de 0 sera automatiquement allouée pour cet examen.
Seuls motifs acceptables pour s'absenter à un examen :
1. incapacité pour l'étudiant de passer l'examen durant la plage horaire de cet examen, à
être mentionné comme tel par un billet précis d'un médecin (incluant les coordonnées de ce
dernier), suite à une consultation médicale. Ce billet doit être présenté à la direction du
département (tel qu'indiqué dans les instructions associées au formulaire Web à remplir), qui
le déposera au dossier de l'étudiant. L'enseignant n'intervient pas dans ce processus mais en est
informé automatiquement, d'où la nécessité pour l'étudiant de remplir ce formulaire Web
le plus rapidement possible, car dans l'attente, une note de 0 est automatiquement attribuée
à l'étudiant pour cette épreuve.
2. mortalité d'un proche, à être documenté par une preuve de décès de la personne et une lettre
d'une tierce personne attestant du lien de parenté ou autre entre l'étudiant et la personne
décédée. Ces pièces doivent également être présentées à la direction du département (tel
qu'indiqué dans les instructions associées au formulaire Web à remplir). L'enseignant
n'intervient pas dans ce processus mais en est informé automatiquement, d'où la nécessité
pour l'étudiant de remplir ce formulaire Web le plus rapidement possible, car dans
l'attente, une note de 0 est automatiquement attribuée à l'étudiant pour cette épreuve.
Aucune justification d'absence reliée à des événements sportifs (sauf pour les athlètes du
Rouge et Or ou d'équipes nationales, sur approbation préalable de la direction du
Département), à un travail, à un conflit d'horaire avec d'autres cours ou examens, à des
horaires de voyage conflictuels (selon des billets d'avion déjà achetés par exemple), ou à des
motifs religieux quelconques n'est acceptable. Les conflits d'horaire doivent être résolus au
tout début de la session, avant la fin de la période de modification de choix de cours, par
l'étudiant lui-même. Un étudiant inscrit à l'un de nos cours après cette date est réputé ne pas
avoir de conflit d'horaire pour passer ses examens.
Toute absence justifiée à un examen entraîne l'obligation pour l'étudiant de passer un examen
6/13
reporté. Un seul examen reporté aura lieu pour ce cours et il s'agira d'un examen récapitulatif.
Cet examen se déroulera normalement durant le week-end (soit entre le vendredi après-midi et
le dimanche soir) de la première semaine de cours de la session académique suivante.
L'étudiant a l'obligation de se rendre disponible à cette date, sans quoi il obtiendra la note
de 0 pour cet examen. Les examens reportés de l'automne 2011 auront lieu le samedi 14
janvier 2012, ceux de l'hiver 2012 doivent avoir lieu le samedi 5 mai 2012 et ceux de l'été
2012 devraient normalement avoir lieu le samedi 8 septembre 2012. Les examens de reprise
n'auront lieu qu'à l'Université Laval pour les cours à distance.
Politiques sur les travaux
• Dans le cadre d'un travail, toute communication entre équipes est strictement défendue.
• Toute personne prise à plagier, à tricher, activement ou passivement, ou à contrevenir aux
directives données dans le cadre d'un examen ou d'un travail noté et contributoire à la note
finale du cours, peu importe la pondération attribuée à l'examen ou au travail en question, fera
face aux conséquences de ses gestes, qui peuvent aller jusqu'à l'exclusion de son programme
de formation. Une politique stricte de tolérance zéro est appliquée en tout temps et sous toutes
circonstances. Tous les cas seront référés à la direction du Département.
• L'étudiant trouvera sur son guichet étudiant la politique départementale relative aux examens;
il ou elle est réputé(e) en avoir pris connaissance.
Consignes sur les examens
• L'horaire ainsi que l'endroit exacts où se dérouleront les examens vous seront communiqués
par voie postale dans les semaines à venir. Ces renseignements seront mis également sur le
site Web du cours.
• Lors des examens, seulement une feuille aide mémoire manuscrite recto-verso sera autorisée.
• Les calculatrices ainsi que les ordinateurs portables seront interdits lors des examens. Toute
révision de note devra être demandée au professeur dans un délai de 10 jours ouvrables après
l'affichage des résultats d'un examen.
Il est important de noter que vous devrez passer votre examen en salle, sous surveillance, dans une
ville désignée. Québec et probablement Montréal font partie de ces villes, mais d'autres se rajouteront
en cours de session lorsque nous connaitrons la provenance exacte de notre clientèle. Prévoyez donc
un déplacement d'au plus 150 km (pour l'aller seulement) pour vous rendre à l'une ou l'autre de ces
villes, et ce, deux fois durant le trimestre.
Pour les personnes dont le lieu de résidence sera plus loin que 150 km de toutes les villes désignées,
vous devrez vous identifier le plus tôt possible (durant la semaine suivant la publication de la liste des
7/13
villes désignées) auprès du Bureau de l'Enseignement à Distance. Dans ce cas, vous aurez à trouver un
répondant qui vous fera passer les examens dans les mêmes conditions que celles prévalant dans les
salles de classe. C'est à dire que vos examens devront être passés exactement dans les mêmes plages
horaires que ceux passés en classe, et qu'ils devront être sous surveillance d'un répondant, qui agira à
titre de surveillant, et à qui nous aurons préalablement envoyé le questionnaire d'examen. Il sera
chargé d'appliquer la même procédure que celle suivie en classe, et devra nous retourner les cahiers
réponse le plus rapidement possible.
Ce répondant doit toutefois être soumis à une procédure d'accréditation, i.e., que le Bureau de
l'Enseignement à Distance et le professeur responsable du cours doivent approuver votre choix. Les
critères d'accréditation vous seront transmis sur demande. Si tel est votre cas, nous vous conseillons de
procéder à la recherche d'un répondant le plus tôt possible afin de vous éviter de mauvaises surprises.
Vous devez donc contacter le Bureau de la formation à Distance, au (418) 656 3202 ou au 1 877 785
2825 (poste 3202), à ce sujet, le plus rapidement possible dès que vous savez que vous aurez besoin
d'un répondant. Il serait malheureux que vous ayez cherché et trouvé une personne qui ne corresponde
pas aux critères d'accréditation.
Important :
Il est à noter que les examens reportés suite à toute absence justifiée ne seront en aucun cas moins
difficiles que les examens réguliers.
Consignes sur les travaux
Tous les travaux doivent être remis selon les modalités décrites à la fin de l'énoncé de chaque travail
pratique à réaliser, les énoncés seront publiés sur le site Web du cours. Nous insistons ici pour vous
rappeler que l'accomplissement des travaux pratiques est une activité vitale à l'apprentissage en
informatique. C'est pourquoi les travaux pratiques que vous devrez rendre pour correction sont
importants, et donc volumineux.
Remarques
• Tout travail pratique non remis dans les délais prévus se verra pénalisé suivant les modalités
qui seront indiquées dans l'énoncé du travail pratique (la date et l'heure d'échéance seront
indiquées sur l'énoncé du travail)
• Toute révision de note devra être demandée au professeur dans un délai de 10 jours ouvrables
après la remise du travail corrigé.
• Les TP doivent être envoyés via le lien "remise de travaux" du site Web qui vous redirige vers
votre guichet étudiant (aucune remise par courriel n'est tolérée).
Échelle des cotes (cycle 1)
Échelle des cotes
A+ [ 90.00 - 100 ]
A [ 86.00 - 89.99 ]
A- [ 82.00 - 85.99 ]
Réussite
B+ [ 80.00 - 81.99 ]
B [ 77.00 - 79.99 ]
B- [ 74.00 - 76.99 ]
Réussite
C+ [ 72.00 - 73.99 ]
C [ 69.00 - 71.99 ]
C- [ 65.00 - 68.99 ]
Réussite
D+ [ 61.00 - 64.99 ]
D [ 60.00 - 60.99 ]
Réussite
8/13
E [ 0.00 - 59.99 ]
Échec
Abandon sans échec
(dans les délais prévus)
X
Politique sur les cotes
L'enseignant se réserve le droit d'ajuster quelque peu cette répartition des cotes afin de réfléter
l'évaluation juste des étudiants du cours.
La note de passage est de 60%. La révision de cote se fera selon les règlements du premier cycle.
Méthodologie
Le cours est conçu selon une approche pédagogique répondant aux besoins spécifiques du programme
d'informatique offert à distance. Le matériel didactique et la formule utilisée vous permettent d'adopter
une démarche d'apprentissage semi-autonome. Vous devez en effet gérer votre temps d'étude et
prendre en charge votre formation. Vous pouvez communiquer avec votre enseignant par courrier
électronique en tout temps.
Activités d'apprentissage
Des indications sur ce découpage hebdomadaire de la matière à étudier se trouve dans la rubrique
Semainier sur le site Web du cours. Vous y trouverez des informations très détaillées sur le travail à
faire à chaque semaine. Bien que vous devriez déterminer vous-même la façon de procéder qui vous
conviendra le plus, nous vous suggérons de prendre connaissance dans le semainier à chaque début de
semaine :
• des objectifs de la semaine concernée;
• des activités à faire dans la semaine;
• de prendre connaissance des exercices, problèmes et éventuellement du travail pratique à
effectuer.
Dans le courant de la semaine, il est très important de:
• de faire toutes les lectures proposés;
• de suivre le cours en direct sur la plateforme Elluminate, tout au moins le suivre en différé;
• d'effectuer les laboratoires et autres exercices proposés;
• de revoir les objectifs de la semaine;
• de consulter régulièrement le site Web du cours, au moins 3 fois par semaine, principalement
la section des nouvelles. Le site Web pourrait être mis à jour plusieurs fois par semaine.
Il est très important de faire vos lectures avant d'assister au cours sur Elluminate, elles vous auront
familiarisé avec les notions abordées durant la séance. Vous les comprendrez donc plus facilement et
vous serez plus attentif. Les questions que vous poserez seront aussi plus profitables.
Mode de diffusion du cours
Ce cours d'introduction à la programmation est offert dans un mode de diffusion hybride, à savoir :
• des séances de formation en mode synchrone, ce que permet le serveur Elluminate (lundis
13h30-15h50, mercredis 14h30-16h50).
9/13
• de l'auto-apprentissage en mode asynchrone, à partir de matériel disponible sur la plate-forme
intranet Pixel-Typo3 de la Faculté des sciences et génie
Le matériel disponible sur le site Web du cours est autosuffisant, en ce sens qu'il contient tout ce qu'il
faut pour réussir ce cours à distance : textes et exposés, démonstrations, exemples, exercices, etc. À
chaque semaine, vous devrez lire les textes appropriés. Pixel vous offre aussi un outil de dépôt de vos
travaux électroniques. Malgré la possibilité de communiquer par courriel avec le professeur ou le
chargé d'enseignement pendant le cours, il reste qu'il est parfois difficile d'expliquer certaines notions
ou d'apporter des solutions nuancées aux problèmes rencontrés par les étudiants.
C'est pourquoi le mode de communication synchrone est offert. Cette mesure consiste en des séances
de formation données à chaque semaine par le professeur, séances auxquelles on peut assister en
direct (en mode synchrone) ou en différé (écoute de l'enregistrement). Ces séances vous permettront
d'assister au cours de votre professeur tout en visualisant le matériel qu'il aura préparé à cet effet,
matériel qui servira tantôt à présenter les notions théoriques, tantôt à expliquer, tantôt à démontrer des
procédés et des façons de faire. En direct, vous pourrez aussi poser des questions, à l'aide d'un
microphone si vous en avez un, ou par clavardage. En différé, vous aurez la possibilité de réécouter la
séance enregistrée, ce qui peut s'avérer très utile si vous ne pouvez vous rendre disponible au moment
de la séance de formation.
Pour savoir comment assister aux séances de formation en direct ou en différé sur Elluminate, visitez
la section À Propos Du Cours/Plateforme Elluminate sur le site Web du cours.
Laboratoires hebdomadaires
Les activités de laboratoire sont accessibles à partir du semainier sur le site Web du cours. Ils sont
destinés à vous permettre de progresser directement dans votre atteinte de l'objectif du cours et ils sont
supposés vous offrir une rétroaction sur votre compréhension des lectures. Il s'agit principalement de
mettre en pratique les concepts que l'on vous enseigne dans le cours et vous devriez être en mesure d'y
répondre après avoir fait vos lectures et suivi le cours sur Elluminate. Des Travaux dirigés d'une durée
de 1h50, sont prévus chaque vendredi de 14h30 à 16h20 pour vous aider à réaliser les exercices
proposés et de répondre à vos questions.
Travaux pratiques
Les travaux pratiques sont destinés à vous permettre de progresser directement dans votre atteinte de
l'objectif du cours et de mettre en pratique les connaissances que l'on vous enseigne. Ces travaux
pratiques, au nombre de quatre, sont obligatoires et leur énoncé sera affiché en temps opportun sur le
site Web du cours. Vous devez planifier vos activités de façon à remettre vos travaux à temps.
Autres exercices et résolution de problème sur les lectures
En dehors des laboratoires, des exercices suppléemtaires vous sont proposés, ils sont destinés en
premier lieu, aux personnes qui ont plus de difficultés à atteindre les objectifs du cours; en deuxième
lieu, aux personnes qui veulent augmenter d'une façon sensible leur habileté à résoudre des problèmes.
Leur énoncé ainsi que la solution de certains d'entre eux sont disponibles sur le site Web du cours. Il
est très important d'essayer de trouver sa propre solution d'un exercice donné avant de consulter la
solution proposée. Notez également que vous pouvez soumettre votre solution à votre professeur, en
attachement à un courriel, il vous la corrigera et commentera.
Mode d'encadrement
Le calendrier proposé dans le semainier permet d'adopter un rythme d'apprentissage régulier dès le
début de la session. La personne inscrite reste bien sûr la seule gestionnaire de son temps, mais elle
s'engage à effectuer les examens aux moments prescrits. Vous bénéficierez aussi pendant la session
d'une rétroaction de votre enseignant pouvant emprunter différentes voies : la rétroaction écrite, le
10/13
courrier électronique.
Il est à noter qu'étant donné le très grand volume de courrier à traiter quotidiennement, il se peut que
vous n'obteniez une réponse à l'une de vos questions que quelques jours ouvrables après avoir envoyé
votre message. Dans ces cas, nous apprécierons votre compréhension. Nous vous recommandons
toutefois de ne pas attendre à la dernière minute pour nous contacter; SVP planifiez ce délai lorsque
vous nous envoyez un message. De plus, afin d'éviter des délais supplémentaires, il est recommandé
d'être explicite dans vos questions et commentaires (ex. : spécifiez les noms des documents et les
pages auxquelles vous vous référez), de vous identifier (nom prénom, matricule) pour permettre une
réponse personnalisée et d'utiliser l'adresse courriel suivante:
[email protected]
Logiciels
L'interpréteur Python 3, en ce qui à trait à la programmationen Python, et les logiciels Visual Studio
2008/2010 (Windows) et Eclipse (Windows et Linux), pour ce qui concerne la programmation en
C/C++, sont les compilateurs officiels dans le cadre de notre cours. Les étudiants peuvent utiliser
d'autres environnements de programmation que ceux cités. Dans tous les cas, la réalisation de
programmes portables surtout en ce qui concerneles langages C/C++ est une des exigences dans le
cours. Pour plus de détails, rendez-vous sur le sit Web du cours, section Documentation.
Bibliographie
Python
• Mark Lutz, Learning Python, 4th Edition, O'Reilly Media Inc. 2009,
http://oreilly.com/catalog/9780596158071/
• Référence en ligne: Mark Pilgrin, Dive into Python 3, http://diveintopython3.org/ .
• Documentation en-ligne: Python.org, langage Python 3, http://docs.python.org/py3k/index.html .
Langage C
• Hanly, J.R., Koffman, E.B. (2007), Problem Solving and Program Design in C. Addison-Wesley,
http://www.pearsonhighered.com/educator/product/Problem-Solving-and-Program-Design-in-C/9780321409911.page
• Deitel, H.M. & Deitel, P.J. (2007). C How to program, 5th Edition, Prentice Hall,
http://www.deitel.com/Books/C/CHowtoProgram5e/tabid/1704/Default.aspx.
• Références en ligne: Developpez.com, cours et tutoriels: le langage C,
http://c.developpez.com/cours/?page=lang-c#cours-c .
Manuel de cours
• Swinnen, G. Apprendre à programmer avec Python 3. 4ième édition, avril 2010.
• Alikacem, A. Introduction à la programmation en C. Version automne 2011.
Ces 2 manuels peuvent être téléchargés librement à partir du site Web du cours, section
11/13
Documentation.
Politique sur l'utilisation d'appareils électroniques pendant une séance d'évaluation
L'utilisation d'appareils électroniques (cellulaire ou autre appareil téléphonique sans fil, pagette,
baladeur, agenda électronique, etc.) est interdite au cours d'une séance d'évaluation et de toute autre
activité durant laquelle l'enseignant l'interdit.
De plus, seuls certains modèles de calculatrices sont autorisés durant les séances d'évaluation.
Pour l'année 2011-2012, les modèles suivants sont autorisés :
Hewlett Packard
Texas Instrument
Sharp
HP 20S, HP 30S, HP 32S2, HP 33S, HP 35S
TI-30Xa, TI-30XIIB, TI-30XIIS, TI-36X, BA35
EL-531*, EL-546*, EL-520*
FX-260, FX-300 MS, FX-300W Plus, FX-991MS,
Casio
FX-991ES
* Calculatrices Sharp: sans considération pour les lettres qui suivent le numéro
Dans tous ces cas, la calculatrice doit être validée par une vignette autocollante émise par la COOP
étudiante ZONE.
Information spécifique aux étudiants de l'École d'actuariat
Les calculatrices autorisées lors des examens sont uniquement les modèles répondant aux normes de la
Society of Actuaries et de la Casualty Actuarial Society pour leurs examens, soit les modèles Texas
Instruments suivants :
• BA-35 (solaire ou à pile)
• BA II Plus
• BA II Plus Professional
• TI-30Xa
• TI-30X II (IIS ou IIB)
• TI-30X MultiView (XS ou XB)
Politique sur le plagiat et la fraude académique
Règles disciplinaires
Tout étudiant qui commet une infraction au Règlement disciplinaire à l'intention des étudiants de
l'Université Laval dans le cadre du présent cours, notamment en matière de plagiat, est passible des
sanctions qui sont prévues dans ce règlement. Il est très important pour tout étudiant de prendre
connaissance des articles 28 à 32 du Règlement disciplinaire. Celui-ci peut être consulté à l'adresse
suivante:
http://www.ulaval.ca/sg/reg/Reglements/Reglement_disciplinaire.pdf
Plagiat
Tout étudiant est tenu de respecter les règles relatives au plagiat. Constitue notamment du plagiat le
fait de:
i)
copier textuellement un ou plusieurs passages provenant d'un ouvrage sous format papier ou
électronique sans mettre ces passages entre guillemets et sans en mentionner la source;
12/13
ii)
résumer l'idée originale d'un auteur en l'exprimant dans ses propres mots (paraphraser) sans
en mentionner la source;
iii)
traduire partiellement ou totalement un texte sans en mentionner la provenance;
iv)
remettre un travail copié d'un autre étudiant (avec ou sans l'accord de cet autre étudiant);
v)
remettre un travail téléchargé d'un site d'achat ou d'échange de travaux scolaires.
13/13
Téléchargement