Aller au contenu principal

Plan

Présentation du cours

Descriptif du cours

Un des buts de ce cours est l’application de l’approche de développement par objet en concevant des classes indépendantes, robustes et faciles d’utilisation. Pour y arriver, les concepts suivants sont abordés : encapsulation, constructeurs, destructeurs, surcharge des méthodes et des opérateurs, héritage et polymorphisme. Le cours vise aussi l’organisation logique et la manipulation des données en mémoire centrale et sur fichier. Pour y arriver les notions suivantes sont abordées : tableaux, piles, files, arbres, fichiers, mécanisme d’allocation dynamique de mémoire, récursivité et algorithmes de recherche et de tri. Un atelier pratique permet d’appliquer chaque nouvelle notion théorique.

Place du cours

Ce cours se situe à la deuxième session du programme Sciences informatiques et mathématiques, fait suite au cours 420-SF1-RE Introduction à la programmation et est préalable au cours 420-SF3-RE Développement d'applications dans un environnement graphique. Pour les exemples et travaux, on utilisera les mêmes outils de programmation que dans le cours 420-SF1-RE.

Objectifs du cours

Énoncé de la compétence liée au cours

ONFB - Exploiter des données pour résoudre des problèmes informatiques de nature scientifique (complète).

Objectif terminal du cours

À la fin de ce cours, l’étudiant ou l’étudiante sera capable d’appliquer l’approche de développement par objet en concevant des classes indépendantes, robustes et conviviales.

Objectifs d'apprentissage

  • Déterminer le niveau d’accès des données membres et des méthodes.
  • Procéder à la codification de constructeurs et de destructeurs.
  • Différencier une classe d’une instance.
  • Programmer des applications fiables, robustes, faciles à entretenir, conviviales et efficaces.
  • Différencier l’utilisation d’un type de base et des pointeurs.
  • Programmer des structures de données statiques et dynamiques.
  • Choisir la bonne structure de données selon le contexte.
  • Déterminer l’efficacité d’une structure de données.
  • Consulter, trier et parcourir une structure de données.
  • Effectuer la sérialisation de structures de données.

Séquences d'apprentissage

Cette section démontre la progression des apprentissages et les grandes étapes d’appropriation de la ou des compétences.

