Aller au contenu principal

Plan de cours — Réseaux II (420-M54-JO)

SessionAutomne
Année2026
Titre du coursRéseaux II
Code du cours420-M54-JO
Pondération2-2-2
Préalables420-M34-JO, 420-C46-JO
Date limite de désinscriptionSelon le calendrier scolaire
Date limite d'abandonSelon le calendrier scolaire
Discipline420 - Techniques de l'informatique
DépartementTechniques de l'informatique
Programme420.B0 Techniques de l'informatique
Enseignant(e)BureauMoyen de communication
Michel Di CrociA-312Teams ou Discord

Présentation du cours​

Descriptif du cours​

Les étudiants et étudiantes étudient la programmation réseau en utilisant un langage de programmation approprié : Go. Ce dernier facilite la création d'interfaces REST API, la communication multiprocessus et l'utilisation des protocoles réseau TCP, UDP et des websockets. Le service développé est ensuite empaqueté, configuré et déployé dans un environnement Kubernetes.

Place du cours​

Ce cours est donné à la 5e session de la technique et a comme préalable 420-M34-JO (Réseaux I) et 420-C46-JO (Conception et développement orientés objet). Il n'est préalable à aucun autre cours.

Objectifs du cours​

00SQ – Compétence complète 00SR – Compétence partielle

Objectif terminal du cours​

À la fin du cours, l'étudiant ou l'étudiante aura une bonne compréhension de la programmation réseau : principalement avec la programmation multiprocessus et la programmation réseau en utilisant les connaissances antérieures (HTTP, TCP, UDP, IP).

Objectifs d'apprentissage du cours​

  • Comprendre les besoins du client
  • Configurer l'IDE
  • Utiliser Git pour la gestion de projets
  • Apprendre le langage de programmation approprié pour la programmation client / serveur
  • Créer des algorithmes
  • Créer des API
  • Utiliser des fils de programmation multiples pour répondre aux requêtes réseau simultanées
  • Utiliser des tests unitaires et de performance
  • Appliquer la sécurité à une communication réseau
  • Déployer une application

Séquence 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 — Langage Go​

  • Durée : 7 heures
  • Résultats attendus : au terme de cette séquence, l'étudiant ou l'étudiante sera en mesure de développer des applications simples en utilisant le langage de programmation Go.
  • Stratégies ou méthodes pédagogiques : ateliers donnés à chaque cours afin d'obtenir l'expérience de développement. Mini-Test 1.

Contenus

  • Introduction au langage
  • Introduction à l'IDE
  • Déclaration / initialisation / assignation
  • Types de base / array / slices / maps
  • Structures de contrôle
  • Fonctions
  • Struct / interfaces / pointeurs
  • Programmation multifils
  • Channels
  • Paquetage et déploiement
  • Tests unitaires
  • Tests de performance (benchmark)

Activités : ateliers, Mini-Test 1

Séquence d'apprentissage 2 — Concurrence​

  • Durée : 8 heures
  • Résultats attendus : au terme de cette séquence, l'étudiant ou l'étudiante sera en mesure de développer une application qui exécute plusieurs activités concurrentes dans la même application.
  • Stratégies ou méthodes pédagogiques : ateliers. Mini-Test 1.

Contenus

  • Mutex
  • Deadlock
  • Livelock / Starvation
  • Channel (avancé)
  • Package Context

Activités : ateliers, Mini-Test 1

Séquence d'apprentissage 3 — Serveur REST​

  • Durée : 13 heures
  • Résultats attendus : au terme de cette séquence, l'étudiant ou l'étudiante sera en mesure de développer des applications réseau, par l'entremise des protocoles de communication TCP ou UDP, ou même par l'entremise d'un socket de communication.
  • Stratégies ou méthodes pédagogiques : ateliers donnés à chaque cours, TP1 et Examen 1. Mini-Test 2.

Contenus

  • Package NET
  • Composition / écoute
  • Protocoles supportés
  • Wireshark
  • API et REST

