Échange de données 1

Chapitres

Pour référence uniquement, version officielle publiée sur LÉA

Plan de cours

A-2025

Échange de données 1

420-0SV-SW

2-2-1

1.66

Préalable(s) et prérequis à ce cours

420-0Q2-SW; 420-1Q2-SW

Préalable ou prérequis pour le(s) cours suivant(s)

420-1SV-SW

Informations sur les groupes-cours ainsi que sur les enseignant(e)s
ÉtudiantsSess.ProgrammeEnseignantLocalCourriel
203420.B0 - Techniques de l'InformatiqueJames Hoffman1131Ajhoffman@cshawi.ca
Compétences
ObjectifCode
Effectuer le développement de services d’échange de données0SU

Concevoir, développer, déployer et documenter un service web d’échange de données partir d’un devis en respectant les standards de programmation, format des données et mécanisme de sécurité.

Composante de formation
Formation générale commune
Formation générale propre
Formation générale complémentaire
Formation spécifique
DépartementInformatique
Coordonnateur(trice)Maude-Amélie Dufresne, Lyne Amyot
Date d'approbationAoût 2025

Note préliminaire

Le cours Échange de données I appuie la formation en développement d’applications web offerte dans le programme. En effet, il est de plus en plus commun de séparer, en partie ou en totalité, le traitement d’une application web en un ou plusieurs services. Ces services doivent être accessible aux autres composants logiciels (clients web, mobile, embarqué, etc.) d’où la notion d’échange de données pour assurer la communication entre ces entités.

Tu verras les concepts client-serveur d’un API exploitant le protocole HTTP. Tu seras exposé aux 2 côtés de la communication : le client qui utilise un service web pour effectuer un traitement, stocker, récupérer, éditer ou supprimer des données; le serveur qui implémente ces fonctionnalités et les rends disponibles.

Objectifs d’apprentissage et contenus essentiels

Progression des apprentissages et contenus essentiels
DuréeObjectifs d'apprentissageContenus essentiels
~16hPréparer l'environnement de développement
  • Introduction à Ruby
  • Gestion des dépendances avec Ruby Gems
~4hAnalyser le projet de développement
  • APIs Web
    • RPC
    • REST
~6hPréparer la base de données
  • En mémoire
  • Fichier
  • SGBD
~30hProgrammer la logique applicative client, serveur et tests
  • Introduction au protocole HTTP
    • Structure
    • Format des données
    • Verbes
    • Authentification
  • Tests automatisés
~4hDéploiement et documentation
  • Exposer un service web
  • Documenter les fonctionnalités de l'API
  • Git

Méthodologie

Nous commencerons la session en nous appropriant le langage de programmation Ruby, que nous utiliserons par la suite pour implémenter les applications client-serveur HTTP.

Nous aborderons ensuite progressivement la notion de client, en communiquant avec un programme serveur existant. Puis, nous implémenterons ensuite les fonctionnalités du serveur.

Un bloc théorique, complété d'une démonstration technique introduira chacun des concepts. Puis, pour bien l'intégrer vous expérimenterez en réalisant un laboratoire pratique. Une évaluation de type examen viendra conclure chaque module.

Finalement, en guise de récapitulatif de la session, vous devrez réaliser un projet comportant les différentes mécaniques vues en classe.

Vous êtes responsable de votre réussite, je suis là pour vous guider et vous aider dans votre apprentissage. N'hésitez pas à expérimenter et me contacter pour vos questions spécifiques.

Présence aux cours, laboratoires et examens (règlement pédagogique 3)

La présence aux cours (théorie, laboratoires, stages...) est obligatoire et l’enseignant est tenu de la vérifier et de la consigner.

Lorsqu’un enseignant constate l’absence d’un étudiant et que celle-ci est justifiée, il peut offrir ou imposer des mesures de récupération appropriées.

L'étudiant qui s'absente à plus de 10% des périodes d'un cours s'expose à se voir refuser l'accès au cours et aux évaluations. Pour ma part, je prendrai les présences à chacun des cours.

L'étudiant absent à une évaluation sommative se verra attribuer la note zéro pour cette évaluation. Selon le motif à l'origine de cette absence, l’enseignant concerné décide, s'il y a lieu, des mesures à prendre en vue de compléter l'évaluation.