SÉQUENCE D'APPRENTISSAGE 1
Titre : Structure et PointeurDurée : ~10 périodes
Résultats attendus : Au terme de cette séquence, l’étudiant ou l’étudiante sera en mesure d’utiliser des structures, de comprendre et d’utiliser des pointeurs, et de reconnaître les contextes dans lesquels ces notions sont utiles.
Stratégies ou méthodes pédagogique : Cours magistraux et démonstrations.
Objectifs d'apprentissageContenusActivités
Différencier l’utilisation d’un type de base et des pointeurs.Pointeur, instanciation et libération, fuite de mémoire.Exercices.
SÉQUENCE D'APPRENTISSAGE 2
Titre : Paradigme orienté objetDurée : ~ 10 périodes
Résultats attendus : Au terme de cette séquence, l’étudiant ou l’étudiante sera en mesure de comprendre les avantages du paradigme orienté objet, de commencer à l’appliquer dans des situations concrètes, et de reconnaître la représentation de modèle de classes.
Stratégies ou méthodes pédagogique : Cours magistraux et démonstrations.
Objectifs d'apprentissageContenusActivités
Déterminer le niveau d’accès des données membres et des méthodes. Procéder à la codification de constructeurs et de destructeurs. Différencier une classe d’une instance. Programmer des applications fiables, robustes, faciles à entretenir, conviviales et efficaces. Différencier l’utilisation d’un type de base et des pointeurs. Programmer des structures de données statiques. Pointeur, paradigme orienté objet, encapsulation, modificateurs d’accès, notation U.M.L., classe vs. Instance, instanciation et libération, fuite de mémoire, pile, et file.Exercices, et Travail 1.
SÉQUENCE D'APPRENTISSAGE 3
Titre : Structures de données et itérateurDurée : ~ 30 périodes
Résultats attendus : Au terme de cette séquence, vous serez en mesure de connaître et d’utiliser les structures de données de base, de déterminer leur performance, et de reconnaître les contextes dans lesquels elles sont utiles afin de faire les bons choix.
Stratégies ou méthodes pédagogique : Cours magistraux et démonstrations.
Objectifs d'apprentissageContenusActivités
Déterminer le niveau d’accès des données membres et des méthodes. Procéder à la codification de constructeurs et de destructeurs. Différencier une classe d’une instance. Programmer des applications fiables, robustes, faciles à entretenir, conviviales et efficaces. Différencier l’utilisation d’un type de base et des pointeurs. Choisir la bonne structure de données selon le contexte. Programmer des structures de données statiques et dynamiques. Déterminer l’efficacité d’une structure de données. Consulter, trier et parcourir une structure de données.Pointeur, paradigme orienté objet, encapsulation, modificateurs d’accès, notation U.M.L., classe vs. Instance, instanciation et libération, fuite de mémoire, itérateur et parcours, notation Grand-O, pile, file, et liste.Exercices, Travail 2, Examen 1, et Travail 3.
SÉQUENCE D'APPRENTISSAGE 4
Titre : Récursivité, tri, parcours, et abstractionDurée : ~ 20 périodes
Résultats attendus : Au terme de cette séquence, vous serez en mesure de comprendre et utiliser la récursivité, effectuer des tris et parcours de façon efficace, et d’introduire le concept d’abstraction du paradigme orienté objet.
Stratégies ou méthodes pédagogique : Cours magistraux et démonstrations.
Objectifs d'apprentissageContenusActivités
Déterminer le niveau d’accès des données membres et des méthodes. Procéder à la codification de constructeurs et de destructeurs. Différencier une classe d’une instance. Programmer des applications fiables, robustes, faciles à entretenir, conviviales et efficaces. Différencier l’utilisation d’un type de base et des pointeurs. Choisir la bonne structure de données selon le contexte. Programmer des structures de données statiques et dynamiques. Déterminer l’efficacité d’une structure de données. Consulter, trier et parcourir une structure de données. Effectuer la sérialisation de structures de données.Pointeur, paradigme orienté objet, encapsulation, modificateurs d’accès, notation U.M.L., classe vs. Instance, instanciation et libération, et fuite de mémoire, récursivité, tri, itérateur et parcours, notation Grand-O, arbre, abstraction, et fichier séquentiel.Exercices, Travail 4, et Examen 2.

Évaluation des apprentissages

Évaluations formatives

Durant les cours, pour appliquer chacun des contenus, des exercices formatifs seront réalisés. Dans ces mêmes cours, il y aura toujours une rétroaction et un exposé de la solution pour tous ces exercices.

Épreuve finale de cours

L’épreuve final de ce cours est composée des examens, d’une pondération de 35% chacun, comportant tous les contenus du cours.

Modalités des travaux d’équipe

Il n’y a pas de travail d’équipe dans ce cours.

Modalités de consultation des évaluations

Toutes les évaluations étants remises sur une plateforme numérique, elles seront accessibles par les étudiants et les étudiantes en tout temps à la suite de leur évaluation.

Calendrier des évaluations

Ce tableau présente l’échéancier des évaluations sommatives et certificatives du cours.