Activités : ateliers, TP 1, Examen 1, Mini-Test 2

Séquence d'apprentissage 4 — Déploiement et configuration Kubernetes​

  • Durée : 20 heures
  • Résultats attendus : au terme de cette séquence, l'étudiant ou l'étudiante sera en mesure d'empaqueter, de configurer, de publier et de faire évoluer un service réseau dans un environnement Kubernetes local (kind/k3d).
  • Stratégies ou méthodes pédagogiques : ateliers donnés à chaque cours. TP 2, Mini-Test 3.

Contenus

  • Docker (Dockerfile multi-étapes, image scratch/distroless)
  • Architecture Kubernetes (Pods, Deployments, Nodes)
  • Cluster local (kind / k3d)
  • ConfigMaps et Secrets
  • Services (ClusterIP, NodePort, LoadBalancer) et kube-proxy
  • DNS interne (CoreDNS) et Ingress
  • Sondes de disponibilité (Readiness) et d'activité (Liveness)
  • Mises à jour progressives et montée en charge horizontale

Activités : ateliers, TP 2, Mini-Test 3

Séquence d'apprentissage 5 — Communication réseau et sécurité​

  • Durée : 12 heures
  • Résultats attendus : au terme de cette séquence, l'étudiant ou l'étudiante sera en mesure d'implémenter de la sécurité informatique dans ses applications réseautiques.
  • Stratégies ou méthodes pédagogiques : ateliers, TP 2, Examen 2, Mini-Test 4.

