Examens

Examens #

Le cours INF 1220 est évalué au moyen de deux examens en ligne télésurveillés. Il n'y a aucun travail noté à remettre et aucun entretien de suivi. L’objectif des examens est de valider le savoir-faire que vous avez intégré tout au long du cours.

ÉvaluationSujetsMomentDuréePondération
Examen 1Modules 1 et 2semaine 73 heures30 %
Examen 2L’ensemble du coursfin du cours3 heures70 %

Le premier examen a lieu à la septième semaine du cours et porte uniquement sur les deux premiers modules : les algorithmes et le pseudocode, puis les bases du langage Java (types, opérateurs, variables, méthodes, classes et instances). Comme la question revient sans cesse, soyons clair sur le second examen : l’examen 2 couvre toute la matière du cours, y compris celle du premier examen.

Conditions d’examen #

Les deux examens sont télésurveillés. Dans les deux cas :

  • vous n’avez droit à aucune note (ni notes personnelles, ni aide-mémoire, ni manuel, ni documentation) ;
  • vous n’avez pas accès à Internet (ni le site du cours, ni un moteur de recherche, ni l’intelligence artificielle) ;
  • vous n’avez pas accès à un compilateur Java ni à un environnement de programmation.

Vous devez donc écrire votre code Java de mémoire, sans le compiler ni l’exécuter.

Format des examens #

Pour qu’il n’y ait pas de surprise, voici exactement à quoi vous attendre. Les questions changent d’une version de l’examen à l’autre, mais la structure est fixe et identique pour les deux examens. Chaque examen est noté sur 100 points et comporte trois parties.

PartieType de questionNombrePoints par questionTotalCorrection
AChoix de réponses (4 options, une seule bonne réponse)40140automatique
BRéponses courtes5420manuelle
CProblèmes de programmation (long développement)22040manuelle
Total47100

Partie A — 40 questions à choix de réponses (40 points) #

Chaque question vaut 1 point et comporte quatre options dont une seule est exacte. Il n’y a aucune pénalité pour une mauvaise réponse : répondez donc à toutes les questions. Les questions vérifient votre compréhension des notions (définitions, rôle d’un mot réservé, valeur d’une expression, sortie d’un court extrait de code, résultat d’un algorithme en pseudocode, etc.). Plusieurs questions exigent que vous exécutiez mentalement quelques lignes de code : entraînez-vous à tracer la valeur des variables.

Partie B — 5 questions courtes (20 points) #

Chaque question vaut 4 points et se répond en quelques phrases ou en quelques lignes de code. Les cinq questions sont toujours du même type :

  1. Compléter un programme : un programme presque complet vous est donné, avec deux ou trois éléments manquants (un import, une expression, une condition, un énoncé). Vous devez écrire le contenu exact de chaque trou.
  2. Expliquer un bogue : un court programme ne fait pas ce qu’il devrait (mauvais résultat, exception). Vous devez expliquer la cause et indiquer la correction.
  3. Sortie d’un extrait de code : vous devez indiquer, ligne par ligne, ce qu’affiche un programme.
  4. Sortie d’un extrait de code, sur un autre sujet, avec une brève justification.
  5. Analyse d’un mécanisme : vous devez expliquer pourquoi un code se comporte comme il le fait ou décrire une technique vue dans le cours.

L’exactitude technique prime. Une réponse juste sans explication obtient les points de contenu, mais pas ceux de justification. Une valeur exacte accompagnée d’une explication erronée est corrigée à la baisse.

Partie C — 2 problèmes de programmation (40 points) #

Chaque problème vaut 20 points. Vous devez écrire du code Java valide et fonctionnel, c’est-à-dire qui pourrait compiler et produire le résultat demandé, directement dans la zone de réponse, sans compilateur ni console. Pour chaque problème, vous devez :

  • écrire le code demandé (classe complète avec une méthode main lorsque c’est demandé) ;
  • indiquer la sortie attendue de votre programme ;
  • expliquer votre solution en français (quelques phrases suffisent).

Comme le code est écrit sans compilateur, ce sont la logique et la structure qui sont évaluées avant la syntaxe fine. Toutefois, un code non fonctionnel, qui ne peut en aucun cas répondre à la question, ne reçoit pas les points de fonctionnalité. Une solution dont l’explication est absente ou incompréhensible peut recevoir la note zéro, même si le code est correct.

Gestion du temps suggérée #