Calendrier des évaluations sommatives
Type d'évaluationObject d'évaluationContenuContexte de réalisationPondérationDate prévue
Travail 1Déterminer le niveau d’accès des données membres et des méthodes. Procéder à la codification de constructeurs et de destructeurs. Différencier une classe d’une instance. Programmer des applications fiables, robustes, faciles à entretenir, conviviales et efficaces. Différencier l’utilisation d’un type de base et des pointeurs. Programmer des structures de données statiques. Pointeur, paradigme orienté objet, encapsulation, modificateurs d’accès, notation U.M.L., classe vs. Instance, instanciation et libération, fuite de mémoire, pile, et file.Individuellement, sur ordinateur, à l’intérieur et à l’extérieur des cours.2%~ 18 février
Travail 2Déterminer le niveau d’accès des données membres et des méthodes. Procéder à la codification de constructeurs et de destructeurs. Différencier une classe d’une instance. Programmer des applications fiables, robustes, faciles à entretenir, conviviales et efficaces. Différencier l’utilisation d’un type de base et des pointeurs. Choisir la bonne structure de données selon le contexte. Programmer des structures de données statiques et dynamiques. Déterminer l’efficacité d’une structure de données. Consulter, trier et parcourir une structure de données.Pointeur, paradigme orienté objet, encapsulation, modificateurs d’accès, notation U.M.L., classe vs. Instance, instanciation et libération, fuite de mémoire, et pile.Individuellement, sur ordinateur, à l’intérieur et à l’extérieur des cours.4%~ 11 mars
Examen 1Déterminer le niveau d’accès des données membres et des méthodes. Procéder à la codification de constructeurs et de destructeurs. Différencier une classe d’une instance. Programmer des applications fiables, robustes, faciles à entretenir, conviviales et efficaces. Différencier l’utilisation d’un type de base et des pointeurs. Choisir la bonne structure de données selon le contexte. Programmer des structures de données statiques et dynamiques. Déterminer l’efficacité d’une structure de données.Pointeur, paradigme orienté objet, encapsulation, modificateurs d’accès, notation U.M.L., classe vs. Instance, instanciation et libération, fuite de mémoire, notation Grand-O, pile, et file.Individuellement, sur papier, durant 3 périodes de cours.35%~ 25 mars
Travail 3Déterminer le niveau d’accès des données membres et des méthodes. Procéder à la codification de constructeurs et de destructeurs. Différencier une classe d’une instance. Programmer des applications fiables, robustes, faciles à entretenir, conviviales et efficaces. Différencier l’utilisation d’un type de base et des pointeurs. Choisir la bonne structure de données selon le contexte. Programmer des structures de données statiques et dynamiques. Déterminer l’efficacité d’une structure de données. Consulter, trier et parcourir une structure de données.Pointeur, paradigme orienté objet, encapsulation, modificateurs d’accès, notation U.M.L., classe vs. Instance, instanciation et libération, fuite de mémoire, itérateur et parcours, file, et liste.Individuellement, sur ordinateur, à l’intérieur et à l’extérieur des cours.8%~ 1 avril
Travail 4Déterminer le niveau d’accès des données membres et des méthodes. Procéder à la codification de constructeurs et de destructeurs. Différencier une classe d’une instance. Programmer des applications fiables, robustes, faciles à entretenir, conviviales et efficaces. Différencier l’utilisation d’un type de base et des pointeurs. Choisir la bonne structure de données selon le contexte. Programmer des structures de données statiques et dynamiques. Déterminer l’efficacité d’une structure de données. Consulter, trier et parcourir une structure de données. Effectuer la sérialisation de structures de données.Pointeur, paradigme orienté objet, encapsulation, modificateurs d’accès, notation U.M.L., classe vs. Instance, instanciation et libération, et fuite de mémoire, récursivité, tri, itérateur et parcours, pile, file, liste, arbre, abstraction, et fichier séquentiel.Individuellement, sur ordinateur, à l’intérieur et à l’extérieur des cours.16 %~ 29 avril
Examen 2Déterminer le niveau d’accès des données membres et des méthodes. Procéder à la codification de constructeurs et de destructeurs. Différencier une classe d’une instance. Programmer des applications fiables, robustes, faciles à entretenir, conviviales et efficaces. Différencier l’utilisation d’un type de base et des pointeurs. Choisir la bonne structure de données selon le contexte. Programmer des structures de données statiques et dynamiques. Déterminer l’efficacité d’une structure de données. Consulter, trier et parcourir une structure de données.Pointeur, paradigme orienté objet, encapsulation, modificateurs d’accès, classe vs. Instance, instanciation et libération, et fuite de mémoire, récursivité, tri, itérateur et parcours, liste, arbre, et abstraction.Individuellement, sur papier, durant 3 heures lors de la semaine des examens.35%~ 27 mai

Calendrier des activités

