Logo ÉTS
Session
Cours
Responsable(s) Julien Gascon-Samson

Se connecter
 

Sauvegarde réussie
Echec de sauvegarde
Avertissement
École de technologie supérieure

Responsable(s) de cours : Julien Gascon-Samson


PLAN DE COURS

Automne 2021
GTI525 : Technologies de développement Internet (3 crédits)





Préalables
Programme(s) : 7065,7070,7365,7610
             
  Profils(s) : Tous profils  
             
    Minimum 47 crédits ET LOG210    
             
Unités d'agrément
Total d'unités d'agrément : 58,8 36,7 % 63,3 %




Qualités de l'ingénieur

Qn
Qualité visée dans ce cours  
Qn
  Qualité visée dans un autre cours  
  Indicateur enseigné
  Indicateur évalué
  Indicateur enseigné et évalué



Descriptif du cours

À la fin de ce cours, l'étudiant sera en mesure :

  • de décrire l’infrastructure de base d’Internet, du Web et d’une application Web;
  • d'expliquer le rôle des principaux éléments de cette infrastructure (matériel, protocoles, langages, serveurs, navigateurs, etc.);
  • de nommer les principales technologies de développement (langages) d’applications Web statiques et dynamiques et expliquer les principales caractéristiques de chacune;
  • d'identifier les particularités du développement en environnement Web et en tenir compte dans la conception, le développement et le déploiement d’applications Web;
  • de concevoir, développer et déployer des applications Web dynamiques, incluant le choix de l’architecture appropriée, la conception HTML et la programmation côté client et côté serveur basée dans le cadre d'une méthodologie structurée du génie des technologies de l’information;
  • d'appliquer les patrons de conception pertinents et spécifiques à la conception d’applications Web.

Le cours couvre la présentation des outils technologiques et architecturaux actuels pour effectuer le développement d’applications Internet.

Les séances de laboratoire permettent la mise en oeuvre de ces différentes technologies pour construire une application Internet typique consistant en un site Web interactif connecté à des systèmes de données.

Préalable : cumuler au moins 47 crédits de cours.




Objectifs du cours

Les objectifs du cours sont les suivants :

  1. Comprendre et décrire la structure des applications web modernes, ainsi que les différentes technologies fondatrices et les standards qui sous-tendent le web d'aujourd'hui.

  2. Comprendre et utiliser les langages côté-client et côté-serveur (JavaScript, HTML, CSS, etc.), les technologies du web ainsi que les APIs ouvertes du web afin de concevoir des applications web modernes frontales et dorsales robustes et sécuritaires qui respectent les standards.

  3. Appliquer les principes pertinents du génie et des TI et du génie logiciel à la conception d’application web modernes, notamment en ce qui a trait aux standards établis, aux enjeux de sécurité, aux bonnes pratiques et à l'utilisation des éléments architecturaux et de conception pertinents.

  4. Comprendre et décrire les interactions dynamiques entre JavaScript et le DOM, les différents éléments du navigateur, les interactions avec les usagers, ainsi que l'accès aux ressources externes.

  5. Survoler et décrire certaines nouvelles tendances émergentes du web.




Stratégies pédagogiques

Les séances de cours seront d'une durée de 3h / semaine pour 12 semaines, plus un examen intra (voir les modalités à la section Évaluation). Le contenu du cours sera présenté principalement sous forme de présentations (format PDF). Les notions théoriques seront complétées par plusieurs démonstrations et exemples qui seront effectués en classe de manière intéractive, ainsi que par des exercices en équipe. Pour faciliter la compréhension, les différents exemples seront mis à la disposition des étudiants sur les plate-formes de collaboration Moodle et/ou GitHub, et il sera possible de les exécuter sur un ordinateur personnel, dans un navigateur moderne ou en ligne de commande.

De plus, un projet pratique sera réalisé durant les 12 séances de laboratoires (deux heures chacune). Un investissement de temps personnel équivalant à 4h/semaine est également requis afin de répondre aux objectifs pédagogiques du cours (travaux pratiques, relecture et compréhension de la matière et des exercices, préparation aux examens, etc.).




Utilisation d’appareils électroniques

Le professeur permet l'utilisation d'appareils électroniques en cours dans la mesure ou ca ne perturbe pas le bon deroulement du cours et que ca ne dérange pas les autres étudiants ainsi que le professeur.  Cependant, il est interdit d'enregistrer (audio,photo ou vidéo) en totalité ou en partie les séances de cours  de quelques façons que ce soit sans son autorisation préalable.




