Programme des cours 2023-2024
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, orientation développement d'applications (Bachelier en informatique, orientation développement d'application)6
Nom du professeur :
Algo : théorie : Annick DUPONT
Algo : exercices : Jean-Sébastien DERIEUW, Annick DUPONT, Ivan STUPIA
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):

CO5 - Mobiliser les savoirs et les savoir-faire lors du développement d'applications
CA5.a -Concevoir, implémenter et maintenir des algorithmes répondant aux spécifications et fonctionnalités fournies
CA5.c -Utiliser et exploiter des méthodes de modélisation lors de la phase d'analyse pour traduire les besoins des utilisateurs, sous forme d'un cahier de charges
CO6 - Analyser les données utiles à la réalisation de sa mission en adoptant une démarche systémique 
CA6.e -Prendre en compte la problématique de sécurité des applications
 
Acquis d'apprentissage(s) terminaux visé(s):
AAT1. Concevoir des solutions informatiques efficaces qui répondent à des problèmes en maitrisant les structures de données véhiculées

AAT5. Se conformer aux bonnes pratiques du métier tout en restant critique. 
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 de façon individuelle aux questions. Il n'y aura pas d'intervention orale pour tous.

 

Exercices pratiques

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 jeux à 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
 

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 note de l'examen (100%).

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. 

Examen (100%)
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 (20%), 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 (80%), 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 :
Interrogations : au cours de l'année plusieurs interrogations "surprises" seront organisées. Les questionnaires contiendront des questions similaires aux exercices théoriques proposés lors du cours théorique à distance. 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 :