Les deux examens durent 3 heures. Voici la répartition que nous vous suggérons :

PartieTemps suggéré
A — 40 questions à choix de réponses60 minutes (environ 1 min 30 s par question)
B — 5 questions courtes30 minutes (environ 6 minutes par question)
C — 2 problèmes de programmation80 minutes (environ 40 minutes par problème)
Relecture et vérification10 minutes

Examen 1 — modules 1 et 2 (30 %) #

Matière à l’étude #

L’examen 1 porte sur les modules 1 et 2 du cours :

  • Module 1 — Algorithmes et pseudocode : notion d’algorithme, rédaction et lecture de pseudocode, structures de contrôle en pseudocode, bases de la complexité algorithmique (notation grand-O), architecture des ordinateurs, représentation binaire, hexadécimale et décimale, compilation et machine virtuelle Java.
  • Module 2 — Introduction au langage Java : types primitifs et classes, littéraux, variables et portée, opérateurs et priorités, expressions numériques, booléennes et de type String, méthodes, constructeurs, variables de classe (static) et d’instance.

Les lectures correspondantes dans le manuel Java pas à pas sont le chapitre 2 (Introduction à la programmation Java) et le chapitre 4 (Types et expressions Java). L’examen suppose que vous avez fait les exercices du module 1, les exercices 2-1 et 2-2 ainsi que les exercices du manuel.

Objectifs évalués #

À l’examen 1, vous devez démontrer que vous pouvez :

  1. reconnaître et interpréter un algorithme exprimé en pseudocode, et en évaluer sommairement la complexité ;
  2. expliquer la représentation des nombres en binaire, en décimal et en hexadécimal, et le rôle des composantes matérielles et logicielles d’un ordinateur ;
  3. lire un programme Java simple et en décrire la structure (classe, méthode main(), énoncés, commentaires, import, packages) ;
  4. utiliser correctement les types primitifs, les littéraux, les conversions de type et les opérateurs de Java ;
  5. prédire la valeur d’une expression Java (arithmétique, booléenne, String) en tenant compte des priorités, des conversions, du court-circuit et des débordements ;
  6. distinguer une valeur d’un type primitif d’une référence à un objet, et comparer correctement des chaînes de caractères ;
  7. écrire une classe Java munie d’un constructeur et de méthodes, et distinguer une variable de classe (static) d’une variable d’instance ;
  8. expliquer en français, de façon claire et exacte, le fonctionnement du code produit.

Répartition de la partie A #

BlocContenuQuestionsPoints
A-1Module 1 : algorithmes, pseudocode, complexité, ordinateurs, binaireQ1 à Q88
A-2Chapitre 2 du manuel : introduction à la programmation JavaQ9 à Q2113
A-3Chapitre 4 du manuel : types et expressions JavaQ22 à Q4019

Parties B et C #

Les parties B et C portent principalement sur les chapitres 2 et 4 du manuel, avec un rappel du module 1. Les questions courtes portent, par exemple, sur la lecture au clavier avec Scanner, la comparaison de chaînes (== et equals()), la division entière, la concaténation, les conversions de type et les variables de classe. Les deux problèmes de programmation demandent typiquement d’écrire une classe complète (constructeur, méthodes d’instance, méthode main qui construit des objets et affiche des résultats) et de mettre en évidence la distinction entre variable de classe (static) et variable d’instance. Les examens factices ci-dessous vous en donnent des exemples représentatifs.

Examen 2 — examen final (70 %) #

Matière à l’étude #

L’examen final porte sur l’ensemble du cours, soit les cinq modules du site et les neuf chapitres du manuel Java pas à pas, y compris la matière déjà couverte par l’examen 1.

ModuleContenuChapitres du manuel
1Algorithmes, pseudocode, complexité, architecture des ordinateurs1. Concepts de base
2Types, littéraux, opérateurs, expressions, méthodes, classes et constructeurs2. Introduction à la programmation Java; 4. Types et expressions Java
3Structures de contrôle et d’itération, tableaux, chaînes, collections, exceptions, récursivité, programmation fonctionnelle3. Structures de contrôle
4Flux de console et de fichiers, fichiers texte et binaires, encodage, JSON et XML9. Traitement de fichiers
5Graphisme 2D, animation, conception objet, héritage, interfaces, polymorphisme, génériques5. Graphisme 2D et concepts de programmation objet; 6. Introduction à l’animation 2D; 7. Développement de classes : conception objet; 8. Animation 2D et développement d’un jeu simple

