Programme des cours 2022-2023
BINV1010-1  
Algorithmique
  • Algo : théorie
  • Algo : exercices
Durée :
Algo : théorie : 24h Th
Algo : exercices : 48h Pr
Nombre de crédits :
Bachelier en informatique de gestion6
Nom du professeur :
Algo : théorie : Annick DUPONT
Algo : exercices : Annick DUPONT
Coordinateur(s) :
Annick DUPONT
Langue(s) de l'unité d'enseignement :
Langue française
Organisation et évaluation :
Enseignement au premier quadrimestre, examen en janvier
Unités d'enseignement prérequises et corequises :
Les unités prérequises ou corequises sont présentées au sein de chaque programme
Contenus de l'unité d'enseignement :
Apprendre les fondements de la programmation structurée:


  • variables
  • alternatives
  • boucles
  • tableaux
Développer un raisonnement logique et algorithmique.   Voir quelques algorithmes incontournables.   La programmation orientée objet sera utilisée, mais ses fondements seront présentés dans une autre UE.   Le langage utilisé sera le Java.
Algo : théorie
- Les notions de base : programme, input, output, variable, ... - Les méthodes - Les alternatives - Les répétitives - Les tableaux à une dimension - Les algorithmes classiques sur les tables - Les algorithmes de tri - Les tableaux à plusieurs dimensions
Algo : exercices
Cf. BINV1010 A - Théorie.
Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement :
  • Fournir du code correct, performant, lisible et qui correspond exactement à ce qui est demandé dans un énoncé donné en français.
  • Tester son code en constituant un jeu de tests pertinents.
  • Choisir de façon pertinente le nom des variables, méthodes et classes pour obtenir du code auto-commenté.
  • Choisir le type des répétitives de façon adaptée au contexte.
  • Lire du code manipulant des variables : initialisation, assignation, utilisation dans une expression et en déduire l'état de ces différentes variables suite à son exécution.
  • Ecrire du code manipulant des variables : initialisation, assignation, utilisation dans une expression de façon à répondre à un problème exprimé en français.
  • Construire une expression booléenne correspondant à une condition exprimée en français.
  • Lire du code contenant une ou plusieurs alternatives (imbriquées ou pas) : Déduire quelle branche sera exécutée  - Déduire l'état des différentes variables
  • Construire de façon correcte et claire une alternative et pouvoir les imbriquer :   Trouver la/les conditions booléennes correspondantes au problème                        exprimé en français - Pouvoir écrire la condition inverse
  • Ecrire une séquence d'instructions de façon à résoudre un problème exprimé en français.
  • Lire du code contenant une ou plusieurs répétitives (imbriquées ou pas) :  Déduire quand le corps de l'alternative sera exécuté et quand on en sortira - Exprimer dans les cas simples la condition à l'intérieur de la boucle (invariant) - Exprimer dans les cas simples la condition à la sortie de la boucle (post condition)
  • Construire de façon correcte et claire une répétitive et pouvoir les imbriquer : Déduire à partir d'un énoncé en français - Trouver la/les conditions booléennes correspondantes - Les initialisations de variable à effectuer avant d'entrer dans la boucle - Le traitement à effectuer dans le corps de la boucle
  • Lire du code mettant en œuvre le mécanisme d'appel de méthode : passage de paramètres, variables locales, valeur de retour : Déduire les valeurs des variables lors de l'appel - Déduire les valeurs des variables après l'appel - Détecter les cas d'erreurs
  • Mettre en œuvre le mécanisme d'appel de méthode : passage de paramètres, variables locales, valeur de retour.
  • A partir d'un énoncé en français             - Subdiviser un problème en sous-problèmes             - Associer chacun de ces sous problèmes à une méthode             - Identifier les paramètres à passer aux méthodes             - Identifier ce que doivent retourner les méthodes             - Ecrire chaque méthode 
  • Lire du code manipulant des tableaux : initialisation, assignation, utilisation dans une expression et en déduire l'état de ces différentes variables suite à son exécution.
  • Ecrire du code manipulant des tableaux : initialisation, assignation, utilisation dans une expression de façon à répondre à un problème exprimé en français.
  • Comprendre et adapter les algorithmes donnés sur les tableaux non triés afin de répondre à un énoncé en français : Recherche d'un élément - Insertion d'un élément - Suppression d'un élément - Calculs simples (moyenne etc)
  • Comprendre et adapter les algorithmes donnés sur les tableaux triés afin de répondre à un énoncé en français : Algorithme de tri - Recherche d'un élément - Insertion d'un élément - Suppression d'un élément 
  • Trouver soi-même des algorithmes efficaces sur les tables.