SemaineDateContenu et activitésTravaux à domicileÉvaluations
128 janvierPlan de cours et Révision.
24 févrierPointeur et Structure.
311 févrierPile statique.
418 févrierFile statique.Travail 1
525 févrierParadigme orienté objet.Travail 1
611 marsFile dynamique.Travail 2
718 marsPile dynamique.Travail 2
825 marsItérateur et Révision.Examen et Travail 2
91 avrilListe dynamique.Travail 3
108 avrilArbre binaire et Parcours.Travail 3
1115 avrilArbre A.V.L.Travail 3
1222 avrilAbstraction et Polymorphisme.Travail 3
1329 avrilTri.Travail 4
146 maiFichier séquentiel.Travail 4
1520 maiRévision.Travail 4
Journées d'évaluations27 maiExamen.Examen et Travail 4

Modalités et contexte du cours

Responsabilités des étudiants et des étudiantes

Les étudiantes et les étudiants sont les principaux acteurs de leur apprentissage; selon la Politique institutionnelle d’évaluation des apprentissages (PIEA, article 4.1), elles et ils ont la responsabilité de l'acquisition des connaissances et des habiletés requises pour le développement des compétences nécessaires à la réussite des cours et du programme auxquels elles et ils sont inscrits. Pour assumer leurs responsabilités, elles et ils doivent notamment :

  • Consulter et conserver les plans de cours;
  • Être présents et participer aux activités d’apprentissage ou d’évaluation des cours auxquels elles et ils sont inscrits;
  • Se préparer aux activités d’apprentissage et d’évaluation;
  • Ajuster, s’il y a lieu, leur démarche d’apprentissage selon les commentaires et résultats reçus, et recourir, au besoin, aux ressources d’aide supplémentaires;
  • Prendre connaissance des modalités de l’épreuve synthèse de leur programme;
  • Respecter les principes de l’intégrité académique;
  • Respecter les procédures et les délais prescrits lorsqu’elles et ils se prévalent des droits de recours possibles.

Qualité du français

La maitrise de la langue orale et écrite est importante et celle-ci doit faire l’objet d’une attention particulière dans toutes les disciplines. (PIEA, article 7.11)

Dans les cours pour lesquels la langue française n’est pas un objectif d’apprentissage, une pénalité est appliquée pour les erreurs reliées à la qualité du français oral ou écrit de toute évaluation réalisée en langue française. Cette pénalité atteint 10 % de la note maximale de l’évaluation lorsque le nombre maximal de fautes est relevé. (PIEA, article 7.11.3)

Retard dans la remise des travaux

Tous les travaux doivent être remis à la date et à l’heure, et selon les modalités indiquées par l’enseignant ou l’enseignante. Une pénalité de 10 % de la note maximale d’un travail par jour de retard est appliquée à tout travail remis après la date de remise indiquée par l’enseignant ou l’enseignante, incluant les jours de fin de semaine et les congés indiqués au calendrier scolaire. […] La note « zéro » est attribuée à tout travail remis après que les travaux ont été corrigés et rendus à l’ensemble des étudiants et des étudiantes du groupe-cours. (PIEA, article 7.12)

Absence

Lorsque l’étudiant ou l’étudiante prévoit devoir s’absenter lors d’une évaluation pour des raisons sérieuses de nature médicale, juridique ou humanitaire, il ou elle doit préalablement aviser son enseignant ou son enseignante et fournir le motif de son absence. Toute absence motivée à une évaluation et acceptée par l’enseignant ou l’enseignante donne droit à une évaluation différée. Dans tout autre cas, la note « zéro » est attribuée. (PIEA, article 7.14.1)

Lorsqu’une absence à une évaluation arrive de façon imprévue et indépendante de sa volonté, l’étudiant ou l’étudiante doit contacter son enseignant ou son enseignante le plus tôt possible, justifier son absence à l’aide de motifs sérieux et prendre une entente. (PIEA, article 7.14.2)

Plagiat, tricherie et fraude

L'intégrité académique est une valeur fondamentale au Cégep de Lanaudière à Joliette; c'est l'attitude qui consiste à faire preuve d’honnêteté intellectuelle dans la réalisation de ses évaluations. L’intégrité académique regroupe plusieurs concepts, dont l’erreur méthodologique, le plagiat, la tricherie et la fraude. (PIEA, article 9)

