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’apprentissage | Contenus |
|---|---|
| • 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’apprentissage | Contenus |
|---|---|
| • 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’apprentissage | Contenus |
|---|---|
| • 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’apprentissage | Contenus |
|---|---|
| • 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’évaluation | Contenu | Contexte de réalisation | Pondération | Date prévue |
|---|---|---|---|---|
| Projet – TP1 | Chapitres 1 à 2 | Remise GitHub | 10% | Semaine 7 |
| Projet – TP2 | Chapitres 1 à 4 | Remise GitHub | 10% | Semaine 15 |
| Mini-test 1 | Chapitre 1 | En classe sans documentation | 5% | Semaine 3 |
| Mini-test 2 | Chapitres 1 et 2 | En classe sans documentation | 5% | Semaine 5 |
| Mini-test 3 | Chapitres 1 et 2 | En classe sans documentation | 5% | Semaine 7 |
| Mini-test 4 | Chapitres 1 à 3 | En classe sans documentation | 5% | Semaine 11 |
| Examen – Intra | Chapitres 1 et 2 | En classe sans documentation | 25% | Semaine 8 |
| Examen – Final | Chapitres 1 à 4 | En classe sans documentation | 35% | Semaine 15 |
CALENDRIER DES ACTIVITÉS
| Semaine | Contenu et activités | Évaluation |
|---|---|---|
| 1 | Chapitre 1 – Python | |
| 2 | Chapitre 2 – Instructions | |
| 3 | Chapitre 2 – Instructions | Mini-test 1 |
| 4 | Chapitre 2 – Instructions | |
| 5 | Chapitre 2 – Instructions | Mini-test 2 |
| 6 | Chapitre 3 – Structure | |
| 7 | Chapitre 3 – Structure | Mini-test 3, présentation du TP1 |
| 8 | Temps pour le projet 1 | Remise du TP1 et Examen intra |
| 9 | Chapitre 3 – Structure | |
| 10 | Chapitre 3 – Structure | |
| 11 | Chapitre 3 – Structure | Mini-test 4 |
| 12 | Chapitre 4 – Algorithmes | |
| 13 | Chapitre 4 – Algorithmes | |
| 14 | Temps pour le projet 2 | Présentation du TP2 |
| 15 | Temps pour le projet 2 | Examen 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 :
- 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)
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.
| Horaire | LUNDI | MARDI | MERCREDI | JEUDI | VENDREDI |
|---|---|---|---|---|---|
| 08:15 - 09:05 | 1C7 – 2 | 1C7 – 1 | 1C7 – 1 | ||
| 09:10 - 10:00 | 1C7 – 2 | 1C7 – 1 | 1C7 – 1 | ||
| 10:05 - 10:55 | 1C7 – 2 | 1C7 – 2 | 1C7 – 2 | ||
| 11:00 - 11:50 | X | 1C7 – 2 | 1C7 – 2 | ||
| 11:55 - 12:45 | |||||
| 12:50 - 13:40 | 1C7 – 1 | X | X | ||
| 13:45 - 14:35 | 1C7 – 1 | X | X | ||
| 14:40 - 15:30 | 1C7 – 1 | X | X | ||
| 15:35 - 16:25 | |||||
| 16:30 - 17:20 | |||||
| 17:25 - 18:15 |
Communications
En ordre de préférence :
- Par courriel : philippe.girard.2@cegep-lanaudiere.qc.ca
- Message privé Discord : philippe.girard
- Message privé Teams
- MIO
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
- Python 3 documentation : https://docs.python.org/3/
- Python Cheatsheet : https://www.pythoncheatsheet.org/
- Normes de programmation Python : https://cours.techinfojoliette.ca/docs/normes/Programmation/Python