Aller au contenu principal

Programmation I

Présentation du cours​

Descriptif du cours​

Ce premier cours d’une série dédiée à la programmation a pour objectif général d’initier les étudiants et étudiantes au développement logiciel. Plus spécifiquement, il met l’accent sur le développement et la validation d’algorithmes afin de résoudre des problèmes simples à l’aide d’un langage de programmation, du respect des normes et de la documentation.

Place du cours​

Ce cours se donne à la première session, il n’a aucun préalable et il est préalable au cours 420-2C6-JO Programmation II. Il se donne en parallèle avec les cours 420-1B5-JO Rédaction numérique et 420-1A3-JO Systèmes d’exploitation I.

Objectifs du cours​

00Q2 – Utiliser des langages de programmation (partielle)

Objectif terminal du cours​

À la fin du cours, l’étudiant ou l’étudiante sera capable de développer une application en langage Python.

Objectifs d’apprentissage​

  • Concevoir des solutions algorithmiques simples
  • Élaborer des traces d'exécution
  • Utiliser une IA
  • Créer une application Python
  • Versionner le code
  • Critiquer des algorithmes générés par l’IA
  • Exécuter et résoudre des problèmes dans le programme
  • Utiliser l’IA pour expliquer et aider à résoudre une erreur
  • Élaborer un formulaire de tests manuel
  • Écrire des tests automatisés
  • Utiliser l’IA pour développer les tests automatisés

SÉQUENCE D’APPRENTISSAGE​

Méthode pédagogique : La majorité des cours auront la structure suivante : cours magistral suivi d’une période d’atelier formatif. Les ateliers non terminés en classe doivent être complétés à la maison.

Chapitre 1 : Python, éléments de base​

Objectifs d’apprentissageContenus
• Créer une application Python
• Élaborer des traces d'exécution
• Critiquer des algorithmes générés par l’IA
• Utiliser une IA
• Utiliser l’IA pour expliquer et aider à résoudre une erreur
• Langage de programmation Python
• Compilation/interprétation et exécution
• Fichier py et pyc
• Déclaration de variables, cases mémoires et types de données
• Opérateurs et expressions
• Instructions d’affectation
• Commentaires dans le code
• Normes de programmation
• Traces d’exécution
• Lecture et écriture en console
• Interprétation des messages d’erreurs
• Correction des erreurs
• Utilisation d’une IA en programmation (AGENTS.MD, limite du contexte, aide à l’étude)

Chapitre 2 : Instructions conditionnelles et itératives​

Objectifs d’apprentissageContenus
• Concevoir des solutions algorithmiques simples
• Critiquer des algorithmes générés par l’IA
• Élaborer des traces d’exécution
• Créer une application Python
• Exécuter et résoudre des problèmes dans le programme
• Élaborer un formulaire de tests manuel
• Versionner le code
• Algorithmes de base
• Étapes de développement d’un programme
• Instructions sélectives et itératives
• Exceptions
• Méthodes et paramètres
• Utilisation du débogueur
• Traces d’exécution
• Points d’arrêts
• Points de suivi
• Formulaire de tests manuels
• Git : commandes de base (init, clone, add, rm, mv, commit, amend, push, pull, status)

Chapitre 3 : Structures​

Objectifs d’apprentissageContenus
• Concevoir des solutions algorithmiques simples
• Critiquer des algorithmes générés par l’IA
• Élaborer des traces d'exécution
• Créer une application Python
• Exécuter et résoudre des problèmes dans le programme
• Élaborer un formulaire de tests manuel
• Écrire des tests automatisés
• Utiliser l’IA pour développer les tests automatisés
• Tableaux à une dimension
• Lecture et écriture de fichier
• Structure de données (list, set, tuple, dict)
• Modules
• Tests unitaires (sans classes, avec et sans IA)
• Commentaires dans le code (IA)
• Interprétation des messages d’erreurs (IA)
• Utilisation d’une IA en programmation (jeux de données)

Chapitre 4 : Algorithmes de fouille et tris​

Objectifs d’apprentissageContenus
• Concevoir des solutions algorithmiques simples
• Critiquer des algorithmes générés par l’IA
• Élaborer des traces d'exécution
• Créer une application Python
• Exécuter et résoudre des problèmes dans le programme
• Élaborer un formulaire de tests manuel
• Algorithme de fouille séquentielle
• Algorithmes de tris (bulle et SSS)
• Expressions régulières

ÉVALUATION DES APPRENTISSAGES​

Évaluations formatives​