Le plagiat, la tricherie et la fraude sont considérés comme des actes de tromperie et constituent des délits selon la PIEA. Ainsi, toute personne impliquée dans de tels délits est passible de sanctions. La sanction peut être une déclaration sans pénalité sur la note, ou une déclaration avec pénalité pouvant aller jusqu’à l’attribution de la note « zéro » pour l’évaluation. (PIEA, article 9.6)

La tricherie et la fraude ainsi que la récidive de plagiat sont des comportements qui contreviennent au Règlement relatif aux conditions de vie et au fonctionnement du Cégep régional de Lanaudière. Ainsi, en plus de recevoir les sanctions prescrites [par la PIEA], l’étudiant ou l’étudiante s’expose à des sanctions supplémentaires conformément à ce règlement, selon la gravité de sa conduite. (PIEA, article 9.9)

Propriété intellectuelle

« Tout document produit dans le cadre de ce cours, incluant, mais non limitativement, toute vidéo préenregistrée ou en direct est protégé par le droit d’auteur, par le droit à la propriété intellectuelle ainsi que par le droit à l'image, et ce, sans égard au support utilisé. Il est strictement interdit de copier, de redistribuer, de reproduire, de republier, d’emmagasiner sur tout médium, de retransmettre ou de modifier ces documents. Toute contravention à ces conditions d'utilisation pourrait faire l'objet de sanction(s) de la part du Cégep. »

Interdictions de captation et d’utilisation

Il est formellement interdit pour les étudiants et étudiantes de :

  • Capter la voix ou l’image de l’enseignant ou l’enseignante et des étudiants et étudiantes qui participent à un cours ainsi que de les reproduire ou de les diffuser par tout moyen ou procédé, incluant les médias sociaux;
  • Effectuer des saisies d’écran, à moins d’en avoir préalablement obtenu l’autorisation;

Diffuser des documents ou des images inappropriées pendant les cours ou les encadrements en ligne ou par le biais de la plateforme utilisée.

Utilisation partielle de l’IA générative

Dans le cadre des évaluations sommatives suivantes :

  • Travaux.

L’utilisation d’outils d’intelligence artificielle générative (IAG) est permise, mais uniquement pour l'usage suivant :

  • Tests unitaires.

Les étudiants doivent déclarer toute utilisation d’IAG dans leur travail (outil utilisé, tâches effectuées, parties du texte générées).

Pour toutes les autres évaluations non mentionnées ci-haut, l’utilisation de l’intelligence artificielle générative (IAG) n’est pas permise.

Toute utilisation non déclarée ou dépassant les limites précisées sera considérée comme une atteinte à l’intégrité académique. Conformément à la section 9 – Intégrité académique, toute forme de plagiat, tricherie ou fraude liée à l’utilisation d’outils numériques, incluant l’IAG, entraîne l’application des procédures et sanctions prévues (PIEA, art. 9.3 à 9.6).

Encadrement et disponibilité

Disponibilité

Des disponibilités sont offertes, à l’extérieur des périodes de cours, sur demande par courriel.

Communications

Il est possible de communiquer à tous moments par courriel ou par le serveur Discord du département.

Services et mesures d’aide

Des services et des mesures d’aide sont disponibles pour soutenir les étudiants et les étudiantes dans leur réussite. En voici quelques-uns :

  • Le site Ma réussite à Joliette, qui comporte notamment des sections sur les services d’aide, les outils de réussite, incluant de l’information sur la gestion du temps, l’évaluation des apprentissages et l’intégrité académique;
  • Le Service de l’organisation et du cheminement scolaires où sont situés les aides pédagogiques individuels;
  • Le Service des affaires étudiantes, qui regroupe notamment les services d’aide psychosociale et les services adaptés;
  • La bibliothèque qui offre du soutien à la recherche documentaire et où sont situés les différents centres d’aide.

Ressources liées au cours

Matériel obligatoire

Il n’y a pas de matériel obligatoire à se procurer, mais un tableau blanc portatif est fortement conseillé.

Ouvrages obligatoires

Il n’y a pas d’ouvrage obligatoire à se procurer.

Plateformes et outils technologiques

La plateforme Moodle du Cégep de Lanaudière à Joliette sera utilisée pour les résumés ainsi que les distributions, les remises et les corrections des travaux et des examens.

Médiagraphie

Normes de programmation et de documentation du département de d’informatique.