Developpement full stack GIN3209
Enseignant:
Email:
Durée totale du cours: 45 H Option concernée :
Semestre : 1
Nombre de crédits : 3
| Modules spécialisés | Modules de base | Sciences et techniques de l’ingénierie | Préparation à la carrière professionnelle |
| X |
| Nombre d’heures | Activités hors classe | ||
| 22.5 | 18 | ||
| cours | TD | TP | |
| 16.5 | 6 | ||
| Code | GIN3209 | Developpement full stack |
Volume Horaire : 1 h30 de Cours intégrés + 1h:30 Travaux pratiques (par semaine)
Sommaire:
Le développement full stack fait référence à la capacité de concevoir et de développer à la fois le côté frontend (interface utilisateur) et le côté backend (logique serveur) d’une application web. Les développeurs full stack sont polyvalents et peuvent travailler sur toutes les étapes du processus de développement d’une application, de la conception initiale à la mise en production.
Objectifs :
- Compréhension des technologies Web : Un cours de développement Full Stack vise généralement à fournir une compréhension approfondie des technologies Web, telles que HTML, CSS, JavaScript, et d’autres frameworks et bibliothèques frontend tels que React, Angular ou Vue.js.
- Conception de bases de données : Les étudiants peuvent apprendre à concevoir et à gérer des bases de données en utilisant des langages comme SQL et des systèmes de gestion de bases de données comme MySQL, PostgreSQL, ou MongoDB.
- Développement Backend : Les participants au cours apprennent à créer des API (Application Programming Interfaces) et à gérer la logique serveur en utilisant des langages de programmation tels que Node.js, Python, Ruby, ou Java.
- Intégration frontend-backend : Le cours peut enseigner comment connecter le frontend et le backend pour créer une application web complète et fonctionnelle.
- Déploiement et gestion de projet : Les étudiants peuvent également apprendre à déployer une application sur des serveurs et à gérer efficacement un projet de développement.
- Collaboration en équipe : Travailler en équipe est essentiel dans le développement Full Stack, donc le cours peut inclure des activités collaboratives pour favoriser la communication et la coordination entre les développeurs.
- Bonnes pratiques de développement : Le cours peut enseigner les bonnes pratiques de codage, la gestion du code source avec des outils de contrôle de version tels que Git, et les tests d’assurance qualité pour assurer la qualité du code.
Sujets couverts :
- Technologies côté serveur (back-end) :
- Introduction aux langages de programmation côté serveur tels que Node.js, Python, Ruby, PHP, Java, etc.
- La mise en place d’un serveur web et la gestion des requêtes HTTP.
- L’utilisation de frameworks web comme Express.js, Flask, Ruby on Rails, Django, etc.
- La gestion des bases de données et des opérations CRUD (Create, Read, Update, Delete).
- La mise en œuvre de l’authentification et de l’autorisation pour sécuriser l’application.
- La gestion des sessions et des cookies pour le suivi des utilisateurs.
- La création d’API (Application Programming Interface) pour communiquer avec le front-end.
- Technologies côté client (front-end) :
- Les langages de programmation côté client tels que HTML, CSS, JavaScript.
- La création d’interfaces utilisateur réactives à l’aide de bibliothèques et de frameworks tels que React, Angular, Vue.js, etc.
- La communication avec le serveur via des appels d’API côté client.
- La manipulation du DOM (Document Object Model) pour rendre les pages web interactives.
- L’optimisation des performances et la gestion de la compatibilité entre navigateurs.
- Introduction à React :
- Présentation de la bibliothèque React pour la création d’interfaces utilisateur réactives.
- Composants React, gestion des états et des événements.
- Développement avec Angular :
- Introduction au framework Angular pour la création d’applications web dynamiques.
- Composants, directives et services dans Angular.
- Déploiement et gestion de projets :
- L’hébergement d’une application sur un serveur ou sur un service cloud comme AWS, Azure ou Heroku.
- La gestion de versions et l’utilisation d’outils de contrôle de version tels que Git.
- La collaboration en équipe grâce à des plateformes de développement collaboratif.
- Bonnes pratiques et concepts avancés :
- L’architecture des applications full stack (par exemple, modèle MVC – Modèle Vue Contrôleur).
- La sécurité des applications web et les vulnérabilités courantes.
- Les tests unitaires et l’assurance qualité du code.
- L’intégration de services tiers tels que les systèmes de paiement ou les API externes.
Méthodes d’enseignement et d’apprentissage
¨Enseignement frontal (magistral) avec des exemples à résoudre en commun. ¨Exercices théoriques et études de cas (présentation et discussion).
- Apprentissage mixte et classe inversée
- MOOC & Google Classroom
Connaissances et compétences pré-requises
Références bibliographiques
- Un support de cours de l’enseignant sera
Modalité d’évaluation
- 40% Contrôle continu (TP noté, Test, Assiduité, Devoir surveillé, travaux non présentiel, …)
- 60% Examen semestriel
Résultats d’apprentissage :
- PHP (Full Stack) :
- Capacité à concevoir et développer des applications web PHP complètes, de la couche frontale à la couche backend.
- Maîtrise des frameworks PHP tels que Laravel, Symfony, etc.
- Connaissance avancée des bases de données et de leur intégration avec PHP.
- Expérience dans la gestion des problèmes de sécurité liés à PHP.
- JavaScript (Full Stack):
- Expertise en développement frontend et backend en utilisant JavaScript.
- Connaissance approfondie des bibliothèques et frameworks JS comme Node.js, Express.js, etc.
- Capacité à créer des interfaces utilisateur interactives en utilisant des bibliothèques comme React, Angular, etc.
- Compréhension des concepts avancés de programmation asynchrone en JavaScript.
- React (Full Stack) :
- Compétence en développement d’applications web en utilisant ReactJS.
- Capacité à concevoir et à développer des composants réutilisables et performants en React.
- Connaissance approfondie de la gestion de l’état avec Redux ou des hooks React.
- Expérience dans l’intégration de React avec des API externes.
- Angular (Full Stack) :
- Expertise en développement d’applications web avec Angular.
- Capacité à créer des composants, des directives et des services en Angular.
- Maîtrise de la gestion de l’état avec RxJS et NgRx.
- Expérience dans l’optimisation des performances et la sécurité des applications Angular.