Horaire
Groupe Jour Heure Activité
01 Lundi 13:30 - 15:30 Laboratoire (Groupe A)
Lundi 15:30 - 17:30 Laboratoire (Groupe B)
Mercredi 13:30 - 17:00 Activité de cours
02 Mercredi 18:00 - 20:00 Laboratoire
Jeudi 18:00 - 21:30 Activité de cours



Coordonnées de l’enseignant
Groupe Nom Activité Courriel Local Disponibilité
01 Mathieu Dupuis Activité de cours Mathieu.Dupuis@etsmtl.ca A-4526
01 Jessy Anglehart-Nunes Laboratoire (Groupe A) jessy.anglehart-nunes.1@ens.etsmtl.ca



Cours
Sujets Heures

Introduction / plan de cours

1 heure

Historique du web et anatomie d'un site web 1 heure
HTML et CSS 3 heures
JavaScript 1: principes et concepts de base, modèle orienté-objet prototypal 4 heures
JavaScript 2: modèle fonctionnel et fermetures 3 heures
Navigateur, minuteurs, modèle événementiel du DOM 3 heures
--- Intra (contenu approximatif) --- 3 heures
Manipulation du DOM 4 heures
AJAX, JSON, interactions client-serveur 2 heures
Node.js et JavaScript sur le serveur 4 heures
Patrons et architectures logicielles d’applications web, APIs, architectures REST 4 heures
Bases de données du web: SQL, NoSQL, MongoDB 3 heures

Sécurité du web