Contenus

  • Communication TCP, UDP
  • Formatage de message (TLV) et hachage
  • Notions de chiffrement (symétrique / asymétrique)
  • TLS (lien avec la terminaison TLS à l'Ingress)
  • JWT

Activités : ateliers, TP 2, Examen 2, Mini-Test 4

Évaluation des apprentissages​

Évaluations formatives​

Des ateliers distribués à chaque période de cours seront considérés comme des évaluations formatives ; ils ne seront pas corrigés, mais des tests unitaires fournis par le professeur permettront de valider le code produit. Ces évaluations formatives faciliteront la réalisation du TP et des examens.

Évaluations sommatives​

Il y aura 8 évaluations sommatives dans toute la session :

  • 2 Travaux pratiques
  • 4 Mini-Tests
  • 2 Examens

Moodle, avec le module Safe Exam Browser, sera utilisé pour les évaluations (examens et minitests).

Épreuve finale de cours​

Le TP #2 et l'examen #2 sont l'épreuve finale du cours.

Modalités des travaux d'équipe​

Il n'y a pas de travaux d'équipe dans ce cours.

Modalités de consultation des évaluations​

Les grilles de correction seront disponibles sur Moodle.

Calendrier des évaluations sommatives​

Type d'évaluationContenuContexte de réalisationPondérationDate prévue
TP 1Séquences d'apprentissage 1, 2, 3En classe et à la maison ; remise sur GitLab15 %Semaine 6 (donné) / Semaine 8 (remise)
Mini-Test 1Séquences d'apprentissage 1, 2En classe5 %Semaine 4
Mini-Test 2Séquence d'apprentissage 3En classe5 %Semaine 7
Examen 1Séquences d'apprentissage 1, 2, 3En classe25 %Semaine 7
Mini-Test 3Séquence d'apprentissage 4En classe5 %Semaine 11
Mini-Test 4Séquence d'apprentissage 5En classe5 %Semaine 15
TP 2Séquences d'apprentissage 4, 5En classe et à la maison ; remise sur GitLab15 %Semaine 13
Examen 2Séquences d'apprentissage 1-5En classe25 %Semaine 15

Calendrier des activités​

SemaineContenu et activitésTravaux à domicileÉvaluations
1Introduction à Go, initialisation des variables, array/slices/maps, structures de contrôle, fonctionsAteliers 1, 2
2Struct/interfaces/pointeurs, ligne de commande, paquetage, tests unitaires, benchmarksAteliers 3, 4
3Programmation multifils, channelsAteliers 5, 6
4Deadlock, mutex, livelock/starvationAteliers 7, 8Mini-Test 1
5Channel (avancé), package Context, condition de courseAteliers 9, 10
6IO, serveur web, connexion à une BD, APITP 1 (donné)
7Mini-Test 2, Examen 1
8Docker (Dockerfile multi-étapes pour binaire Go), images minimales (scratch/distroless), introduction à Kubernetes (architecture, cluster local kind/k3d)Ateliers 11, 12Remise TP1
9TCP, UDP (comparaison), configuration Kubernetes : ConfigMaps et SecretsAteliers 13, 14
10Formatage de message (TLV) et hachage, publication Kubernetes : Services (ClusterIP, NodePort, LoadBalancer), kube-proxyAteliers 15, 16
11DNS interne (CoreDNS) et Ingress, WebsocketAteliers 17, 18Mini-Test 3
12Chiffrement symétrique/asymétrique, TLS, sondes de disponibilité (Readiness) et d'activité (Liveness)Ateliers 19, 20
13Mises à jour progressives, JWTAteliers 21, 22TP 2 (donné)
14Montée en charge horizontale et répartition de chargeAteliers 23, 24
15— (aucune nouvelle matière — semaine de révision)Mini-Test 4, Examen 2
Journées d'évaluationsRemise TP 2

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 maîtrise 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, 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 (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).

L'étudiant ou l'étudiante pourrait être amené à expliquer verbalement le résultat de son travail lors des projets. Dans le cas où il ou elle serait incapable de fournir des explications et de répondre aux questions de l'enseignant ou de l'enseignante, l'enseignant ou l'enseignante se réserve le droit d'appliquer une pénalité pouvant aller jusqu'à l'attribution de la note « zéro » pour l'évaluation.

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'intelligence artificielle générative (IAG)​

Dans le cadre des évaluations sommatives suivantes :

  • TP1
  • TP2

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

  • Création d'interface au besoin
  • Correction de bugs

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

Remise des travaux​

  • Les travaux seront à remettre sur GitLab ou GitHub. Au premier cours, chaque étudiant crée un repository et y donne accès au professeur afin de permettre l'évaluation pendant la session. Chaque étudiant est responsable de la gestion de son repository ; aucune autre forme de remise ne sera acceptée.
  • Le non-respect des normes du site https://cours.techinfojoliette.ca pourrait occasionner une pénalité de 10 % sur l'évaluation.

Encadrement et disponibilité​

Disponibilité​

LundiMardiMercrediJeudiVendredi
8:15420-1A3420-M13420-M54
9:10420-1A3420-M13420-M54
10:05420-1A3420-M34Dispo
11:00420-1A3420-M34Dispo
11:55DispoDispo
12:50DispoDispo
13:45DispoDispo
14:40420-M54420-M34
15:35420-M54
16:30
17:25

(Grille de disponibilité extraite du document source ; la mise en page du tableau d'origine se prête à l'ambiguïté — à valider auprès de l'horaire officiel en cas de doute.)

Communications​

Privilégier les communications durant la classe, sinon pendant l'horaire du Cégep (lundi au vendredi de 8h à 16h30). Les communications devront être sur Teams ou sur Discord pour permettre une discussion. Les réponses seront données selon la disponibilité et le jugement du professeur.

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ées les aides pédagogiques individuelles;
  • 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​

Plateformes et outils technologiques​

https://go.dev

Go sera le langage de programmation à utiliser pendant la session ; il peut s'installer aussi bien sur Windows, sur GNU/Linux que sur macOS.

Médiagraphie​

  • Woodbeck, Adam (2021). Network programming with Go: code secure and reliable network services from scratch. No Starch Press.
  • Steele, Tom (2020). Black Hat Go: Go programming for hackers and pentesters. No Starch Press.

Les normes du département sont disponibles ici : https://cours.techinfojoliette.ca

Les notes de cours, ateliers, TP seront disponibles graduellement sur : https://cours.techinfojoliette.ca