Introduction et organisation du cours

Introduction et organisation du cours

https://github.com/heig-vd-devprodmed-course/heig-vd-devprodmed-course

Visualiser le contenu complet sur GitHub à cette adresse.

L. Delafontaine, avec l'aide de GitHub Copilot.

Ce travail est sous licence CC BY-SA 4.0.

Introduction et organisation du cours

Bienvenue au cours "Développement de produit média (DévProdMéd)" !

Introduction et organisation du cours

Qui suis-je

Ludovic Delafontaine

Ludovic Delafontaine
E-mail · GitHub

Introduction et organisation du cours

Mes objectifs et souhaits pour DévProdMéd

ProgServ1 et ProgServ2 vous ont donné de bonnes bases en PHP pour développer des applications web simples.

Vous avez sans doute identifié les difficultés à réaliser une application web complète et robuste à partir de zéro, car il est nécessaire de tout faire soi-même, avec tout ce que cela implique.

Mon objectif maintenant est de vous transmettre les compétences nécessaires pour réaliser des applications web professionnelles en se reposant sur des solutions existantes et éprouvées.

Introduction et organisation du cours

Comment me contacter

Selon vos préférences, vous pouvez utiliser l'un des canaux suivants pour toutes questions relatives au cours :

  • En personne, durant les sessions de cours ou en dehors.
  • Par e-mail (ludovic.delafontaine@heig-vd.ch).
  • Microsoft Teams :
    • Dans le canal Teams du cours (de préférence - n'hésitez pas à vous entraider si je ne suis pas disponible).
    • Message privé sur Teams (à éviter si possible).
Introduction et organisation du cours

Retrouvez le contenu complet de cette présentation sur GitHub

Cette présentation est un résumé du contenu complet disponible sur GitHub.

Pour plus de détails, retrouvez le contenu complet sur GitHub ou en cliquant sur l'en-tête de ce document.

Introduction et organisation du cours

Objectifs

  • Lister les objectifs du cours.
  • Lister l'organisation du cours.
  • Lister les modalités d'évaluation.
Introduction et organisation du cours

Objectifs du cours (1)

Selon GAPS, à la fin de ce cours, vous devriez être capable de :

  • Maîtriser des architectures client-serveur en suivant des patrons de concept reconnus ("design patterns" - MVC).
  • Maîtriser un framework de développement web.
  • Maîtriser une couche mapping objet-relationnel (ORM) pour la gestion d'une base de données.
  • Maîtriser les fondamentaux de sécurité dans le développement d'application web.
Introduction et organisation du cours

Objectifs du cours (2)

  • Réaliser des services web ("web services") simples utilisant une architecture "RESTful".

Grâce à ces compétences, la personne qui étudie sera en mesure de développer des applications web professionnelles en utilisant des frameworks modernes et en respectant les bonnes pratiques de développement. Un mini-projet permettra de créer un petit réseau social, mettant en pratique les concepts appris.

Introduction et organisation du cours

Organisation du cours

  • En présentiel chaque semaine dans cette même salle.
  • Mélange théorie/pratique pour un apprentissage efficace :
    • Moment de théorie court pour expliquer les concepts de base.
    • Support de cours détaillé disponible en ligne.
    • Exercices à faire en classe ou à la maison.
    • Mini-projet à réaliser tout au long du cours.
  • Espace de discussion pour poser des questions et obtenir de l'aide (il n'y a pas de questions bêtes !, je suis payé pour ça).
Introduction et organisation du cours

Mini-projet (1)

Le mini-projet consiste à développer un petit réseau social tout avec les fonctionnalités suivantes :

  • Inscription et authentification des utilisateur.trices.
  • Gestion de son profil et de ses informations personnelles.
  • Création, modification et suppression de publications.
  • Aimer les publications des autres utilisateur.trices.

Un workflow Git et GitHub sera utilisé pour gérer le code source du mini-projet.

Introduction et organisation du cours

Mini-projet (2)

Le mini-projet sera développé progressivement au fil des séances, en ajoutant de nouvelles fonctionnalités à chaque étape.

Après la première évaluation, vous devrez choisir librement des fonctionnalités à ajouter au mini-projet, en fonction de vos intérêts et de vos idées.

Par exemple : gestion des images/vidéos/audio, commentaires, messagerie privée, etc.

Ces fonctionnalités seront évaluées lors de la deuxième évaluation.

Introduction et organisation du cours

Modalités d'évaluation

Le cours sera évalué à l'aide de deux évaluations :

  1. Une évaluation écrite (60% de la note finale) - Voir les détails.
  2. Une présentation orale (40% de la note finale) - Voir les détails.
Introduction et organisation du cours

