Ficha Unidade Curricular (FUC)
Informação Geral / General Information
Carga Horária / Course Load
Área científica / Scientific area
480 - Informática
Departamento / Department
Departamento de Tecnologias Digitais
Ano letivo / Execution Year
2024/2025
Pré-requisitos / Pre-Requisites
Conhecimentos em Fundamentos de Programação em Base de Dados e Gestão de Informação
Objetivos Gerais / Objectives
O objetivo geral desta UC é duplo: por um lado, visa fornecer os estudantes com uma visão holística e alargada das tecnologias e sistemas que permitem o desenvolvimento e a manutenção de repositórios de informação, suportados estes por sistemas de informação não relacionais e distribuídos, que lidem com tolerâncias a falhas e grandes volumes de dados. Por outro, o curso introduz o desenvolvimento de aplicações para processar Big Data com eficiência, em particular os ambientes de processamento e análise Spark, com modelo de programação MapReduce e gestão de base de dados não relacional MongoDB. Este conhecimento permite que os alunos consigam resolver os problemas enfrentados pelas empresas e instituições no processamento de grandes volumes de dados, hoje e no futuro.
Objetivos de Aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes) / Learning outcomes
No final da UC os alunos deverão ser capazes de: OA1. Compreender e identificar os problemas associados ao processamento de grandes quantidades de informação OA2. Compreender os conceitos e ecossistema da Big Data. OA3. Saber desenhar e concretizar soluções de armazenamento de dados em ambiente distribuído e tolerantes a falhas. OA4. Saber extrair, manipular e carregar grandes quantidades de informação de frontes de dados não estruturadas OA5. Saber manipular e processar bases de dados não relacionais. OA6. Compreender e saber aplicar os modelos de programação e computação distribuídos. OA7. Compreender e saber aplicar técnicas para tratamento de estruturas JSON e fluxo de dados em tempo real. OA8. Desenvolver a criatividade, inovação tecnológica, pensamento crítico. OA9. Desenvolver a autoaprendizagem, revisão por pares, trabalho em equipa, expressão escrita e oral.
Conteúdos Programáticos / Syllabus
CP1. O conceito de Big Data, os problemas aplicáveis e o respetivo ecossistema. CP2. Introdução às bases de dados não relacionais e ao MongoDB. CP3. Arquitetura de computação para Big Data: (1) redundante e tolerante a falhas e (2) distribuída para suportar grandes volumes de dados. Exemplo da plataforma Hadoop e do seu sistema de ficheiros distribuído. CP4. O modelo de programação MapReduce. CP5. O desenho de bases de dados no MongoDB. CP6. A manipulação de estruturas JSON e de dados em tempo real. CP7. O processo de ETL (Extract, Transform and Load) aplicado a datasets com dados reais desnormalizados e desenvolvimento de aplicações de processamento de Big Data em ambientes Spark e MongoDB.
Demonstração da coerência dos conteúdos programáticos com os objetivos de aprendizagem da UC / Evidence that the curricular units content dovetails with the specified learning outcomes
Os conteúdos programáticos da UC estão alinhados com os objetivos de aprendizagem, assegurando uma compreensão abrangente e aplicação prática das tecnologias de Big Data. O CP1 introduz o conceito de Big Data e o seu ecossistema, abordando problemas associados ao processamento de grandes volumes de dados (OA1, OA2). Os CP2 e CP5 cobrem bases de dados não relacionais e MongoDB, capacitando os alunos para manipular e processar dados em larga escala (OA5). O CP3 explora arquiteturas de computação distribuída e tolerante a falhas (OA3, OA6). O CP4 foca-se no modelo de programação MapReduce, essencial para computação distribuída (OA6). O CP6 aborda a manipulação de estruturas JSON e dados em tempo real, reforçando a capacidade de trabalhar com dados não estruturados (OA7). O CP7 cobre o processo de ETL e o desenvolvimento de aplicações em Spark e MongoDB (OA4, OA7). Todos os CPs promovem a criatividade, inovação, pensamento crítico, autoaprendizagem e trabalho em equipa (OA8, OA9).
Avaliação / Assessment
Esta UC segue o modelo de avaliação ao longo do semestre (ALS), o que não contempla um exame final com uma ponderação a 100%. A ALS é constituída pelos seguintes elementos: - 8 tarefas semanais [2,5% * 8 = 20% no total] - 2 mini-testes [15% cada * 2 = 30% no total] - Projeto de laboratório [50%] O projeto de laboratório poderá ser realizado individualmente ou em grupo, onde consiste na elaboração de um projeto prático que posteriormente será alvo de discussão oral individual. Se o aluno reprovar na época normal (<10 valores), o aluno acede ao exame de 1º ou 2ª épocas, valendo 50% da nota, sendo obrigatória a aprovação no projeto de laboratório ou a realização de um projeto individual (50%). Caso o aluno não tenha aprovação no projeto de laboratório ou no projeto individual (se for o caso), encontra-se reprovado a esta UC.
Metodologias de Ensino / Teaching methodologies
A integração de aulas expositivas, que abordam conceitos teóricos e ilustram com exemplos práticos, com aulas práticas e trabalho autónomo, é fundamental para atingir os objetivos de aprendizagem estabelecidos nesta UC. Este método permite aos alunos compreender e aplicar os conhecimentos de forma contextualizada e prática, particularmente nas tecnologias de gestão de grandes volumes de dados e computação distribuída. A motivação das necessidades de ensino / aprendizagem é reforçada pela apresentação de problemas reais enfrentados por empresas e instituições, bem como pela análise das limitações de abordagens tradicionais. Esta estratégia é essencial para consolidar o entendimento dos alunos, incentivar a reflexão crítica e desenvolver habilidades para identificar e resolver problemas complexos associados ao Big Data. O ensino dos tópicos técnicos é estruturado em torno da análise detalhada dos requisitos dos problemas a serem abordados, bem como no reconhecimento e compreensão das principais vantagens e desafios associados às soluções tecnológicas em ambientes de dados massivos. Este enfoque garante que os alunos não só aprendam a teoria, mas também como aplicá-la de forma eficaz em contextos reais, capacitando-os para enfrentar desafios atuais e futuros na área de Big Data.
Demonstração da coerência das metodologias de ensino e avaliação com os objetivos de aprendizagem da UC / Evidence that the teaching and assessment methodologies are appropriate for the learning outcomes
As metodologias de ensino da UC "Big Data" estão estrategicamente desenhadas para garantir que os alunos alcancem os objetivos de aprendizagem. As aulas expositivas, que apresentam conceitos teóricos e exemplos práticos, são essenciais para a compreensão dos fundamentos do Big Data, incluindo o ecossistema, as bases de dados não relacionais, e os modelos de programação distribuída (OA1, OA2, OA3, OA4, OA5, OA6). As aulas participativas, que envolvem análise e discussão de casos de estudo, permitem aos alunos aplicar conhecimentos em contextos reais, promovendo a identificação e resolução de problemas associados ao armazenamento e processamento de grandes volumes de dados (OA1, OA3, OA4). As aulas ativas, centradas na realização de projetos de grupo, fomentam a aplicação prática das competências adquiridas, desde o design de soluções distribuídas até à manipulação de dados em tempo real (OA1, OA2, OA3, OA4, OA5, OA6, OA7, OA8). Finalmente, o autoestudo e trabalho autónomo são cruciais para a consolidação do conhecimento teórico e prático, incentivando a autoaprendizagem e o pensamento crítico (OA8, OA9).
Observações / Observations
Para outros esclarecimentos, aconselha-se a consulta do Código de Conduta Académica (CCA) do Iscte - Instituto Universitário de Lisboa.
Bibliografia Principal / Main Bibliography
1. Nudurupati, S. (2021). Essential PySpark for Scalable Data Analytics: A beginner’s guide to harnessing the power and ease of PySpark 3. Packt Publishing. 2. Sardar, T. H. (2023). Big data computing: Advances in technologies, methodologies, and applications. CRC Press. 3. Tandon, A., Ryza, S., Laserson, U., Owen, S., & Wills, J. (2022). Advanced analytics with PySpark: Patterns for learning from data at scale using Python and Spark. O’Reilly Media.
Bibliografia Secundária / Secondary Bibliography
Data da última atualização / Last Update Date
2024-08-05