L’enseignant peut refuser l'accès à son cours à tout élève qui se présente en retard sans motif raisonnable.

L’enseignant peut exclure de son cours tout élève qui en entrave la bonne marche.

Fraude

Le plagiat, la fraude, la tentative de fraude ou la coopération à de tels actes entraînent des pénalités pouvant aller jusqu'à l'attribution de la note zéro.

L'utilisation des outils d'intelligence artificielle et LLM n'est pas prescrite mais doit s'inscrire dans une démarche d'apprentissage responsable et délibérée. L'inclusion d'artéfacts produits par ces outils lors de la remise d'un travail pourrait être considérée comme du plagiat.

Netiquette

La netiquette est appliquée selon les recommandations des services pédagogiques pour encadrer les échanges via les plateformes numériques utilisées au département.

Évaluation des apprentissages

Dans le cheminement du cours, mes interventions formatives prendront la forme d'encadrement personnalisé lors des exercices et des laboratoires effectués en classe.

Sauf indications contraires, les ressources suivantes sont disponibles lors des examens: les notes de cours de l'enseignant, la documentation officielle des outils utilisés et une feuille de note manuscrite recto-verso OU recto seulement pour un document numérique imprimé.

Ci-dessous, un calendrier des évaluations sommatives qui auront lieu pendant la session. Je t’indique à quelle semaine l’évaluation a lieu, le type d’évaluation, ainsi que l’objectif visé par cette évaluation.

Calendrier approximatif des évaluations
SemaineÉvaluationObjectif
4

Quiz 1

10%

    4

    Labo 1

    5%

    • Environnement de développement Ruby
    8

    Quiz 2

    10%

      8

      Labo 2

      5%

      • Client-Serveur HTTP get/post
      12

      Quiz 3

      10%

        12

        Labo 3

        5%

        • Client-Serveur HTTP REST
        15

        Laboratoire 4

        15%

        • Projet intégrateur
        16

        Évaluation terminale

        40%

        • Synthèse des concepts dans un examen pratique en laboratoire à partir du contexte fournit par l’enseignant

        Réussite du cours

        Pour réussir ce cours, tu dois obtenir un cumulatif de 60% sur l’ensemble des évaluations sommatives. Aucune évaluation de reprise n’est prévue.

        Une pénalité de 10% sera appliquée par jour de retard pour la remise des travaux, excepté s'il est précisé qu'aucun retard n'est permis pour un travail spécifique.

        Suite à une évaluation sommative, tu peux me demander une révision de note dans les 5 jours ouvrables suivant la réception du résultat cette évaluation. Je m’engage à te donner une réponse dans les 5 jours suivants.

        Une attention particulière sera portée sur la qualité du français écrit et oral lors des évaluations sommatives pour un poids maximum de 10% de l’évaluation.

        Les règles définies dans la RDEA s’appliquent, toutefois les précisions de ce plan de cours ont préséance, le cas échéant.

        Évaluation terminale

        Objectif

        Effectuer le développement de services d’échange de données.

        Nature

        Dans un contexte pratique, suivant les exigences d’un devis technique, l’étudiant devra démontrer qu’il est capable de programmer et manipuler un service d’échange de données.

        Contexte de réalisation

        Dans un environnement contrôlé

        Avec un éditeur de code et outils de développement

        À partir d'un devis

        Critères essentiels

        Analyser le projet de développement

        Préparer et manipuler la base de données

        Développer et exploiter un service d'échange de données

        Ressources

        Écouteurs

        Documentation autorisée

        http://jh.shawinigan.info/ed-1

        https://www.ruby-lang.org/en/documentation/

        https://lostisland.github.io/faraday/

        http://sinatrarb.com/documentation.html

        Références
        https://www.packtpub.com/product/polished-ruby-programming/9781801072724

        https://www.packtpub.com/product/comprehensive-ruby-programming/9781787280649

        https://developer.mozilla.org/en-US/docs/Web/HTTP

        https://frontendmasters.com/guides/learning-roadmap/http/

        https://roadmap.sh/backend

        https://www.manning.com/books/the-design-of-web-apis

        https://www.oreilly.com/library/view/designing-web-apis/9781492026914/

        http://www.restfulwebapis.org/chapters.html

        https://launchschool.com/books/http/read/background