Big Data ENGINEERING GIN5L08
Enseignant:
Email:
Durée totale du cours: 45 H
Semestre : 5
Option : Ingénierie logicielle
Nombre de crédits : 3
Option ingénierie des connaissances
Nombre de crédits : 2
| 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 |
| 45 | 38 |
Code : GIN5L08 Big Data Engineering
Volume Horaire : 1h30 Cours intégrés & 1h30 Travaux pratiques (par semaine)
Sommaire
Ce plan de cours vise à fournir une base solide en ingénierie Big Data, en mettant l’accent sur la compréhension des concepts, la maîtrise des outils et des technologies, ainsi que l’application pratique dans des projets réels. Les évaluations, les devoirs et les projets pratiques tout au long du cours aideront les étudiants à renforcer leurs compétences et à se préparer à des carrières dans le domaine du Big Data et de l’ingénierie logicielle.
Objectifs d’apprentissage et compétences visées
Le cours de Big Data Engineering a pour objectif de fournir aux étudiants les compétences nécessaires pour comprendre, concevoir, développer et gérer des solutions Big Data dans un contexte professionnel. À la fin du cours, les étudiants devraient être capables de :
- Comprendre les concepts fondamentaux du Big Data, y compris les volumes de données massifs, la variété des données, la vélocité des données, la véracité des données et la valeur des données (les 5V).
- Analyser les défis et les opportunités associés au Big Data dans les domaines de l’ingénierie logicielle.
- Maîtriser les outils et les technologies couramment utilisés dans le traitement des données massives, tels que Hadoop, Spark, Kafka, et les bases de données NoSQL.
- Concevoir des architectures Big Data robustes et évolutives pour répondre aux besoins spécifiques d’une entreprise.
- Acquérir des compétences en collecte, nettoyage, transformation, stockage et analyse de données massives.
- Comprendre les aspects de la sécurité et de la confidentialité liés au Big Data.
- Appliquer les compétences acquises pour résoudre des problèmes concrets en utilisant des ensembles de données volumineux.
Contenu du Cours par Semaine:
Semaine 1-2 : Introduction au Big Data
- Introduction aux concepts de base du Big Data et aux défis associés.
- Historique et évolution du Big Data.
- Applications du Big Data dans l’ingénierie logicielle.
Semaine 3-4 : Architecture Big Data
- Compréhension des architectures Big Data, y compris les architectures en lot et en temps réel.
- Étude de cas d’architectures Big Data populaires.
Semaine 5-6 : Hadoop et MapReduce
- Introduction à Hadoop et à son écosystème.
- Programmation MapReduce.
- Traitement de données massives avec Hadoop.
Semaine 7-8 : Apache Spark
- Introduction à Apache Spark et ses avantages par rapport à Hadoop.
- Programmation Spark en Scala.
- Traitement de données massives en temps réel avec Spark Streaming.
Semaine 9-10 : Bases de Données NoSQL
- Comprendre les bases de données NoSQL (MongoDB, Cassandra, etc.).
- Modélisation de données NoSQL.
- Intégration de bases de données NoSQL dans des applications Big Data.
Semaine 11-12 : Streaming de Données
- Compréhension du streaming de données et de ses applications.
- Utilisation d’Apache Kafka pour la gestion du streaming de données.
- Traitement de flux de données en temps réel.
Semaine 13-14 : Sécurité et Éthique dans le Big Data
- Questions de sécurité liées au Big Data.
- Protection des données personnelles et conformité.
- Éthique dans l’utilisation des données massives.
Semaine 15-16 : Projets Pratiques
- Les étudiants travaillent sur des projets concrets mettant en œuvre les compétences acquises tout au long du cours.
- Présentation des projets et évaluation finale.
Méthodes d’enseignement et d’apprentissage
- Enseignement frontal avec des exemples à résoudre en
- Travaux pratiques (laboratoire)
- Travaux à faire à domicile (mini-projet, exposé, compte-rendu, …)
Connaissances et compétences pré-requises
- Systèmes de gestion de fichiers, BDs relationnelles, Linux, Programmation fonctionnelle, Java, Documents structurés (XML/JSON), web services REST, conteneurs Docker
Références bibliographiques
- Notes de cours (présentations Beamer) et fiches de TP
- Docuementation, Tutoriels et sandbox hortonworks : https://fr.hortonworks.com/tutorials/
- Documentation, tutoriels et sandbox Spark : http://spark.apache.org/docs/latest/
- « Big Data: A Revolution That Will Transform How We Live, Work, and Think » par Viktor Mayer-Schönberger et Kenneth Cukier.
- « Hadoop: The Definitive Guide » par Tom White.
- « Spark: The Definitive Guide » par Bill Chambers et Matei Zaharia.
- « Data-Intensive Text Processing with MapReduce » par Jimmy Lin et Chris Dyer.
- « Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems » par Martin Kleppmann.
- « Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing » par Tyler Akidau, Slava Chernyak, et Tyler Akidau.
- « Big Data Analytics: A Hands-On Approach » par Arshdeep Bahga et Vijay Madisetti.
Modalité d’évaluation
- 40% Contrôle continu (TP noté, Test, Assiduité, Devoir surveillé, travaux non présentiel, …)
- 60% Examen semestriel
Résultat d’apprentissage :
Lorsqu’un étudiant réussit un cours de Big Data Engineering en vue d’obtenir un diplôme d’ingénieur en Génie Informatique, il devrait acquérir un ensemble de compétences techniques et d’autres compétences professionnelles. Voici une liste de compétences que les étudiants peuvent espérer acquérir après avoir réussi ce cours :
Compétences Techniques :
- Traitement des données massives (Big Data) : Comprendre les concepts fondamentaux du Big Data, y compris la collecte, le stockage, le traitement et l’analyse de grandes quantités de données.
- Programmation : Maîtriser les langages de programmation couramment utilisés dans le domaine du Big Data, tels que Python, Java, Scala, et posséder des compétences en développement de scripts et d’applications Big Data.
- Bases de données distribuées : Savoir concevoir, mettre en place et gérer des bases de données distribuées, notamment des technologies telles que Hadoop, Spark, NoSQL, et les entrepôts de données.
- Analyse de données : Être capable de réaliser des analyses de données avancées, y compris la modélisation prédictive, l’apprentissage automatique, et la visualisation des données.
- Infrastructure Cloud : Comprendre l’utilisation et la gestion des ressources de cloud computing pour le stockage et le traitement des données, comme Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), etc.
- Sécurité des données : Avoir une compréhension approfondie des principes de sécurité des données, y compris la protection des données sensibles et la conformité aux réglementations.
- Architecture Big Data : Pouvoir concevoir des architectures Big Data évolutives et performantes en utilisant des composants tels que les clusters Hadoop, les bases de données distribuées, les moteurs de traitement en continu, etc.
Compétences Professionnelles :
- Communication : Être capable de communiquer efficacement avec des équipes multidisciplinaires, des gestionnaires de projet et des parties prenantes pour expliquer les résultats et les besoins en matière de données.
- Gestion de projet : Avoir une compréhension de base de la gestion de projet pour planifier, organiser et exécuter des projets Big Data avec succès.
- Résolution de problèmes : Pouvoir résoudre des problèmes complexes liés aux données, aux performances et à l’infrastructure.
- Éthique professionnelle : Comprendre les enjeux éthiques liés à la collecte et à l’utilisation des données, et être capable de respecter les normes éthiques dans le traitement des données.
- Apprentissage continu : Être disposé à suivre les dernières tendances et évolutions technologiques dans le domaine du Big Data et à continuer à se former tout au long de la carrière.
- Collaboration : Travailler efficacement en équipe avec des ingénieurs logiciels, des scientifiques des données, des administrateurs de bases de données, etc., pour atteindre les objectifs de l’entreprise.
- Adaptabilité : Être capable de s’adapter aux changements rapides dans le domaine de la technologie et du Big Data