L'objectif des missions des cours d'informatique est de vous amener non pas à une maîtrise complète de la programmation en Python, y compris les aspects avancés (ce qui est visé pour la fin du baccalauréat), mais bien à un premier niveau qui vous permettra de résoudre des problèmes de programmation simple.
Chacun des problèmes possède des objectifs spécifiques plus détaillés, qui seront précisés dans les différents énoncés.
Notre intention est de vous faire prendre conscience du fait qu'il ne suffit pas de comprendre ou de connaître, il faut surtout être capable d'utiliser et de mettre en oeuvre toutes les connaissances acquises pour résoudre correctement de véritables problèmes. Pour le dire simplement: les connaissances que vous allez acquérir sont nécessaires, mais pas suffisantes.
Les problèmes d'informatique seront traités selon une variante de l'Apprentissage Par Problèmes (APP). Les buts principaux des problèmes d'informatique sont:
C'est en participant activement à la résolution des problèmes d'informatique que vous vous préparerez effectivement à l'évaluation finale (voir ci-dessous) et, en particulier, au volet mise en oeuvre des connaissances.
Dans cette méthode, le rôle du tuteur est de guider votre travail et votre apprentissage, pas de faire le travail à votre place ! Ne vous étonnez donc pas si le tuteur refuse parfois de répondre à vos questions: c'est sans aucun doute parce qu'il/elle estime qu'il vaut beaucoup mieux que vous cherchiez et trouviez les réponses par vous-mêmes.
Les problèmes d'informatique sont traités selon une variante de l'Apprentissage Par Problèmes (APP) en une alternance de phases et de réunions en groupe :
Le but poursuivi par cette organisation est de permettre à chacun d'entre vous d'atteindre les objectifs spécifiques énoncés pour le semestre et donc de vous préparer de manière efficace à réussir l'examen final. Chaque problème comporte un énoncé, qui présente le contexte du travail à effectuer sous la forme d'une mission à réaliser. A l'issue de chaque mission, chaque étudiant aura acquis de nouvelles connaissances et de nouvelles compétences; chaque groupe d'étudiants aura préparé une série de produits, qu'il aura remis au tuteur conformément aux indications fournies.
Le travail effectué pendant les phases (a) et (b) et pendant les réunions (A) et (B) a pour but
Comme le bon accomplissement de chaque mission exige des connaissances nouvelles, il est impossible d'effectuer correctement ces missions sans un travail de compréhension et d'apprentissage, dont une partie se fait avant la réalisation de la mission, une autre partie se fait pendant cette réalisation et une dernière partie se fait après la fin de la réalisation de la mission.
Réaliser une mission en négligeant le travail de compréhension et d'apprentissage ne permet pas d'atteindre les objectifs assignés au problème: cela ne permet donc pas de se rapprocher des objectifs du cours et donc de l'année.
Le travail de réalisation (c) a un double but:
Le travail de réalisation vous entraîne en vue d'acquérir des compétences qui font partie des objectifs de l'année et qui seront certainement évaluées à l'examen final, à savoir la capacité à écrire des (fragments de) programmes.
Le travail effectué pendant la phase (d) et pendant les réunions (C) et (D) a pour but
Le fait d'analyser son travail et d'en tirer des conclusions permet d'augmenter graduellement l'efficacité de ce travail et donc sa propre productivité. C'est nécessaire, parce que le niveau d'exigences monte tout au long de l'année.
Pour chaque problème, vous vous répartirez en binômes de 2 étudiants, en variant la constitution des binômes de semaine en semaine. Si le groupe compte un nombre impair d'étudiants, un membre différent travaillera seul pour chaque problème.
La raison pour laquelle nous procédons par sous-groupes est que la rédaction et la mise au point de programmes ne peut se faire de manière efficace en groupes de 6, mais est souvent difficile (tout au moins au début) quand on le fait seul. Travailler à deux est une formule qui a montré qu'elle pouvait être efficace (le travail par deux est d'ailleurs un des principes de base d'une approche de la pratique de la programmation appelée XP - Extreme Programming). Le fait de changer d'équipier à chaque fois favorise une meilleure répartition du travail sur le quadrimestre. Attention cependant : la résolution des problèmes doit être l'occasion, pour chaque étudiant, d'apprendre toute la matière visée. Avec ce travail en sous-groupes, le nombre de produits fournis par le groupe pour chaque problème est trop élevé pour que votre tuteur soit en mesure de les examiner et de les corriger tous. Par conséquent, le tuteur choisira lui-même un certain nombre de produits sur lesquels il vous fera ses commentaires.
Toute l'information relative au cours et tous les documents dont vous avez besoin se trouvent sur les sites Moodle des cours LEPL1401 et LINFO1101
https://moodleucl.uclouvain.be
Consultez ces sites fréquemment, de même que votre messagerie UCL, accessible par votre bureau virtuel sur le portail de l'UCL.
Il y a deux types d'évaluations notées qui sont prévues dans le cadre du programme de cette année :
Comme indiqué plus haut, un des buts des problèmes est de vous entraîner à mettre en oeuvre les connaissances acquises. C'est en faisant honnêtement le travail prévu que l'on apprend à exploiter ses connaissances (ou que l'on découvre des faiblesses ou des lacunes).
Pour éviter que l'écriture des programmes ne devienne un but en soi au détriment de la qualité de l'apprentissage, certains des produits fournis pour chacun des problèmes pourront être évalués et notés pour fournir une rétroaction sur le travail fourni, mais ces notes n'interviendront pas dans la note du travail du cours.
Ce document n'aurait pas pu être écrit sans l'aide de nombreuses personnes.
Olivier Bonaventure, Sébastien Combéfis, Damien Leroy et Charles Pecheur ont développé le recueil d'exercices des cours LFSAB1401 Informatique 1 et LSINF1101 Introduction à la programmation, qui ont précédé nos cours et se basaient sur le langage Java. Le présent recueil est largement dérivé de leur travail.
Elie Milgrom et Yves Deville sont les premiers à avoir développé une formule d'apprentissage par problèmes appliquée au premier cours d'informatique donné aux étudiants ingénieurs civils à l'UCL. L'organisation globale du cours et plusieurs problèmes s'inspirent fortement de leur travail. Le cours d'informatique actuel leur doit énormément.
Chaque année, environ 600 étudiants encadrés par une vingtaine de tuteurs et assistants utilisent les APPs du cours d'informatique. Leurs questions, commentaires, remarques, difficultés ont nourri les différents problèmes en nous suggérant de nouvelles questions ou de nouvelles idées de problèmes. Parmi ceux-ci, Benoit Donnet, José Vander Meulen, Jean-Noel Monette et Grégory Detal nous ont donné des commentaires précieux. Maxime De Mol a aidé à la mise en pages.
Plusieurs étudiants ont activement contribué à l'infrastructure informatique utilisée pour ce cours. Bastien Bodart a écrit dans le cadre de son mémoire des suites de tests pour la plupart des missions du cours afin de fournir un feedback rapide aux tuteurs. Anthony Gégo et Guillaume Derval ont construit avec Pierre Reinbold et d'autres le système INGInious qui permet aux étudiants d'écrire du code pour résoudre des exercices et d'avoir un feedback rapide sur le bon fonctionnement de leur code. Durant les Open Weeks organisées chaque été depuis 2015, des équipes d'étudiants, sous la coordination de François Michel, ont développé de nombreux exercices, écrit des suites de tests et développé de nombreuses fonctionalités qui sont maintenant intégrées à INGInious.