Acquis d'apprentissage

A l'issue du cours, l'étudiant doit être capable de résoudre des problèmes simples à l'aide d'algorithmes adaptés et de traduire ceux-ci en langage de programmation (Python).  Plus particulièrement, avec la créativité et la rigueur nécessaires, il sera capable de

  • manipuler des variables et des valeurs ;
  • abstraire du code à l'aide de fonctions ;
  • écrire une spécification de fonction et documenter son code ;
  • concevoir des structures conditionelles et les conditions associées ;
  • utiliser des boucles for/while et choisir entre ces deux constructions ;
  • choisir et manipuler une structure de données adaptée au problème ;
  • créer, utiliser et manipuler des fichiers, notamment avec Pickle ;
  • écrire un algorithme simple (minimum, tri, etc.) et caractériser sa complexité ;
  • concevoir un algorithme récursif.


Il doit pouvoir faire preuve d'une compréhension des différents concepts abordés (cf. contenu), c'est-à-dire exprimer avec ses propres mots la théorie et les outils vus au cours et expliquer dans quel contexte ceux-ci sont utiles.  Une maîtrise du langage Python est également attendue.  L'étudiant sera capable de comprendre du code, de le critiquer et d'y apporter les corrections nécessaires.

Contenu

Le but du cours est d'introduire l'étudiant à la programmation, afin qu'il puisse résoudre des problèmes simples à l'aide d'algorithmes adaptés. Les concepts suivants seront progressivement introduits : variables, valeurs, structures conditionelles, fonctions, spécification, boucles for/while, structures de données simples, fichiers, bases d'algorithmique (recherche de minimum, tric, complexité, etc.) et récursion.  Une attention particulière sera donnée à l'utilisation adéquate de chaque concept et à leur illustration à l'aide d'exemples. L'étudiant aura l'ocassion de développer sa créativité et sa rigueur au travers de séances d'exercices. Le cours et les séances d'exercices seront également l'occasion pour l'étudiant de découvrir le langage Python.

Exercices

Les étudiants auront l'occasion de mettre en pratique les connaissances vues au cours théoriques pendant des séances d'exercices.  Une partie des exercices sera réalisée sur papier, tandis que l'autre se fera en pool informatique.  Plusieurs mini-projets seront également réalisés individuellement ou par groupe afin de fixer les connaissances grâce à des énoncés intégrateurs des différentes notions du cours.

Méthode d'évaluation

Le cours est divisé en deux activités d'apprentissage.  La première évalue l'acquisition des compétences et connaissances du cours avec un examen écrit portant sur la théorie et les exercices.  La seconde évalue la capacité d'un étudiant à mettre en oeuvre les compétences et connaissances du cours pour réaliser des petits projets.  Cette évaluation continue repose sur la réalisation de plusieurs mini-projets durant le quadrimestre.  Ces mini-projets seront effectués individuellement ou en groupe et interviendront à part égale pour l'évaluation continue.  La participation aux séances prévues pour ces mini-projets est obligatoire : une absence non-justifiée sera sanctionnée par un 0/20 pour le mini-projet concerné.  L'examen et les mini-projets comptent respectivement  pour 70% et 30% de la note du cours.  Attention, au vu de l'ampleur des mini-projets, il n'est par ailleurs pas possible de les représenter en seconde session.  Avant chaque mini-projet, chaque étudiant passera un test obligatoire pour évaluer sa maître des compétences mobilisées (variables, conditionnelles, etc.).  En cas de lacunes trop importantes (note proche de 0/20) ou si le test n'est pas complété, l'accès au mini-projet sera impossible (entraînant un échec de celui-ci) et une rémédiation sera proposée.  Le reste des étudiants seront répartis en groupes en fonction de leur niveau et se veront offrir une aide adaptée à leur maîtrise de la matière.

Langue d'instruction

Formation Programme d’études Bloc Crédits Obligatoire
Bachelier en sciences informatiques Standard 0 10
Bachelier en sciences informatiques Standard 1 10