L’examen suppose que vous avez lu les neuf chapitres du manuel et fait les exercices de chaque module du site (autoévaluation du module 1, exercices 2-1 à 5-1) ainsi que les exercices du manuel.

Objectifs évalués #

À l’examen final, vous devez démontrer que vous pouvez :

  1. lire un algorithme en pseudocode, en prédire le résultat et en évaluer sommairement la complexité (grand-O) ;
  2. expliquer la représentation binaire des données ainsi que le rôle du matériel, du système d’exploitation et de la machine virtuelle Java ;
  3. utiliser correctement les types, les littéraux, les conversions et les opérateurs de Java, et prédire la valeur d’une expression ;
  4. écrire et interpréter des structures de contrôle et d’itération (if, switch, while, for, do), y compris leurs pièges usuels ;
  5. manipuler des tableaux, des chaînes de caractères et des collections (ArrayList, HashMap, HashSet), et distinguer une valeur d’une référence ;
  6. gérer les exceptions (vérifiées et non vérifiées, try/catch/finally, try-with-resources) et concevoir une méthode récursive ;
  7. expliquer les mécanismes du graphisme 2D et de l’animation (sous-classe de JFrame ou de JPanel, Graphics, paint()/repaint(), MouseListener, double tampon, Timer) ;
  8. appliquer les principes de conception objet : découpage en classes, encapsulation, cohésion forte, couplage faible, classes abstraites, héritage, interfaces, polymorphisme et génériques ;
  9. lire et écrire des fichiers texte, binaires et d’objets (FileInputStream, DataOutputStream, Reader/Writer, sérialisation, RandomAccessFile) en gérant les exceptions ;
  10. expliquer en français, de façon claire et exacte, le fonctionnement du code produit.

Répartition de la partie A #

BlocContenuQuestionsPoints
A-1Module 1 / chapitre 1 : algorithmes, complexité, ordinateursQ1 à Q33
A-2Module 2 / chapitres 2 et 4 : types, expressions, méthodesQ4 à Q74
A-3Module 3 / chapitre 3 : structures de contrôle et d’itérationQ8 à Q125
A-4Module 3 : tableaux, chaînes et collectionsQ13 à Q164
A-5Module 3 : exceptions et récursivitéQ17 à Q204
A-6Module 5 / chapitre 5 : graphisme 2D et concepts objetQ21 à Q244
A-7Module 5 / chapitres 6 et 8 : animation 2D et jeu simpleQ25 à Q284
A-8Module 5 / chapitres 7 et 8 : conception objet, héritage, polymorphisme, génériquesQ29 à Q346
A-9Module 4 / chapitre 9 : traitement de fichiers et entrées-sortiesQ35 à Q406

Parties B et C #

Les cinq questions courtes couvrent les mêmes blocs : elles portent respectivement sur les structures de contrôle et les tableaux, sur les chaînes et les collections, sur les exceptions, sur l’héritage et le polymorphisme, puis sur le graphisme, l’animation ou les fichiers.

Les deux problèmes de programmation portent sur :

  1. la conception objet : une classe abstraite ou une interface, des sous-classes concrètes, du polymorphisme et une collection (ArrayList ou tableau) d’objets de ces classes ;
  2. le traitement de fichiers avec gestion des exceptions : écrire des données dans un fichier (texte ou binaire), les relire, et s’assurer que les fichiers sont fermés dans tous les cas.

Dans les deux cas, vous devez indiquer la sortie attendue et expliquer votre solution. Les examens factices ci-dessous vous en donnent des exemples représentatifs.

Matériel autorisé #

Pour connaître le matériel autorisé durant votre examen, consultez la section « Activités d’évaluation » de votre cours dans votre portail MaTÉLUQ. Il est important de consulter le matériel autorisé avant de commencer l’examen.

Si vous ne maîtrisez pas la matière du cours, vous ne réussirez probablement pas les examens. Prenez le temps d'étudier, de réviser et de poser des questions le cas échéant. Pratiquez-vous à programmer.

Quand il s'agit de programmer, plusieurs étudiants remettent du code qui n'est pas fonctionnel, qui ne peut en aucun cas répondre à la question. Comme vous ne pouvez pas exécuter votre code pendant l'examen, vous devez le relire et l'exécuter dans votre esprit, en traçant la valeur des variables. Comme vous devez de toute manière toujours expliquer vos solutions, vous pouvez en profiter pour y inclure une séquence d'exécution de votre programme. Un programmeur doit toujours se relire. Il est facile de se tromper complètement en écrivant même du code simple si on ne se relit pas avec soin.