3 heures
Tendances émergentes (à déterminer) 1 heure
Examen final (période d'examens)

Notes:

  • Les heures sont des heures approximatives d’enseignement pour chaque sujet et sont sujettes à changement selon le déroulement du cours.
  • Le cours étant en évolution, il est possible que certains sujets soient couvert plus tôt ou plus tard dans la session.
  • La matière couverte à l’intra dépendra de l’état d’avancement dans la matière du cours à la date de l’examen.



Laboratoires et travaux pratiques

Les laboratoires visent dans un premier temps à mettre en pratique les connaissances acquises durant les cours qui ont une portée plus théorique. Dans un second temps, ils visent à permettre aux étudiants d'intégrer des notions et méthodes d'ingénierie acquises dans ce cours ainsi que dans des cours précédents (par exemple, conception logicielle, patrons de conception, documents et diagrammes d'architecture, tests). Finalement, les laboratoires visent également à permettre aux étudiants d'explorer des technologies complémentaires aux notions théoriques vues en classe (par exemple, l'utilisation de cadriciels (frameworks) web, d'APIs tierce-partie, etc.).

Les laboratoires sont effectués en partie dans les plages attitrées à l’horaire à raison de 2h/semaine, et complétés sur votre temps personnel. Note: il est recommandé d'assister aux laboratoires, puisque c'est la manière préviliégiée pour profiter de la disponibilité de votre chargé de lab.

Concrètement, le volet "laboratoire" du cours consiste en un projet d’application pratique qui est réalisé en équipe, et qui est découplé en 3 livrables. Les dates d’évaluation des différents livrables seront communiquées au cours de la session, et il est important que chacun des membres de l’équipe soit présent à chacune des séances de lab où un livrable est évalué, puisqu’une démonstration des fonctionnalités du livrable devra être faite au chargé de laboratoire.

Note: les sujets et énoncés des différents livrables seront communiqués durant la session; mais ne suivront pas toujours la progression du cours théorique -- il sera demandé aux étudiant(e)s d'explorer par eux-mêmes certains concepts nécessaires à la réalisation des laboratoires, même s'ils n'ont pas encore été présentés durant le cours.




Utilisation d'outils d'ingénierie

Le « web » visant à être un monde ouvert, nous visons à réduire notre dépendance à des outils, systèmes d’exploitation ou environnements de développement spécifiques! Nous utiliserons les outils suivants (SVP assurez-vous qu'ils sont installés sur votre ordinateur) :

  • Les langages HTML, CSS, JavaScript et l’environnement d’exécution Node.js ainsi que le gestionnaire de modules npm

  • Un navigateur moderne qui respecte les standards du web

  • Les outils de débogage du navigateur

  • GitHub en tant qu’outil de contrôle de versions et de travail collaboratif

  • L’engin de bases de données MongoDB

  • Un outil de conception UML

  • Il est recommandé d’utiliser un éditeur de texte adéquat, tel que Atom, Sublime, VSCode, Emacs, VIM, ou autre.

  • D’autres outils pertinents pourront s’ajouter à cette liste.

Notes:

  • Certains cadriciels et certaines technologies web spécifiques pourront être utilisées en laboratoire
  • Puisque les examens seront faits sur ordinateur, avoir certains de ces outils à votre disposition lors de l'examen facilitera votre travail.



Évaluation

Laboratoires (projet en équipe découplé en 3 livrables)

  • Livrable 1: 8%
  • Livrable 2: 11%
  • Livrable 3: 11%

30 %

Examen intra (individuel)

30 %

Examen final (individuel, cumulatif)

40 %

 

À noter :

  • Double-seuil: une moyenne inférieure à 50% dans les évaluations individuelles entraîne automatiquement un échec au cours. Ceci est une condition nécessaire mais non suffisante pour réussir ce cours.
  • L'examen intra et final auront lieu sur ordinateur, via la fonctionnalité "Examen" de la plate-forme Moodle. Si les conditions permettent que les examens soient tenus en présentiel, une solution sera envisagée afin que toutes les personnes inscrites puissent faire leur examen à l'ordinateur.



Double seuil
Note minimale : 50



Dates des examens intra
Groupe(s) Date
1 13 octobre 2021



Date de l'examen final
Votre examen final aura lieu pendant la période des examens finaux, veuillez consulter l'horaire à l'adresse suivante : http://etsmtl.ca/Etudiants-actuels/Baccalaureat/Examens-finaux


Politique de retard des travaux
Tout travail (devoir pratique, rapport de laboratoire, rapport de projet, etc.) remis en retard sans motif valable, c’est-à-dire autre que ceux mentionnés dans le Règlement des études (1er cycle, article 7.2.7 b / cycles supérieurs, article 6.5.4 b) se verra attribuer la note zéro, à moins que d’autres dispositions ne soient communiquées par écrit par l’enseignant dans les consignes de chaque travail à remettre ou dans le plan de cours pour l’ensemble des travaux.

Dispositions additionnelles

Tout travail remis en retard recevra la note 0%, sauf si une entente a été prise au préalable avec l'enseignant et à la discrétion de ce dernier.




Absence à un examen
Dans les cinq (5) jours ouvrables suivants, la tenue de son examen, l’étudiant devra justifier son absence d’un examen durant le trimestre auprès de la coordonnatrice – Affaires départementales qui en référera au directeur du département ou du SEG. Pour un examen final, l’étudiant devra justifier son absence auprès du Bureau du registraire. Dans tous les cas, l’étudiant doit effectuer sa demande en complétant le formulaire prévu à cet effet qui se trouve dans son portail Mon ÉTS/Formulaires. Toute absence non justifiée par un motif majeur (maladie certifiée par un billet de médecin, décès d’un parent immédiat, Activité compétitive d’un étudiant appartenant à un club scientifique ou un club sportif d’élite de l’ÉTS ou au programme « Alliance sport étude » ou autre) à un examen entraînera l’attribution de la note zéro (0).



Plagiat et fraude
Les clauses du « Règlement sur les infractions de nature académique de l’ÉTS » s’appliquent dans ce cours ainsi que dans tous les cours du département. Les étudiants doivent consulter le Règlement sur les infractions de nature académique (https://www.etsmtl.ca/docs/ETS/Gouvernance/Secretariat-general/Cadre-reglementaire/Documents/Infractions-nature-academique ) pour identifier les actes considérés comme étant des infractions de nature académique ainsi que prendre connaissance des sanctions prévues à cet effet.  À l’ÉTS, le respect de la propriété intellectuelle est une valeur essentielle et les étudiants sont invités à consulter la page Citer, pas plagier ! (https://www.etsmtl.ca/Etudiants-actuels/Baccalaureat/Citer-pas-plagier).



Documentation obligatoire

Aucune documentation n'est obligatoire - les diapositives du cours contiennent l'ensemble de la matière, en complément avec les exercices et exemples.




Ouvrages de références

Aucun ouvrage de référence obligatoire.

Complémentaires

  • La série de livres numériques “You Don’t Know JS” (gratuits en ligne: https://github.com/getify/You-Dont-Know-JS) -- il est recommandé de lire certaines sections de cette série de livres pour vous aider à clarifier certains concepts du cours.

  • L'ouvrage "JavaScript: The good parts” de Doug Crockford est une bonne référence sur JavaScript

  • D'autres ouvrages intéressants ou références en ligne pourront vous être suggérés au fil de la session.




Adresse internet du site de cours et autres liens utiles

Le site du cours est disponible sur Moodle au https://ena.etsmtl.ca/