Ateliers donnés après chaque cours théorique. Un examen formatif donné au moins 1 semaine avant l’examen intra.

Épreuve finale de cours​

Combinaison de l’examen intra et de l’examen final.

Modalités des travaux d’équipe​

Aucune évaluation sommative en équipe.

Modalités de consultation des évaluations​

Les grilles de corrections seront disponibles sur Moodle.

Calendrier des évaluations​

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

Type d’évaluationContenuContexte de réalisationPondérationDate prévue
Projet – TP1Chapitres 1 à 2Remise GitHub10%Semaine 7
Projet – TP2Chapitres 1 à 4Remise GitHub10%Semaine 15
Mini-test 1Chapitre 1En classe sans documentation5%Semaine 3
Mini-test 2Chapitres 1 et 2En classe sans documentation5%Semaine 5
Mini-test 3Chapitres 1 et 2En classe sans documentation5%Semaine 7
Mini-test 4Chapitres 1 à 3En classe sans documentation5%Semaine 11
Examen – IntraChapitres 1 et 2En classe sans documentation25%Semaine 8
Examen – FinalChapitres 1 à 4En classe sans documentation35%Semaine 15

CALENDRIER DES ACTIVITÉS​

SemaineContenu et activitésÉvaluation
1Chapitre 1 – Python
2Chapitre 2 – Instructions
3Chapitre 2 – InstructionsMini-test 1
4Chapitre 2 – Instructions
5Chapitre 2 – InstructionsMini-test 2
6Chapitre 3 – Structure
7Chapitre 3 – StructureMini-test 3, présentation du TP1
8Temps pour le projet 1Remise du TP1 et Examen intra
9Chapitre 3 – Structure
10Chapitre 3 – Structure
11Chapitre 3 – StructureMini-test 4
12Chapitre 4 – Algorithmes
13Chapitre 4 – Algorithmes
14Temps pour le projet 2Présentation du TP2
15Temps pour le projet 2Examen final et remise du TP2

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 :

  1. Consulter et conserver les plans de cours;
  2. Être présents et participer aux activités d’apprentissage ou d’évaluation des cours auxquels elles et ils sont inscrits;
  3. Se préparer aux activités d’apprentissage et d’évaluation;
  4. 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;
  5. Prendre connaissance des modalités de l’épreuve synthèse de leur programme;
  6. Respecter les principes de l’intégrité académique;
  7. 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)

Présentation des travaux

Tout répertoire git non conforme aux normes du département (cours.techinfojoliette.ca) seront refusés. L’application de la pénalité de retard de 10% par jour sera applicable jusqu’à ce que le répertoire de remise soit conforme. Exemples : document compressé, plusieurs versions (v1, final, final2, etc.), mauvaise architecture, etc.

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 (intégrité académique)​

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)

Utilisation partielle de l’IA générative (IAG)​

Dans le cadre des évaluations sommatives suivantes :

  • Projets – TP1 et TP2

L’utilisation d’outils d’intelligence artificielle générative (IAG) est permise, mais uniquement pour les usages suivants :

  • Explication/résumé d’un concept
  • Interprétation des messages d’erreurs
  • Documentation du code (pour le TP2 seulement)
  • Tests unitaires (pour le TP2 seulement)

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).

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.

ENCADREMENT ET DISPONIBILITÉ​

Disponibilité​

Voici mon horaire hebdomadaire, les cases indiquées par un X représentent mes disponibilités. Prendre rendez-vous est suggéré, car ma présence au bureau n’est pas garantie.

HoraireLUNDIMARDIMERCREDIJEUDIVENDREDI
08:15 - 09:051C7 – 21C7 – 11C7 – 1
09:10 - 10:001C7 – 21C7 – 11C7 – 1
10:05 - 10:551C7 – 21C7 – 21C7 – 2
11:00 - 11:50X1C7 – 21C7 – 2
11:55 - 12:45
12:50 - 13:401C7 – 1XX
13:45 - 14:351C7 – 1XX
14:40 - 15:301C7 – 1XX
15:35 - 16:25
16:30 - 17:20
17:25 - 18:15

Communications​

En ordre de préférence :

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​

Aucun matériel à acheter​

Logiciels utilisés​

  • Visual Studio Code
  • Python 3
  • Git

Plateformes et outils technologiques​

  • Moodle : mini-tests, examens et ateliers théoriques
  • cours.techinfojoliette.ca : normes, notes de cours, énoncés de projets/ateliers
  • Github : remise de projets

Médiagraphie​