Mise en forme de votre examen #

Même écrit sans l’aide d’un environnement de développement, votre code Java doit être lisible. Veillez à aligner les accolades ouvrantes et fermantes, à indenter votre code de manière cohérente, à espacer les opérateurs et les virgules de manière uniforme, et à limiter la longueur des lignes à environ 100 caractères. N’oubliez pas d’ajouter des commentaires clairs et concis pour expliquer les parties complexes, en les plaçant au-dessus des blocs de code concernés plutôt qu’en fin de ligne. Un code illisible est difficile à corriger et vous désavantage.

Se préparer #

Les étudiants qui passent un examen en ligne télésurveillé doivent s’assurer d’avoir un environnement adéquat. Il est de votre responsabilité d’avoir un ordinateur fiable, avec un bon clavier, une caméra fonctionnelle et une connexion Internet stable permettant la télésurveillance. Si vous travaillez sur un ordinateur portable, gardez-le sous tension. Prévoyez au besoin une solution de rechange pour votre connexion (par exemple, un branchement par l’entremise de votre téléphone cellulaire).

Nous comprenons que la vie vous réserve des surprises. Parfois un logiciel plante. Parfois il faut redémarrer un ordinateur et ainsi de suite. Néanmoins, vous êtes responsable d’être bien préparé.

Puisque vous n’aurez ni notes, ni manuel, ni compilateur, ni accès à Internet, la préparation ne consiste pas à rassembler de la documentation : elle consiste à pratiquer.

  • Écrivez du code Java à la main, sur papier ou dans un simple éditeur de texte, sans le compiler. Vérifiez ensuite votre code en le compilant. Vous découvrirez vos erreurs habituelles.
  • Apprenez par cœur la structure d’un programme Java : déclaration de classe, méthode main, déclaration de méthode, boucles, conditions.
  • Refaites les exercices et les activités d’autoévaluation de chaque module jusqu’à ce que vous puissiez les résoudre sans aide.
  • Faites les examens factices ci-dessous en conditions réelles : trois heures, sans notes, sans Internet et sans compilateur.

Nous vous suggérons de prévoir au moins 4 heures pour vous préparer à chaque examen.

Gestion du temps à l’examen #

Chaque examen peut comporter plusieurs questions de programmation. Vous devez donc pouvoir fournir en quelques minutes du code fonctionnel ainsi que des explications précises. Vous devez pouvoir écrire un programme Java correct et l’expliquer en une trentaine de minutes. Vous devez arriver bien entraîné et bien préparé.

La durée de chaque examen est de trois heures. Vous devez joindre l’Université si vous avez des questions concernant la durée de votre examen. La personne qui vous encadre ne contrôle pas la durée de l’examen.

Examen factice — préparation à l’examen 1 (modules 1 et 2) #

Pour vous pratiquer pour le premier examen, prenez un maximum de trois heures pour répondre aux six questions suivantes, sans notes, sans Internet et sans compilateur :

  1. Écrivez, en pseudocode, un algorithme qui lit une suite de nombres entiers terminée par la valeur 0 et qui affiche le plus grand nombre lu (la valeur 0 servant uniquement de marqueur de fin). Précisez les entrées, les sorties et le comportement de votre algorithme lorsque la suite est vide.
  2. Deux algorithmes résolvent le même problème : le premier effectue environ n² opérations, le second environ 100n opérations, où n est la taille de l'entrée. Expliquez ce que signifie la notation grand-O, donnez la complexité de chacun des deux algorithmes et indiquez à partir de quelle taille d'entrée le second devient préférable.
  3. Donnez la valeur et le type de chacune des expressions Java suivantes, et expliquez brièvement chaque résultat : 7 / 2, 7 % 2, 7.0 / 2, (int) 3.9, "3" + 4, (char) 65.
  4. Écrivez une méthode Java static boolean estBissextile(int annee) qui retourne true si l'année passée en paramètre est bissextile. Une année est bissextile si elle est divisible par 4, sauf si elle est divisible par 100, à moins qu'elle ne soit aussi divisible par 400. Expliquez votre solution et donnez quelques exemples de valeurs de retour.
  5. Écrivez une classe Compteur comportant une variable d'instance et une variable de classe (static). Expliquez, en français, la différence entre une variable de classe, une variable d'instance et une variable locale, en indiquant la portée et la durée de vie de chacune.
  6. Créez une classe Rectangle munie d'un constructeur prenant une largeur et une hauteur, ainsi que de deux méthodes aire et perimetre. Ajoutez une méthode main qui crée deux rectangles et affiche leur aire et leur périmètre. Expliquez la différence entre une classe et une instance de classe.