Évaluation écrite

  • 60% de la note finale.
  • Basée sur les concepts acquis en cours + ajout/modification de fonctionnalités au mini-projet.
  • 2 x 90 minutes :
    • Une partie théorique (60% de la note de l'évaluation).
    • Une partie pratique (40% de la note de l'évaluation).
Introduction et organisation du cours

Présentation orale

  • 40% de la note finale.
  • Basée sur les fonctionnalités ajoutées au mini-projet + une question tirée au sort.
  • 16 minutes :
    • 8 minutes de préparation.
    • 8 minutes de présentation.
    • 4 minutes de battement.
Introduction et organisation du cours

Comment se préparer ?

  • Relire les supports de cours.
  • Pratiquer les exercices.
  • Travailler sur le mini-projet.
  • Discuter avec les autres étudiant.es et poser des questions.
  • Chaque support de cours contient des questions typiques d'évaluation.

Il n'y a pas de secret : la meilleure façon de se préparer est de pratiquer et de travailler sur le mini-projet.

Introduction et organisation du cours

La programmation et l'anglais

Le domaine de la programmation est très largement anglophone. La majorité des ressources que vous trouverez dans votre carrière sont en anglais, notamment la documentation de Laravel.

Je vous renverrai régulièrement vers des ressources en anglais et le code que nous utiliserons sera en anglais. Le reste du cours restera néanmoins en français.

Si l'anglais est une barrière pour vous, n'hésitez pas à me le faire savoir.

Introduction et organisation du cours

Besoin de rafraîchissement ?

L'unité d'enseignement DévProdMéd s'appuie sur les connaissances acquises en ProgServ1 et ProgServ2.

J'essaie de faire mon possible pour rappeler les concepts clés de cette unité d'enseignement avant de rentrer dans les concepts propres à DévProdMéd.

Néanmoins, si vous avez besoin d'un rafraîchissement plus approfondi, je vous invite à (re)voir les supports de cours de ProgServ1 et ProgServ2.

Introduction et organisation du cours

"Qu'en est-il de ChatGPT, etc. ?"

Introduction et organisation du cours

"Qu'en est-il de ChatGPT, etc. ?" (1)

Vous pouvez utiliser tous les outils que vous souhaitez (notes personnelles, Internet, outils d'IA, etc.), sauf pendant les évaluations (sauf mention contraire). Vous pouvez les utiliser dans la vie réelle ; il serait utopique de ma part de vous en priver.

Cependant, d'après mon expérience, ces outils ne sont pas suffisamment fiables pour être utilisés sans supervision. Ils peuvent vous aider, mais ils ne remplacent pas vos propres connaissances et compétences.

Introduction et organisation du cours

"Qu'en est-il de ChatGPT, etc. ?" (2)

Concentrez-vous sur la compréhension des concepts et des principes qui sous-tendent les tâches sur lesquelles vous travaillez.

Une fois que vous maîtrisez les concepts, vous pouvez utiliser ces outils pour vous aider dans la mise en œuvre.

Au risque d'utiliser une analogie un peu vieillotte : apprenez à calculer avant de vouloir utiliser une calculatrice.

Une excellente vidéo sur le sujet : "La Fabrique à Idiots" - Micode.

Introduction et organisation du cours

"Qu'en est-il de ChatGPT, etc. ?" (3)

Quelques règles concernant l'utilisation de ces outils pour vos rendus :

  • Vous devez indiquer quand, pourquoi et comment vous avez utilisé une aide externe (la raison, outils, sources, etc.), soit dans le code, soit dans un rapport annexe.
  • Vous devez expliquer le fonctionnement du code que vous avez utilisé, que ce soit du code généré par des outils d'intelligence artificielle ou du code copié depuis des sources externes, et comment il s'intègre dans votre travail.
Introduction et organisation du cours

Qu'en est-il de ChatGPT, etc. ?" (4)

  • En cas de doutes de notre part, vous pourriez être questionné.e.
  • Si vos explications ne sont pas convaincantes, injustifiées dans le contexte ou si vous n'êtes pas transparent.e sur l'utilisation de ces outils, je considère que vous n'avez pas acquis les compétences nécessaires du cours. Vous serez alors pénalisé.e avec la note 1 pour l'évaluation concernée.
  • En cas de doutes, n'hésitez pas à me contacter pour discuter de votre utilisation de ces outils.

Votre intégrité personnelle et académique est en jeu.

Introduction et organisation du cours

Qu'en est-il de ChatGPT, etc. ?" (5)

Tout le monde va utiliser l'AI lorsque vous sortirez de vos études.

C'est justement grâce à un esprit critique et une bonne compréhension des concepts que vous saurez utiliser efficacement les outils à disposition (AI ou autre) et que vous pourrez vous démarquer des autres.

À titre personnel, je pense qu'une personne issue du monde de l'ingénierie ne fait bien son travail que si elle le remet en question.

Introduction et organisation du cours

Bibliographie et ressources utilisées

Introduction et organisation du cours

Questions

Est-ce que vous avez des questions ?

Introduction et organisation du cours

Sources

URLs

Illustrations