Compétence(s) - Capacité(s): C1 - S'insérer dans son milieu professionnel et s'adapter à son évolution CA1.2 -Collaborer à la résolution de problèmes complexes avec méthode, rigueur, pro activité et créativité C3 - Mobiliser les savoirs et les savoir-faire propres à l'informatique de gestion CA3.1 -Concevoir, implémenter et maintenir des algorithmes répondant aux spécifications et fonctionnalités fournies CA3.4 -Concevoir, implémenter, administrer et utiliser avec maîtrise un ensemble structuré de données C4 - Analyser les données utiles à la réalisation de sa mission en adoptant une démarche systémique CA4.4 -Prendre en compte la problématique de sécurité des applications   Acquis d'apprentissage(s) terminaux visé(s): - Acquis d'apprentissage terminaux : AAT1. Concevoir des solutions informatiques efficaces qui répondent à des problèmes en maitrisant les structures de données véhiculées. C1-CA1.2 ; C3-CA3.1 et CA3.4 ; C4-CA4.4 * PROGRAMMATION ( AAT1) - Acquis d'apprentissage terminaux : AAT5. Se conformer aux bonnes pratiques du métier tout en restant critique. C1-CA1.4 ; C3-CA3.2 et CA3.5 ; C4-CA4.2 et CA4.3 et CA4.5 ; C5-CA5.3; C5-CA5.4 * QUALITE ( AAT5)
Savoirs et compétences prérequis :
Activités d'apprentissage prévues et méthodes d'enseignement :
Activités        Intitulé de l'activité    Volume horaire BINV1010 A     Théorie                                  24 BINV1010 B     Exercices                               48
Mode d'enseignement (présentiel, à distance, hybride) :
Exercices théoriques

Les concepts théoriques sont découverts via des exercices théoriques. Ce sont généralement des tests moodle. Plusieurs types d'exercices sont proposés : compléter des parties de code, donner le résultat suite à l'exécution d'un code, trouver une erreur dans un code et la corriger, ....

Les étudiants effectueront ces exercices en autonomie.

Pour résoudre ces exercices, l'étudiant devra voir un minimum de théorie. Il la découvrira à son rythme via le moyen qu'il préfère : vidéos, diaporamas, syllabus, animations, ...

Chaque semaine, une plage de 2 heures en distanciel est prévue dans l'horaire.

Lors de cette plage, un professeur est joignable via Teams pour répondre aux questions individuelles. Si nécessaire, il fera des interventions pour tous. Celles-ci seront annoncées dans la conversation. 

 

Exercices pratiques - mini-projets 

Chaque semaine, deux séances d'exercices de programmation de 2 heures sont prévues en présentiel et se déroulent en salles-machines. La plateforme de développement utilisée est IntelliJ. Les séances d'exercices sont encadrées par 1 ou 2 professeurs. Les professeurs qui encadrent les exercices ne sont pas là pour donner des solutions à des problèmes. Ils essayent d'amener l'étudiant à trouver lui-même les solutions.

Lors de ces séances d'exercices, des exercices pratiques de programmation ou des mini-projets à réaliser par groupe de 2 étudiants sont proposés.

 
Algo : théorie
Un cours théorique de 2h est prévu en début de semaine.
 
Il sera donné à distance.