Dans tous les cas, vous devez expliquer vos solutions et produire du code valable.

Examen factice 1 — préparation à l’examen 2 #

Pour vous pratiquer pour l'examen final, prenez un maximum de trois heures pour répondre aux six questions suivantes, sans notes, sans Internet et sans compilateur :

  1. Écrivez une fonction Java qui, étant donné une chaîne de caractères, retourne la même chaîne de caractères mais inversée. Par exemple, la fonction doit transformer la chaîne "un chien" en la chaîne "neihc nu". Vous pouvez faire l'hypothèse que les caractères de la chaîne originale se représentent tous en 2 octets selon la norme UTF-16.
  2. Écrivez une fonction Java qui prend un tableau d'entier et compte le nombre d'entiers négatifs.
  3. Écrivez une classe qui va lire, dans son constructeur, les chaînes de caractères trouvées dans un fichier texte. Le constructeur doit prendre le nom du fichier en argument. La classe doit être munie d'une méthode enregistre prenant un nom de fichier en paramètre. Lorsque la méthode enregistre est invoquée, les chaînes de caractères chargées par le constructeur sont écrites dans un fichier texte prenant le nom de fichier fourni à la méthode enregistre. Il doit être possible, en appelant la méthode enregistre ainsi qu'un constructeur de dupliquer une instance de classe.
  4. Écrivez une fonction Java qui, étant donné un tableau d'entier, calcule la moyenne des valeurs, sous la forme d'un nombre à virgule flottante.
  5. Mettez en oeuvre le jeu Fizz Buzz à l'aide d'une fonction Java, affichant les nombre de un à cent, en y ajoutant Fizz quand le nombre est divisible par trois et Buzz quand le nombre est divisible par cinq.
  6. Écrivez un programme Java qui utilise FileOutputStream et FileInputStream pour écrire une séquence de nombres entiers dans un fichier binaire, puis la relire. Gérez les exceptions.

Dans tous les cas, vous devez expliquer vos solutions et produire du code valable.

Vous devriez arrivez sans mal à produire les solutions attendues en moins de 3 heures. Si vous n'y arrivez pas, c'est que vous manquez de pratique.

Examen factice 2 — préparation à l’examen 2 #

Pour vous pratiquer pour l'examen final, prenez un maximum de trois heures pour répondre aux six questions suivantes, sans notes, sans Internet et sans compilateur :

  1. Écrivez une classe « Tableau » munie d'une fonction « unique » qui prend comme paramètre un tableau (String[] t). La fonction doit trouver le nombre de valeurs répétées consécutivement dans le tableau. Une valeur est répétée si la valeur précédente lui est identique. Ainsi donc, étant donné le tableau {"bah", "bah", "be", "bo", "bo", "bo"}, votre fonction doit retourner l’entier 3 puisqu’il y a trois valeurs répétées.
  2. Écrivez une fonction occurrences(String s, char c) qui prend deux paramètres : une chaine de caractères et un caractère. Elle doit retourner un tableau comprenant les indices correspondant aux occurrences du caractère (second paramètre) dans la chaîne (premier paramètre). Les indices doivent être des entiers de 1 à s.length() inclusivement.
  3. Écrivez un programme qui demande à l’utilisateur de fournir un entier positif. Le programme doit vérifier si l’entier en question est un nombre premier. Un nombre premier n’est divisible que par lui-même et par le nombre 1.
  4. Écrivez un programme Java qui demande à l'utilisateur de choisir un nombre impair entre 0 et 100. Le programme doit ensuite offrir à l'utilisateur un nombre impair entre 0 et 100 et demander à celui-ci si le nombre choisi est (a) plus petit (b) plus grand ou (c) identique au nombre offert par le programme. Le programme doit continuer tant que la bonne valeur n'est pas trouvée par le programme informatique. Votre mise en œuvre doit être efficace pour obtenir tous les points. Vous devez pleinement expliquer votre solution.
  5. Créez une classe « Fruit » dotée de deux méthodes non-statiques nommées « mange » et « jette ». Les méthodes ne doivent prendre aucun paramètre et ne retourner qu’un entier. La méthode « mange » doit retourner le nombre de fois qu'elle a été appelée pendant la vie de l'objet (instance de classe) courante. La méthode « jette » doit retourner le nombre de fois qu'elle a été appelée, toutes instances confondues. Votre code doit inclure une méthode « main » qui démontre que le code répond bien à la question. Vous devez par ailleurs expliquer (en prose française) votre solution. Si votre explication est manquante ou peu claire, une note de zéro pourra être attribuée.
  6. Décrivez l’utilisation de la classe RandomAccessFile pour manipuler un fichier à adressage relatif. Donnez-un exemple de code.

Dans tous les cas, vous devez expliquer vos solutions et produire du code valable.

Vous devriez arrivez sans mal à produire les solutions attendues en moins de 3 heures. Si vous n'y arrivez pas, c'est que vous manquez de pratique.

Pour se pratiquer à programmer #

Si vous avez fait toutes les lectures, les examens factices et tous les exercices du cours honnêtement, alors vous êtes prêt pour les examens. Certains étudiants souhaitent se pratiquer davantage.

Voici quelques suggestions de problèmes supplémentaires pour réviser:

  1. Écrivez un programme qui lit un fichier contenant un mot par ligne et qui affiche les mots en question dans le sens inverse (en commençant par le dernier mot).
  2. Écrivez un programme qui calcule la somme des 100 premiers entiers divisibles par 3.
  3. Écrivez une fonction qui trouve dans une liste la valeur de tous les éléments répétés (par exemple dans 1,2,2,3,4, le nombre 2 est répété).
  4. Expliquez la différence entre une variable (attribute) statique (static) et une variable normale.
  5. Est-ce qu'une classe peut avoir plus d'un constructeur?
  6. Étant donné deux variables entières, i et j, je peux toujours calculer i/j? (vrai ou faux, expliquez)
  7. Combien de bits utilise le type double en Java?

N'oubliez pas de tester vos solutions pendant vos révisions. S'il s'agit de produire du code Java, alors exécutez le code Java et passez du temps avec le programme pour vous assurez qu'il fait ce qu'il doit faire. C'est une erreur commune chez les étudiants d'aller trop rapidement et de supposer que parce que le programme a l'air correct, il doit être correct. Non! Testez et testez encore. Vous ne pourrez pas tester votre code pendant l'examen : c'est pendant vos révisions qu'il faut acquérir ce réflexe de vérification.

Le projet Euler offre des centaines de problèmes similaires à ceux qui sont utilisés dans le cours.

Certains étudiants apprécient JetBrains Academy (en anglais) qui offre certaines formations élémentaires en Java. Il y a aussi plusieurs manuels (en anglais) dédiés aux exercices que vous pouvez acquérir :

  1. Java Coding Problems: Improve your Java Programming skills by solving real-world coding challenges
  2. Java Cookbook: Problems and Solutions for Java Developers

Les reports de la date de fin de cours #

Rappel: L'enseignant ne peut modifier votre date de fin de cours peu importe votre situation. Le moment après la date de fin de cours où votre dossier est fermé et où vous recevez (éventuellement) un incomplet est géré par l'Université. Il est de votre responsabilité de bien planifier votre temps. Si vous avez des problèmes personnels qui limitent vos progrès (maladie, deuil, etc.), il faut voir avec l'Université: les enseignants n'ont aucune prise sur les dates de fin, sur les dates d'examen, etc.

Votre date de fin de cours est inscrite dans votre dossier et vous pouvez la trouver sur le portail étudiant et sur la documentation qu'on vous a remise lors de votre inscription. Il est possible que votre examen final ait lieu des semaines ou même des mois après votre date de fin de cours: cela ne constitue pas une extension de votre date de fin de cours.

Déroulement et le jour de l’examen #

L’enseignant ne peut changer la date, la durée, le lieu ou l’heure de vos examens. Il ne contrôle pas l’environnement technologique lors des examens. Un service distinct et indépendant au sein de l’Université gère les examens et la télésurveillance.

Pour les personnes inscrites aux trimestres d’automne 2025 et d’hiver 2026 #