L'url de cette session de cours en ligne est disponible sur moodle.

L'étudiant prend connaissance de la théorie à son rythme via le moyen qu'il préfère (vidéos, diaporamas, ...).

Des tests moodle seront proposés durant ce cours.

Le professeur sera accessible via Teams pour répondre aux questions.
Algo : exercices
2 séances d'exercices de 2h en présentiel sont prévues à l'horaire.

Elles se déroulent en salles-machines.


 
Lectures recommandées ou obligatoires et notes de cours :
Algo : théorie
Syllabus et diaporamas disponibles sur moodle
Algo : exercices
Fiches d'exercices disponibles sur moodle
Modalités d'évaluation et critères :
Responsable de l'évaluation : DUPONT Annick   Langue de l'évaluation : Français   Mode d'évaluation : Examen écrit, Travaux de groupe  
Evaluation :
L'évaluation de cette U.E. est intégrée et constitue dès lors un tout indécomposable. Celle-ci donne lieu à une seule note ; il n'y a pas d'évaluation d'AcA ni de note pour les AcA. Cela exclut automatiquement : toute dispense partielle issue d'une année antérieure, toute dispense partielle au sein de l'année académique, toute dispense partielle acquise cette année pour les années à venir. De même si une UE est composée d'AcA dont certaines sont intégrées, il n'y a pas de dispense partielle d'une évaluation intégrée.
La note finale est une note sur 20 correspondant à  la moyenne arithmétique de la note d'évaluation continue (12,5%) et de l'examen (87,5%).
La note finale de l'UE est délibérée par les professeurs impliqués dans l'évaluation de celle-ci. En cas de lacune importante dans un ou plusieurs acquis d'apprentissage spécifiques à l'UE, le responsable de l'évaluation de l'UE attribuera une note inférieure à 10/20. Cette décision fera l'objet d'une justification de la part des professeurs. Des repêchages seront envisagés entre autres, pour les notes inférieures à 10 qui sont pénalisées par une mauvaise note d'évaluation continue.   
Evaluation continue (12,5%) Uniquement les points des projets interviennent dans cette cote. Durant l'année, plusieurs projets seront proposés. Ceux-ci seront réalisés par groupe de deux étudiants. Chaque projet sera réalisé en séance et la présence sera donc obligatoire.  Une défense individuelle de certains de ces projets pourra être organisée.
Examen (87,5%) L'examen est un examen écrit en partie sur PC. Il se déroule à livre fermé. 
Il comporte 2 parties : Pour la première partie (25%), l'étudiant complète un questionnaire sans pouvoir utiliser le PC. Le questionnaire contient des questions similaires aux exercices théoriques proposés pendant l'année. Pour la 2ème partie de l'examen (75%), l'étudiant programme en Java sur PC une ou plusieurs (parties d') applications sur base d'un énoncé en français. L'environnement de travail proposé est IntelliJ.


Evaluations formatives : Au cours de l'année des points seront collectés lors d'interrogations et de soumissions d'exercices. 
Soumissions d'exercices : chaque semaine, nous proposons de soumettre les classes Java écrites lors des séances d'exercices pratiques sur la plateforme d'apprentissage en ligne dans les délais prescrits. Les professeurs corrigeront un échantillon de ces exercices et les noteront. Ces points pourraient être consultés lors de la délibération pour envisager un repêchage.
Interrogations : au cours de l'année plusieurs interrogations seront organisées. Les questionnaires contiendront des questions similaires aux exercices théoriques proposés la semaine précédente. Les points de la 1ère partie de l'examen seront remplacés par l'ensemble des points récoltés lors de ces interrogations, si ceux-ci sont meilleurs.  
Stage(s) :
Remarques organisationnelles :
Lors du calcul de la moyenne arithmétique pondérée du PAE d'un étudiant, ainsi que du calcul de la moyenne arithmétique pondérée globale de son cursus, le poids associé à la note de la présente UE est son nombre d'ECTS.
 

 
Contacts :