Le déroulement des examens, incluant leur date et leur heure, est géré par l’Université. Il est inutile d’écrire à l’enseignant pour savoir quand vos examens auront lieu ou pour en changer la date. Si vous avez des questions au sujet de la plateforme technologique ou au sujet de l’heure d’un examen, il faut voir avec l’Université et au sein du portail étudiant. Par exemple, dans le portail étudiant, sous Dossier administratif, il est possible que vous trouviez une option pour modifier une date d’examen.

Période d’examen #

La période planifiée de votre examen se trouve dans la section « Activités d’évaluation » de votre cours dans votre portail MaTÉLUQ. Vous recevrez un avis de convocation avant cette période.

Plate-forme d’examen #

Vous accédez à vos examens directement dans l’environnement Moodle, à partir de votre portail MaTÉLUQ. Vous y trouverez davantage d’information. Les examens sont gérés par l’Université. Il est inutile de joindre la personne qui vous encadre à ce sujet avec vos questions, il faut joindre l’Université.

Résultat et rétroaction sur les examens #

Une fois un examen corrigé, vous trouverez votre note dans le portail étudiant. L'enseignant ne transmet jamais les examens (corrigés ou pas) par courriel. Si vous avez des questions suite à un examen, nous nous ferons un plaisir d'en discuter avec vous. Nous ne transmettons toutefois jamais le corrigé d'un examen (à quiconque, et il n'y a pas d'exception).

Les deux examens sont obligatoires et il n’y a aucune possibilité de reprise. Il est de votre responsabilité de vous assurer de vous présenter aux deux examens.

Rétroaction sur le cours #

N’oubliez pas que nous tenons compte de votre opinion. Si vous avez des critiques constructives, remplissez le formulaire à cet effet.

Vous avez aimé le cours ? #

Si vous avez aimé le cours…

Si vous avez acheté le manuel sur Amazon, et que le manuel vous a été utile, si une explication vous a fait gagner du temps ou si un exercice vous a enfin fait comprendre un concept difficile…

Votre avis compte énormément ❤️

Prendre 30 secondes pour laisser 5 étoiles et quelques mots gentils sur Amazon fait une différence énorme : cela permet à d’autres étudiants de trouver plus facilement ce livre et me motive à continuer à créer du contenu de qualité.

⭐ Laisser un avis sur Amazon (30 secondes)

Merci infiniment pour votre soutien !

Vous voulez continuer votre apprentissage ? #

Je vous recommande les cours suivants. Les notes de cours de chacun sont en accès libre : vous pouvez les consulter dès maintenant pour vous faire une idée de la matière. L’ensemble de mes notes de cours est réuni sur une même page.

  • Au sein du cours INF 2007 Programmation avancée, vous approfondirez vos compétences en développement logiciel avec des concepts avancés comme les tests et l’optimisation des performances en utilisant le langage Go. Ce cours de programmation avancée est une suite naturelle au cours INF 1220. Plusieurs des mêmes notions y sont approfondies. Consultez les notes de cours.
  • Au sein du cours INF 2020 Programmation d’applications avec Python : des jeux au Web, vous apprendrez à créer des applications dynamiques, allant des jeux interactifs aux interfaces web, en maîtrisant Python et ses bibliothèques. Ce cours est aussi une suite naturelle au cours INF 1220. Consultez les notes de cours.
  • Au sein du cours INF 4450 Programmation orientée-données, vous apprendrez à manipuler les formats de données structurées qui dominent le Web et la science des données (JSON, XML, HTML, YAML, RDF) et à les relier aux structures fondamentales de l’informatique (arbres, dictionnaires, listes, graphes), en Java principalement, mais aussi en JavaScript et en Python. Ce cours s’appuie directement sur ce que vous avez appris dans le cours INF 1220. Consultez les notes de cours.
  • Au sein du cours INF 6460 Recherche et filtrage d’informations, vous développerez des compétences pour concevoir et utiliser des systèmes de recherche et de filtrage d’informations, en exploitant des techniques avancées d’indexation et d’analyse de données. Vous y apprendrez comment fonctionnent les moteurs de recherche. Consultez les notes de cours.
  • Au sein du cours INF 9004 Informatique des entrepôts de données, vous développerez des compétences en conception, gestion et analyse d’entrepôts de données pour soutenir la prise de décision stratégique. Vous y apprendrez à faire des requêtes sophistiquées au sein de bases de données avec des langages comme MDX et le SQL. Consultez les notes de cours.