Ciencia de Dados

Ciência de Dados, como definido por especialistas no campo, é uma ciência experimental multidisciplinar que vem dar resposta ao grande volume de dados "big-data" que tem crescido de forma exponencial face ao desenvolvimento tecnológico recente.
A oportunidade de transformar estes dados em informação e conhecimento, em prol do bem da sociedade, é essencial tando no negócio como na ciência entre outras áreas com impacto social.

Neste ciclo de estudo apresentamos um programa com fortes componentes em: Estatística, Matemática, Aprendizagem Automatizada, Programação, Extração e Manuseamento de dados, diversas componentes de Engenharia de Dados e uma forte incidência no tema de Privacidade, Segurança e Ética.

Objetivos do curso

(1) garantir que numa metodologia de interação de grupo o aluno adquira a aptidão de trabalho em equipe. (2) garantir uma formação técnica diversa e consistente em técnicas de vanguarda e que adicionalmente lhe garanta uma maior fluidez na aquisição e desenvolvimento de novas técnicas que vai encontrar no futuro. (3) desenvolver a capacidade e habilidade de uma metodologia de trabalho que façam face à exigência de apresentar resultados rápidos e rigorosos na sua qualidade.

Plano de Estudos

Explore os conteúdos e projetos das unidades curriculares

  • 1.º Ano

    1.º Semestre
    • Fundamentos de Ciência de Dados

      Apresentação

      Esta unidade curricular é o primeiro contacto dos alunos com as múltiplas dimensões da ciência de dados. Apresenta conteúdos de “visão global” que serão aprofundados noutras UC, ao longo de toda a licenciatura.

      Nesta UC pretende-se dar ao aluno as visões de diferentes setores: académicos, empresariais e sociais, do uso e da utillidade da ciência de dados. Serão debatidos os seus principios básicos, a sua génese, as relações com outras disciplinas e algumas das suas ferramentes e princípios teóricos, assim como as potenciais implicações éticas da sua aplicação. Pretende-se igualmente levar o aluno a refletir sobre a fonte, o uso e o conhecimento que se pode extrair dos dados, contribuindo para o desenvolvimento da acuidade de pensamento baseado em evidência. 

      DocentesGabriela Soares

      Programa

      CP1 – Introdução à UC

      CP2 – Dados, tipos de dados e manipulação de dados

      • Metadados
      • Enviesamentos
      • Tipos de dados e representações
      • Computação e Armazenamento

      CP3 – Análise Exploratória de Dados

      • Medidas de posição e dispersão
      • Visualização

      CP4 – Modelação de dados, Bases de dados, Extração, Integração e Tratamento de dados

      • Origem dos dados
      • Fontes de dados
      • Extração
      • Dados x Informação
      • Processamento

      CP5 – Aprendizado de Máquina

      • Modelos supervisionados
      • Modelos não supervisionados

      CP6 – Estudo de Caso

      CP7 – Ética para a Ciência de Dados

      CP8 – Projetos em Ciência de Dados – Metodologias

    • Fundamentos de Programação

      Apresentação

      Esta é uma disciplina fundamental na formação de qualquer profissional da área de Informática pois introduz os conceitos básicos da programação, sobre os quais assentarão muitas disciplinas subsequentes como Linguagens de Programação I e II, Algoritmia e Estruturas de Dados, Programação Web, Computação Móvel, etc. Mais do que aprender uma linguagem de programação, o aluno aprende a pensar como um programador, analisando problemas e desenhando algoritmos que os resolvam recorrendo a fluxogramas e a programas escritos em Kotlin, uma linguagem promissora que combina as melhores características das linguagens modernas mais populares (Java, Python, etc.)

      Dado ser o primeiro contacto de muitos alunos com o tópico da Programação, reveste-se de uma importância especial na aquisição de conhecimentos primordiais mas também na sua motivação. Mais do que aprender a programar, os alunos aprendem a gostar de programar.

      DocentesPedro AlvesBrena LimaBruno SaraivaLucio StuderRodrigo CorreiaWellington Oliveira

      Projetos

      • Jogo das Tendas

        Descrição
        • Desenvolver uma grelha 2D que simule o terreno do jogo, com árvores distribuídas aleatoriamente. Permitir que o jogador coloque tendas junto às árvores, assegurando que cada tenda esteja ligada apenas a uma árvore.
        • Implementar regras para assegurar que as tendas não se toquem, nem mesmo na diagonal, e criar uma interface de linha de comando para a interação do jogador com o jogo.

        Conceitos aplicados da Unidade Curricular
        • Programação em Kotlin: ciclos, funções, arrays, arrays2D, leitura do teclado, escrita no ecrã.
        Tecnologias usadas
        • Kotlin
        • IntelliJ
      • Batalha Naval

        Descrição
        • Desenvolver uma grelha 2D que simule a arena do jogo, com navios e marcadores de jogadas anteriores.
        • Criar uma interface de linha de comando para a interação do jogador com o jogo.

        Conceitos aplicados da Unidade Curricular
        • Programação em Kotlin: ciclos, funções, arrays, arrays2D, leitura do teclado, escrita no ecrã.
        Tecnologias usadas
        • Kotlin
        • IntelliJ

      Programa

      • Introdução à programação
      • Algoritmos, fluxogramas, pseudo-código
      • Sintaxe e semântica das linguagens
      • Elementos da sintaxe, estrutura de um programa
      • Declarações e atribuições
      • Tipos primitivos
      • Expressões aritméticas, expressões lógicas
      • Entradas e saídas de dados
      • Selecção
      • Repetição
      • Funções
      • Arrays uni-dimensionais e bi-dimensionais
      • Tratamento de erros
      • Leitura e escrita de ficheiros
      • Boas práticas de programação imperativa
    • Matemática Discreta

      Apresentação

      Na UC de Matemática Discreta pretende-se contribuir para a aquisição de um conjunto de competências nos alunos: capacidade de assimilar informação e de a comunicar; capacidade de expressão escrita; capacidade de expressão oral e capacidade de raciocínio matemático. Para tal, serão estudados conceitos de lógica matemática, teoria de conjuntos e teoria de números.

      DocentesMaria SilvaHouda Harkat

      Programa

      CP1. Cálculo proposicional e quantificadores

      CP2. Provas

      CP3. Teoria de conjuntos

      CP4. Funções

      CP5. Teoria de números

    • Matemática I

      Apresentação

      Esta disciplina abrange os métodos fundamentais de Cálculo associados a funções reais de variável real. É uma área transversal a todas as engenharias e demais cursos de cariz científico. Abrange os métodos clássicos de cálculo diferencial e Integral a uma dimensão.

      DocentesAndré FonsecaSofia FernandesSofia Naique

      Programa

      1. Lógica Matemática

      • Designação e proposição. Valor lógico de uma proposição. Conjunção e disjunção de proposições. Conjunto, interseção e união de conjuntos.

      2. Os números reais

      • Números racionais e irracionais. Ordem e valor absoluto.

      3. Funções reais de variável real:

      • Generalidades sobre funções. Funções polinomiais e racionais. Funções trigonométricas. Função exponencial e logarítmica.

      3. Limite:

      • Definição e propriedades de limites de uma função. Continuidade de funções.

      4. Derivada:

      • Interpretação geométrica. Regras de derivação. Derivadas de ordem superior.

      5. Estudo global de uma função:

      • Monotonia e extremos relativos. Concavidade e pontos de inflexão. Assíntotas. Gráficos.

      6. Integração:

      • Primitiva imediata. Primitivação por substituição e por partes. Integral definido, teorema fundamental do cálculo. Aplicações da integração (áreas de figuras planas).
    • Probabilidades e Estatística

      Apresentação

      Esta unidade curricular dedica-se aos conceitos fundamentais da teoria da probabilidade, estatística e inferência estatística.

      DocentesSofia Naique

      Programa

      1. Estatística Descritiva

      Tipos de dados: inteiros, contínuos, categóricos, array, matriz

      Tabelas de frequências

      Medidas de centralidade e de variabilidade

      Visualização (Gráficos de barras, Histogramas, Caixas de Bigodes … )

      2. Regressão Linear

      Variável independente vs. dependente.

      Gráficos de dispersão

      Covariância e coeficiente de Pearson

      Reta de regressão,

      Resíduo

      Método dos mínimos quadrados

      Cálculo da estimativa para a resposta, dado certo valor para a variável independente

      3. Probabilidade

      Experiência aleatória. Espaço de resultados. Evento. Operações entre eventos.

      Propriedades da função probabilidade. Probabilidade da união de eventos Lei da probabilidade total Teorema de Bayes Probabilidade condicionada. Eventos independentes

      4. Inferência Estatística

      Amostra e amostra aleatória. Estimador e estimativa para uma proporção. Intervalo de confiança para uma proporção.  Teste de hipótese para uma proporção

    2.º Semestre
    • Álgebra Linear

      Apresentação

      Nesta unidade curricular, os estudantes irão aprender a trabalhar com matrizes, sistemas de equações lineares e espaços vetoriais reais, essenciais para a resolução de diversos problemas reais.

       

      DocentesMaria Silva, Luís Maia, Sofia Fernandes

      Programa

      CP1. Matrizes

      CP2. Sistemas de equações lineares

      CP3. Transformações lineares

      CP4. Espaços vetoriais

      CP5. Determinantes

      CP6. Valores e vetores próprios de matrizes

       

    • Análise Exploratória de Dados

      Apresentação

      Esta Unidade Curricular tem como objectivo principal dar ao aluno as competências e ferramentas necessárias para a análise exploratória e descritiva dos dados. Pretende-se que o aluno consiga um entendimento básico de seus dados e das relações existentes entre as variáveis analisadas.

      DocentesJoão Caldeira

      Programa

      1. Introdução à Análise Exploratória de Dados e compreensão da sua importância na Ciência de Dados; 

       

      2. Caracterização dos diferentes tipos de dados e a sua natureza; 

       

      3. Estatística Descriptiva:

      • Tabelas de frequência;
      • Estatística Descriptiva: medidas de localização, dispersão, assimetria e curtose; 
      • Visualizações gráficas;

       

      4. Análise Bivariada:

      • Coeficiente de correlação linear de Pearson;
      • Regressão linear;
      • Independência entre variáveis;

       

      5. Visualizações gráficas;

      • Técnicas e melhores práticas;
      • Análise Exploratória de Dados (AED) automatizada;

       

      6. Python para análise exploratória de dados:

      • Introdução às bibliotecas NumPy e Pandas para limpeza e análise de dados; 
      • Introdução às bibliotecas Matplotlib, Seaborn, Plotly, Bokeh, entre outros para visualização de dados;
      • Ferramentas de Análise Exploratória de Dados (AED) automatizada.
    • Análise Numérica

      Apresentação

      A UC de Análise Numérica pretende dar ferramentas aos alunos para: reconhecerem a necessidade de utilização de métodos numéricos e a relevância do conceito de erro; conhecerem alguns métodos numéricos clássicos de resolução de sistemas de equações lineares e de equações não lineares; conhecerem alguns métodos numéricos clássicos de interpolação e aproximação e de quadratura; utilizarem um sistema computacional apropriado para avaliar os métodos; e desenvolverem espírito crítico, capacidade de trabalho autónomo e em grupo.

      DocentesGabriela Soares

      Programa

      CP1. Python para Análise Numérica

      CP2. Erros e propagação de erros

      CP3. Regressão Linear

      CP4. Interpolação

      CP5. Equações não lineares

      CP6. Sistemas de equações lineares

      CP7. Integração numérica

    • Linguagens de Programação

      Apresentação

      Esta e¿ uma disciplina fundamental na formac¿a¿o de qualquer profissional da a¿rea de Ciência de Dados pois introduz os conceitos ba¿sicos da programac¿a¿o, sobre os quais assentara¿o muitas disciplinas subsequentes. Mais do que aprender uma linguagem de programac¿a¿o, o aluno aprende a pensar como um programador, analisando problemas e desenhando algoritmos que os resolvam recorrendo a fluxogramas e a programas escritos em Python, uma linguagem promissora que combina as melhores caracteri¿sticas das linguagens modernas mais populares.

      Dado ser o primeiro contacto de muitos alunos com o to¿pico da Programac¿a¿o, reveste-se de uma importa¿ncia especial na aquisic¿a¿o de conhecimentos primordiais mas tambe¿m na sua motivac¿a¿o. Mais do que aprender a programar, os alunos aprendem a gostar de programar.

      DocentesBruno Saraiva

      Programa

      OPP

      Herança

      Encapsulmaneto, decorators, variáveis obsfucadas

      Geradores

      Arrays

      Visualização de informação

      Introdução a Algoritmia e Estrutura de Dados

    • Matemática II

      Apresentação

      Geométria analítica e calculo diferencial e integral para funções reais de várias variáveis reais.

      DocentesAndré FonsecaGuilherme AntunesSofia Naique

      Programa

      1. Vectores e geometria do espaço

      1.1 Coordenadas cartesianas tridimensionais.

      1.2 Vectores, produto escalar.

      1.3 Rectas e planos.

      1.4 Superfícies cilíndricas e quádricas.

      1.5 Noções topologicas

      2. Funções vectoriais de variável real

      2.1 Funções vectoriais e curvas no espaço.

      2.2 Limites e continuidade. Diferenciabilidade, vector tangente a uma curva.

      2.3 Integração, comprimento de uma curva.

      3. Funções de várias variáveis

      3.1 Dominios e  curvas de nível.

      3.2 Limites e continuidade.

      3.3 Derivadas parciais, derivadas de ordem superior.

      3.4 Diferenciabilidade, planos tangentes e aproximações polinómiais.

      3.5 Derivada direccional, vector gradiente e sua interpretação geométrica.

      3.6 Matriz Hessiana, extremos locais e pontos de sela.

      4. Integrais múltiplos

      4.1 Integrais duplos.

      4.2 Coordenadas polares e mudança de variáveis em integrais duplos.

      4.3 Integrais triplos.

      4.4 Coordenadas cilíndricas e esféricas. Mudança de variáveis em integrais triplos.

  • 2.º Ano

    1.º Semestre
    • Algoritmia e Estrutura de Dados

      Apresentação

      Muitos projetos na área da programação envolvem a resolução de problemas computacionais complexos, para os quais soluções rápidas e simplistas podem não ser suficientemente eficientes. Esta UC foca-se na problemática da conceção de bons algoritmos e de como analisar a sua correção e a sua eficiência. Estas são questões particularmente importantes, numa altura a qualidade do software se vem tornado, progressivamente, numa questão central. Trata-se portanto de uma UC particularmente relevante para o ciclo de estudos.

      DocentesLucio Studer

      Programa

      CP1: Complexidade, classes, funções típicas e análise de algoritmos;

      CP2: Complexidade e recursividade (conjunto de problemas recursivos);

      CP3: Algoritmos de pesquisa e seleção;

      CP4: Algoritmos de ordenação: Insertion Sort, Heap Sort, Merge Sort e Quicksort;

      CP5: Comparação dos algoritmos de ordenação quanto à sua complexidade (programação do Quicksort);

      CP6: Tipos abstratos de dados: Pilha e Fila;

      CP7: array circular, listas simples e duplamente ligadas;

      CP8: Implementação de Pilha e Fila (programação em array e / ou listas);

      CP9: Funções de dispersão: aberta e fechada;

      CP10: Tabelas de hash (prática de utilização de Dicionários e Conjuntos);

      CP11: Árvore binária, árvores AVL e árvore preta e vermelha;

      CP12: Árvore binária (programação de árvore binária);

      CP13: Noções básicas de grafos: grafo orientado, não orientado e etiquetado, caminho e comprimento;

      CP14: Caminho mais curto entre dois vértices – Algoritmo de Dijkstra;

      CP15: Algoritmo de Dijkstra (programação).

    • Bases de Dados

      Apresentação

      Esta unidade curricular tem por objetivo apresentar a importância da Gestão de Dados no seio de uma empresa, de forma a garantir quer a operação diária de negócio, bem como o apoio à decisão estratégica.

      Nesta unidade reforçar-se-á o enquadramento de estruturação e metodologias de criação das bases de dados.

      DocentesRui RibeiroJoão CaldeiraLuis A. Gomes

      Programa

      O programa da unidade curricular é:
      A) Componente Teórico

      • Introdução
      • Modelo de relacionamento entre entidades
      • O modelo relacional
      • Refinamento de esquema: Conceito de normalização e transações
      • Arquitetura de SGBD e algum SQL Avançado

      B) Componente Prática

      • Introdução à linguagem SQL;
      • Instruções: DDL, DML (DQL) e DCL
      • Operações: WHERE, ORDER BY, GROUP BY;
      • Conceito avançados em SQL: Controlo de erros
      • Operadores Relacionais: União, intersecção e Subtracção
      • Produto Cartesiano (externo)
      • Queries complexos (filtro com valores agregados) e sub-queries
      • Set DDL; Instrução CREATE; Tipos de dados; Nulidade; Instruções ALTER e DROP
      • INDICES e VIEWS
      • Controlo de erros: estrutura TRY¿CATCH
      • Procedimentos (SP) e Triggers
      • Operações com tabelas: Cursores
    • Ciência de Dados

      Apresentação

      Esta disciplina oferece uma visão aprofundada do campo da Ciência de Dados, ensinando princípios e métodos fundamentais de análise e aprendizado a partir de dados. O curso é direcionado a analistas de dados sem conhecimentos prévios em estatística, e enfatiza a importância da ética na construção e uso de modelos obtidos a partir de dados. Os métodos de ensino incluem aulas tradicionais, debates em sala de aula e atividades de auto-avaliação, ajudando os alunos a desenvolver habilidades críticas e analíticas essenciais para o sucesso na ciência de dados. Ao final do curso, os alunos terão uma compreensão abrangente do campo, bem como as habilidades e conhecimentos necessários para se tornarem cientistas de dados de sucesso.

      DocentesGabriela Soares

      Programa

      1. Introdução à Ciência de Dados
      2. O que significa aprender com dados?
      3. Como garantir a precisão dos modelos?
      4. Regressão linear simples
      5. Regressão linear múltipla
      6. Como trabalhar com modelos de regressão?
      7. Classificação logística
      8. Modelos de classificação generativa
      9. Métodos de reamostragem
      10. Métodos baseados em árvores para regressão e classificação
      11. Aspetos éticos e regulamentos âmbito da Ciência de dados
    • Fundamentos de Engenharia de Dados

      Apresentação

      Esta cadeira aborda uma variedade de tópicos relacionados à engenharia de dados numa perspectiva do Cientista de Dados, desde as diversas fontes de dados até a estrutura e disponibilização dos dados processados para modelos e visualização. Os alunos aprendem os fundamentos conceituais da engenharia de dados que permitem disponibilizar dados com qualidade para utilização em aplicações de ciência de dados.

      DocentesGabriela Soares

      Programa

      A UC está organizada nos seguintes conteúdos programáticos:

      • CP1 – Introdução
        • O que é um Engenheiro de Dados?
        • O que um cientista de dados necessita saber de engenharia de dados?
        • Pipelines de engenharia de dados
      • CP2 – Bases de Dados relacionais
        • Revisão de SQL
        • Conceitos utilizdos em modelos de dados
      • CP3 – Modelagem de dados
        • Fontes de dados
        • Data Lake
        • Data Warehouse
        • Data Lakehouse
        • Modelos de dados
      • CP4 – Fundamentos de Big-data
        • Hadoop
        • MapReduce
      • CP5 – Transformação de dados
        • Transformações necessárias para armazenar os dados para projetos de Data Science
      • CP6 – Ferramentas de visualização de dados
      • CP7 – Bases de dados NoSQL
      • CP8 – Projetos de engenharia de dados
    • Introdução à Inteligência Artificial

      Apresentação

      Esta UC tem como objetivo conferir competências introdutórias no campo da Inteligência Artificial, dotando os alunos de conhecimentos sólidos e estruturados que lhes permitam entender conceitos teóricos e desenvolver código para resolução de problemas práticos de IIA.

      DocentesJoão P. Carvalho

      Programa

      • Noções básicas de IA vários domínios.
      • Procura de caminhos, orientação e navegação: grafos, algoritmos de Dijkstra e A*, grelhas e malhas de navegação, funções de custo.
      • Decisões: árvores de decisão, máquinas de estados, árvores de comportamento, outras abordagens.
      • Aprendizagem: noções básicas, previsão de ações, classificadores de Bayes, outras abordagens.
      • Jogos de tabuleiro: noções básicas, família de algoritmos minimax, MCTS, outras abordagens. 
    2.º Semestre
    • Aprendizagem Automatizada I

      Apresentação

      Esta UC tem como objetivo conferir competências introdutórias no campo da Aprendizagem automatizada, dotando os alunos de conhecimentos sólidos e estruturados que lhes permitam entender conceitos teóricos e desenvolver código para resolução de problemas práticos de AA.

      DocentesJoão P. CarvalhoBruno Saraiva

      Programa

      Introdução à Aprendizagem Automática.

      Paradigmas de Aprendizagem Automática: Aprendizagem Supervisionada, Aprendizagem Não-Supervisionada e Aprendizagem por Reforço.

      Dados

      • Tipos de dados.
      • Medidas de proximidade e medidas de dispersão de dados.
      • Tópicos de normalização e visualização de dados
      • Visualização de Dados por Análise de Componentes Principais

      Aprendizagem Supervisionada

      • Regressão
      • Árvores de Decisão
      • Redes Neuronais
      • Máquinas de Suporte Vectorial
      • Classificador dos K-Vizinhos mais Próximos
      • Avaliação e comparação de métodos de classificação
      • Ensembles

      Aprendizagem Não-Supervisionada

      • Métodos de Agrupamento por partição
      • Métodos de Agrupamento Probabilístico
      • Métodos de Agrupamento Difuso por partição
      • Métodos de Agrupamento Hierárquico
      • Avaliação de métodos e de resultados de agrupamento
      • Outros métodos
    • Inteligência Artificial

      Apresentação

      Esta UC tem como objetivo conferir competências de continuação no campo da Inteligência Artificial, dotando os alunos de conhecimentos sólidos e estruturados que lhes permitam entender conceitos teóricos e desenvolver código para resolução de problemas práticos de IA.

      DocentesJoão P. CarvalhoBruno Saraiva

      Programa

      Noções intermédias de IA em vários domínios.
      Modelos: n-Grams, Algoritmos genéticos, modelos de regressão linear e logística, perceptrão, redes neuronais.
      Funções de ativação: Linear, Sigmoide, Relu, outras abordagens.
      Aprendizagem: noções básicas e intermédias, previsão de ações, outras abordagens.

    • Introdução à Teoria de Grafos e Redes

      Apresentação

      A UC de Introdução à Teoria dos Grafos e Redes pretende dar ferramentas aos alunos para utilização de grafos em diversos problemas, partindo dos conceitos básicos, passando por problemas clássicos, e finalmente uma breve introdução de redes complexas, e as suas aplicações em problemas de Ciência de Dados.

       

      DocentesGabriela Soares

      Programa

      CP1. Conceitos básicos (Definição, vértices, arestas, grafos orientados e não orientados, métricas, subgrafos, distância e conexidade, isomorfismos, invariantes e teoria espetral).

      CP2. Redes e fluxos (Fluxo máximo, fluxo de custo mínimo)

      CP3. Análise de redes (Representação de redes, visualização de redes, grau, medidas de distância e centralidade)

      CP4. Grafos aleatórios (Erdös-Rényi, Watts-Strogatz, Barabasi-Albert)

      CP5 Aplicações. em Data Science.

    • Introdução aos Processos Estocásticos

      Apresentação

      Os alunos irão aprender o que é um processo estocástico e a trabalhar com alguns processos em específico.

      Docentes: Luís Maia. 

      Programa

      CP1: Processos estocásticos e sua caracterização

      CP2: Cadeias de Markov

      CP3: Processos de Poisson 
       

    • Visualização para Ciência de Dados

      Apresentação

      A utilização de representações gráficas dos dados facilita o seu entendimento e identificação de padrões. Um dos aspetos a considerar na criação de visualizações é como representar os dados, dado o objetivo da visualização. Esta disciplina aborda tal aspecto articulando os fundamentos da visualização de informação (que gráficos usar e como) com a respetiva implementação.

      DocentesSofia Fernandes

      Programa

      CP1 Introdução à visualização de informação

      CP2 Tipos de gráficos e sua utilização

      CP3 Implementação e personalização dos gráficos em Python

      CP4 Desenho e implementação de dashboards em Python

  • 3.º Ano

    1.º Semestre
    2.º Semestre

Áreas Científicas

  • Outra forma de olhar para o curso e suas disciplinas

    • Matemática e Física

      • Álgebra Linear

        Apresentação

        Nesta unidade curricular, os estudantes irão aprender a trabalhar com matrizes, sistemas de equações lineares e espaços vetoriais reais, essenciais para a resolução de diversos problemas reais.

         

        DocentesMaria Silva, Luís Maia, Sofia Fernandes

        Programa

        CP1. Matrizes

        CP2. Sistemas de equações lineares

        CP3. Transformações lineares

        CP4. Espaços vetoriais

        CP5. Determinantes

        CP6. Valores e vetores próprios de matrizes

         

        Objetivos

        No final desta unidade curricular, os estudantes devem saber:

        OA1. Dominar os conceitos e as operações elementares sobre matrizes;

        OA2. Discutir e resolver sistemas de equações lineares e utilizar o método de eliminação de Gauss;

        OA3. Formular e resolver problemas do mundo real usando sistemas de equações lineares;

        OA4. Calcular determinantes e compreender a sua utilidade;

        OA5. Determinar os valores próprios e os vetores próprios e saber utilizá-los no processo de diagonalização;

        OA6. Reconhecer os conceitos de espaço vetorial e transformação linear e utilizá-los na resolução de problemas destes domínios;

        OA7. Identificar e utilizar os conteúdos abordados na resolução de problemas reais.

         

      • Análise Numérica

        Apresentação

        A UC de Análise Numérica pretende dar ferramentas aos alunos para: reconhecerem a necessidade de utilização de métodos numéricos e a relevância do conceito de erro; conhecerem alguns métodos numéricos clássicos de resolução de sistemas de equações lineares e de equações não lineares; conhecerem alguns métodos numéricos clássicos de interpolação e aproximação e de quadratura; utilizarem um sistema computacional apropriado para avaliar os métodos; e desenvolverem espírito crítico, capacidade de trabalho autónomo e em grupo.

        DocentesGabriela Soares

        Programa

        CP1. Python para Análise Numérica

        CP2. Erros e propagação de erros

        CP3. Regressão Linear

        CP4. Interpolação

        CP5. Equações não lineares

        CP6. Sistemas de equações lineares

        CP7. Integração numérica

        Objetivos

        Os objetivos principais desta disciplina são:

        OA1. Compreender a limitação finita de algoritmos numéricos.

        OA2. Trabalhar com estimativas de erros e compreender a propagação de erros em algoritmos.

        OA3. Resolver equações não lineares e sistemas de equações lineares por métodos numéricos.

        OA4. Interpolar e extrapolar dados por interpolação e mínimos quadrados. Aplicar a ciências de dados e medições experimentais.

        OA5. Aproximar funções e integrais por métodos numéricos.

        OA6. Desenvolver projetos computacionais elementares. Aplicar a diversos problemas de ciência de dados.

         

      • Introdução aos Processos Estocásticos

        Apresentação

        Os alunos irão aprender o que é um processo estocástico e a trabalhar com alguns processos em específico.

        Docentes: Luís Maia. 

        Programa

        CP1: Processos estocásticos e sua caracterização

        CP2: Cadeias de Markov

        CP3: Processos de Poisson 
         

        Objetivos

        OA1: Compreender e caracterizar sistemas estocásticos em geral;
        OA2: Resolver problemas básicos associados às cadeias de Markov e processos de Poisson. 

      • Matemática Discreta

        Apresentação

        Na UC de Matemática Discreta pretende-se contribuir para a aquisição de um conjunto de competências nos alunos: capacidade de assimilar informação e de a comunicar; capacidade de expressão escrita; capacidade de expressão oral e capacidade de raciocínio matemático. Para tal, serão estudados conceitos de lógica matemática, teoria de conjuntos e teoria de números.

        DocentesMaria SilvaHouda Harkat

        Programa

        CP1. Cálculo proposicional e quantificadores

        CP2. Provas

        CP3. Teoria de conjuntos

        CP4. Funções

        CP5. Teoria de números

        Objetivos

        Os objetivos principais desta disciplina são:

        OA1. Aplicar propriedades elementares das operações lógicas e de quantificação;

        OA2. Construir argumentos matemáticos usando métodos de prova comum;

        OA3. Explicar os conceitos básicos sobre conjuntos e funções e realizar operações elementares sobre estes objetos matemáticos;

        OA4. Distinguir entre conjuntos numeráveis e conjuntos não numeráveis;

        OA5. Entender a teoria dos números;

        OA6. Contribuir para a aquisição de um conjunto de competências: capacidade de assimilar informação e de a comunicar; capacidade de expressão escrita; capacidade de expressão oral.

      • Matemática I

        Apresentação

        Esta disciplina abrange os métodos fundamentais de Cálculo associados a funções reais de variável real. É uma área transversal a todas as engenharias e demais cursos de cariz científico. Abrange os métodos clássicos de cálculo diferencial e Integral a uma dimensão.

        DocentesAndré FonsecaSofia FernandesSofia Naique

        Programa

        1. Lógica Matemática

        • Designação e proposição. Valor lógico de uma proposição. Conjunção e disjunção de proposições. Conjunto, interseção e união de conjuntos.

        2. Os números reais

        • Números racionais e irracionais. Ordem e valor absoluto.

        3. Funções reais de variável real:

        • Generalidades sobre funções. Funções polinomiais e racionais. Funções trigonométricas. Função exponencial e logarítmica.

        3. Limite:

        • Definição e propriedades de limites de uma função. Continuidade de funções.

        4. Derivada:

        • Interpretação geométrica. Regras de derivação. Derivadas de ordem superior.

        5. Estudo global de uma função:

        • Monotonia e extremos relativos. Concavidade e pontos de inflexão. Assíntotas. Gráficos.

        6. Integração:

        • Primitiva imediata. Primitivação por substituição e por partes. Integral definido, teorema fundamental do cálculo. Aplicações da integração (áreas de figuras planas).

        Objetivos

        Esta disciplina confere a(o) aluna(o) conhecimentos que lhe permitam utilizar, de forma criativa, autónoma, e em contextos diversificados:

        OA1: a linguagem simbólica matemática e o raciocínio matemático;

        OA2: os conceitos e resultados fundamentais do cálculo diferencial, de modo a que possa proceder ao estudo de uma função real de variável real; OA3: os métodos de primitivação:

        OA4: as noções fundamentais do cálculo integral, de modo a que possa calcular integrais simples e determinar áreas de domínios planos.

      • Matemática II

        Apresentação

        Geométria analítica e calculo diferencial e integral para funções reais de várias variáveis reais.

        DocentesAndré FonsecaGuilherme AntunesSofia Naique

        Programa

        1. Vectores e geometria do espaço

        1.1 Coordenadas cartesianas tridimensionais.

        1.2 Vectores, produto escalar.

        1.3 Rectas e planos.

        1.4 Superfícies cilíndricas e quádricas.

        1.5 Noções topologicas

        2. Funções vectoriais de variável real

        2.1 Funções vectoriais e curvas no espaço.

        2.2 Limites e continuidade. Diferenciabilidade, vector tangente a uma curva.

        2.3 Integração, comprimento de uma curva.

        3. Funções de várias variáveis

        3.1 Dominios e  curvas de nível.

        3.2 Limites e continuidade.

        3.3 Derivadas parciais, derivadas de ordem superior.

        3.4 Diferenciabilidade, planos tangentes e aproximações polinómiais.

        3.5 Derivada direccional, vector gradiente e sua interpretação geométrica.

        3.6 Matriz Hessiana, extremos locais e pontos de sela.

        4. Integrais múltiplos

        4.1 Integrais duplos.

        4.2 Coordenadas polares e mudança de variáveis em integrais duplos.

        4.3 Integrais triplos.

        4.4 Coordenadas cilíndricas e esféricas. Mudança de variáveis em integrais triplos.

        Objetivos

        Conferir competências nas técnicas e aplicações do cálculo diferencial e integral com funções de várias variáveis. Dominar os conceitos de limite, continuidade e diferenciabilidade de funções. Dominar o cálculo de integrais múltiplos.

        Ter capacidade de resolver problemas em contextos diversificados usando os métodos do cálculo diferencial e integral. Conhecer as aplicações a problemas de otimização, de caracterização geométrica de curvas e superfícies e de cálculo de volumes e áreas.

      • Probabilidades e Estatística

        Apresentação

        Esta unidade curricular dedica-se aos conceitos fundamentais da teoria da probabilidade, estatística e inferência estatística.

        DocentesSofia Naique

        Programa

        1. Estatística Descritiva

        Tipos de dados: inteiros, contínuos, categóricos, array, matriz

        Tabelas de frequências

        Medidas de centralidade e de variabilidade

        Visualização (Gráficos de barras, Histogramas, Caixas de Bigodes … )

        2. Regressão Linear

        Variável independente vs. dependente.

        Gráficos de dispersão

        Covariância e coeficiente de Pearson

        Reta de regressão,

        Resíduo

        Método dos mínimos quadrados

        Cálculo da estimativa para a resposta, dado certo valor para a variável independente

        3. Probabilidade

        Experiência aleatória. Espaço de resultados. Evento. Operações entre eventos.

        Propriedades da função probabilidade. Probabilidade da união de eventos Lei da probabilidade total Teorema de Bayes Probabilidade condicionada. Eventos independentes

        4. Inferência Estatística

        Amostra e amostra aleatória. Estimador e estimativa para uma proporção. Intervalo de confiança para uma proporção.  Teste de hipótese para uma proporção

        Objetivos

        Esta disciplina permite que o(a) aluno(a)

        OA1: seja exposto à probabilidade como uma função de medida essencial à ciência.

        OA2: entenda a estatística como uma área da ciência que permite à engenharia recolher dados, analisar dados, formular hipóteses relativas a esses dados e testar essas hipóteses. Nessa medida, a estatística e a probabilidade são essenciais ao conhecimento e à engenharia.

    • Arquiteturas e Sistemas Operativos

    • Redes e Telecomunicações

    • Programação e Engenharia de SW

      • Algoritmia e Estrutura de Dados

        Apresentação

        Muitos projetos na área da programação envolvem a resolução de problemas computacionais complexos, para os quais soluções rápidas e simplistas podem não ser suficientemente eficientes. Esta UC foca-se na problemática da conceção de bons algoritmos e de como analisar a sua correção e a sua eficiência. Estas são questões particularmente importantes, numa altura a qualidade do software se vem tornado, progressivamente, numa questão central. Trata-se portanto de uma UC particularmente relevante para o ciclo de estudos.

        DocentesLucio Studer

        Programa

        CP1: Complexidade, classes, funções típicas e análise de algoritmos;

        CP2: Complexidade e recursividade (conjunto de problemas recursivos);

        CP3: Algoritmos de pesquisa e seleção;

        CP4: Algoritmos de ordenação: Insertion Sort, Heap Sort, Merge Sort e Quicksort;

        CP5: Comparação dos algoritmos de ordenação quanto à sua complexidade (programação do Quicksort);

        CP6: Tipos abstratos de dados: Pilha e Fila;

        CP7: array circular, listas simples e duplamente ligadas;

        CP8: Implementação de Pilha e Fila (programação em array e / ou listas);

        CP9: Funções de dispersão: aberta e fechada;

        CP10: Tabelas de hash (prática de utilização de Dicionários e Conjuntos);

        CP11: Árvore binária, árvores AVL e árvore preta e vermelha;

        CP12: Árvore binária (programação de árvore binária);

        CP13: Noções básicas de grafos: grafo orientado, não orientado e etiquetado, caminho e comprimento;

        CP14: Caminho mais curto entre dois vértices – Algoritmo de Dijkstra;

        CP15: Algoritmo de Dijkstra (programação).

        Objetivos

        OA1: Analisar e comparar a complexidade de algoritmos;

        OA2: Aplicar a recursividade na resolução de problemas;

        OA3: Explicar e usar alguns dos principais algoritmos de pesquisa, seleção e ordenação;

        OA4: programar algoritmos de ordenação [aplicar o conhecimento (AC)];

        OA5: Explicar e usar os tipos abstratos de dados: Pilha e Fila;

        OA6: Programar uma Pilha e / ou Fila utilizando arrays ou listas (AC);

        OA7: Explicar as funções de dispersão;

        OA8: Usar as estruturas de dados Dicionários e Conjuntos na resolução de problemas (AC);

        OA9: Explicar e usar as estruturas de dados: árvore binária, AVL e preta e vermelha;

        OA10: Programar uma árvore binária (AC);

        OA11: Explicar e dar exemplos da utilização de grafos na resolução de problemas;

        OA12: Programar o algoritmo de Dijkstra (AC).

      • Fundamentos de Programação

        Apresentação

        Esta é uma disciplina fundamental na formação de qualquer profissional da área de Informática pois introduz os conceitos básicos da programação, sobre os quais assentarão muitas disciplinas subsequentes como Linguagens de Programação I e II, Algoritmia e Estruturas de Dados, Programação Web, Computação Móvel, etc. Mais do que aprender uma linguagem de programação, o aluno aprende a pensar como um programador, analisando problemas e desenhando algoritmos que os resolvam recorrendo a fluxogramas e a programas escritos em Kotlin, uma linguagem promissora que combina as melhores características das linguagens modernas mais populares (Java, Python, etc.)

        Dado ser o primeiro contacto de muitos alunos com o tópico da Programação, reveste-se de uma importância especial na aquisição de conhecimentos primordiais mas também na sua motivação. Mais do que aprender a programar, os alunos aprendem a gostar de programar.

        DocentesPedro AlvesBrena LimaBruno SaraivaLucio StuderRodrigo CorreiaWellington Oliveira

        Projetos

        • Jogo das Tendas

          Desenvolver uma grelha 2D que simule o terreno do jogo, com árvores distribuídas aleatoriamente. Permitir que o jogador coloque tendas junto às árvores, assegurando que cada tenda esteja ligada apenas a uma árvore.
          Implementar regras para assegurar que as tendas não se toquem, nem mesmo na diagonal, e criar uma interface de linha de comando para a interação do jogador com o jogo.

        • Batalha Naval

          Desenvolver uma grelha 2D que simule a arena do jogo, com navios e marcadores de jogadas anteriores.
          Criar uma interface de linha de comando para a interação do jogador com o jogo.

        Programa

        • Introdução à programação
        • Algoritmos, fluxogramas, pseudo-código
        • Sintaxe e semântica das linguagens
        • Elementos da sintaxe, estrutura de um programa
        • Declarações e atribuições
        • Tipos primitivos
        • Expressões aritméticas, expressões lógicas
        • Entradas e saídas de dados
        • Selecção
        • Repetição
        • Funções
        • Arrays uni-dimensionais e bi-dimensionais
        • Tratamento de erros
        • Leitura e escrita de ficheiros
        • Boas práticas de programação imperativa

        Objetivos

        O objectivo desta unidade curricular é fornecer aos futuros profissionais na área da informática as bases para que possam iniciar (de um modo disciplinado) a actividade de programação.
        O aluno começa por desenvolver a capacidade de raciocínio algorítmico recorrendo a fluxogramas.
        O aluno deverá ser capaz de traduzir esses fluxogramas numa linguagem de programação imperativa. Concretamente, o aluno deverá conhecer a sintaxe básica de Kotlin que lhe permitam criar programas simples de linha de comando.
        Finalmente, o aluno deve conseguir analisar e avaliar programas feitos por outras pessoas (colegas, professores, etc.).

      • Linguagens de Programação

        Apresentação

        Esta e¿ uma disciplina fundamental na formac¿a¿o de qualquer profissional da a¿rea de Ciência de Dados pois introduz os conceitos ba¿sicos da programac¿a¿o, sobre os quais assentara¿o muitas disciplinas subsequentes. Mais do que aprender uma linguagem de programac¿a¿o, o aluno aprende a pensar como um programador, analisando problemas e desenhando algoritmos que os resolvam recorrendo a fluxogramas e a programas escritos em Python, uma linguagem promissora que combina as melhores caracteri¿sticas das linguagens modernas mais populares.

        Dado ser o primeiro contacto de muitos alunos com o to¿pico da Programac¿a¿o, reveste-se de uma importa¿ncia especial na aquisic¿a¿o de conhecimentos primordiais mas tambe¿m na sua motivac¿a¿o. Mais do que aprender a programar, os alunos aprendem a gostar de programar.

        DocentesBruno Saraiva

        Programa

        OPP

        Herança

        Encapsulmaneto, decorators, variáveis obsfucadas

        Geradores

        Arrays

        Visualização de informação

        Introdução a Algoritmia e Estrutura de Dados

        Objetivos

        O objectivo desta unidade curricular é fornecer aos futuros profissionais na área de ciência de dados as bases para que possam iniciar (de um modo disciplinado) a actividade de programação.
        O aluno continua por desenvolver a capacidade de raciocínio algoritmico recorrendo a fluxogramas.
        O aluno deverá ser capaz de traduzir esses fluxogramas numa linguagem de programação imperativa. Concretamente, o aluno deverá conhecer a sintaxe básica de Python que lhe permitam criar programas simples de linha de comando.

         

    • Sistemas de Informação

      • Bases de Dados

        Apresentação

        Esta unidade curricular tem por objetivo apresentar a importância da Gestão de Dados no seio de uma empresa, de forma a garantir quer a operação diária de negócio, bem como o apoio à decisão estratégica.

        Nesta unidade reforçar-se-á o enquadramento de estruturação e metodologias de criação das bases de dados.

        DocentesRui RibeiroJoão CaldeiraLuis A. Gomes

        Programa

        O programa da unidade curricular é:
        A) Componente Teórico

        • Introdução
        • Modelo de relacionamento entre entidades
        • O modelo relacional
        • Refinamento de esquema: Conceito de normalização e transações
        • Arquitetura de SGBD e algum SQL Avançado

        B) Componente Prática

        • Introdução à linguagem SQL;
        • Instruções: DDL, DML (DQL) e DCL
        • Operações: WHERE, ORDER BY, GROUP BY;
        • Conceito avançados em SQL: Controlo de erros
        • Operadores Relacionais: União, intersecção e Subtracção
        • Produto Cartesiano (externo)
        • Queries complexos (filtro com valores agregados) e sub-queries
        • Set DDL; Instrução CREATE; Tipos de dados; Nulidade; Instruções ALTER e DROP
        • INDICES e VIEWS
        • Controlo de erros: estrutura TRY¿CATCH
        • Procedimentos (SP) e Triggers
        • Operações com tabelas: Cursores

        Objetivos

        São objetivos dotar os estudantes dos conhecimentos teóricos e práticos necessários à concepção, construção e análise de bases de dados relacionais: nomeadamente obter as seguintes aptidões e
        competências:
        1. Compreender as razões de implementação de bases de dados relacionais no mundo empresarial
        2. Transpor de uma análise de requisitos para um modelo entidade-associação para desenhar bases de dados;
        3. Aplicar os conceitos do modelo relacional de bases de dados, transformando o modelo entidade-associação, em modelo físico de dados;
        4. Aplicar as técnicas de normalização de tabelas;
        5. Compreender arquitetura e principais componentes de Sistemas de Gestão de Bases de Dados;
        6. Utilizar a linguagem SQL base e avançado para a criação, consulta e modificação de bases de dados;

    • Interação Humano-Máquina

    • Dados e Inteligência Artificial

      • Análise Exploratória de Dados

        Apresentação

        Esta Unidade Curricular tem como objectivo principal dar ao aluno as competências e ferramentas necessárias para a análise exploratória e descritiva dos dados. Pretende-se que o aluno consiga um entendimento básico de seus dados e das relações existentes entre as variáveis analisadas.

        DocentesJoão Caldeira

        Programa

        1. Introdução à Análise Exploratória de Dados e compreensão da sua importância na Ciência de Dados; 

         

        2. Caracterização dos diferentes tipos de dados e a sua natureza; 

         

        3. Estatística Descriptiva:

        • Tabelas de frequência;
        • Estatística Descriptiva: medidas de localização, dispersão, assimetria e curtose; 
        • Visualizações gráficas;

         

        4. Análise Bivariada:

        • Coeficiente de correlação linear de Pearson;
        • Regressão linear;
        • Independência entre variáveis;

         

        5. Visualizações gráficas;

        • Técnicas e melhores práticas;
        • Análise Exploratória de Dados (AED) automatizada;

         

        6. Python para análise exploratória de dados:

        • Introdução às bibliotecas NumPy e Pandas para limpeza e análise de dados; 
        • Introdução às bibliotecas Matplotlib, Seaborn, Plotly, Bokeh, entre outros para visualização de dados;
        • Ferramentas de Análise Exploratória de Dados (AED) automatizada.

        Objetivos

        No final desta unidade curricular, pretende-se que o aluno seja capaz de:

         

        • Perceber o que é a Análise Exploratória de Dados e como se encaixa no workflow de Data Science;
        • Compreender a natureza dos diferentes tipos de dados e a necessidade de tratá-los;
        • Compreender e aplicar estatística descritiva na análise de dados;
        • Fazer análises bivariada;
        • Organizar e sintetizar os dados de forma a obter as informações necessárias para responder as questões que estão sendo estudadas;
        • Criar visualizações objectivas e eficazes de dados que resultem em acções concretas;
        • Utilizar a linguagem Python e as suas bibliotecas para análise de dados.
      • Aprendizagem Automatizada I

        Apresentação

        Esta UC tem como objetivo conferir competências introdutórias no campo da Aprendizagem automatizada, dotando os alunos de conhecimentos sólidos e estruturados que lhes permitam entender conceitos teóricos e desenvolver código para resolução de problemas práticos de AA.

        DocentesJoão P. CarvalhoBruno Saraiva

        Programa

        Introdução à Aprendizagem Automática.

        Paradigmas de Aprendizagem Automática: Aprendizagem Supervisionada, Aprendizagem Não-Supervisionada e Aprendizagem por Reforço.

        Dados

        • Tipos de dados.
        • Medidas de proximidade e medidas de dispersão de dados.
        • Tópicos de normalização e visualização de dados
        • Visualização de Dados por Análise de Componentes Principais

        Aprendizagem Supervisionada

        • Regressão
        • Árvores de Decisão
        • Redes Neuronais
        • Máquinas de Suporte Vectorial
        • Classificador dos K-Vizinhos mais Próximos
        • Avaliação e comparação de métodos de classificação
        • Ensembles

        Aprendizagem Não-Supervisionada

        • Métodos de Agrupamento por partição
        • Métodos de Agrupamento Probabilístico
        • Métodos de Agrupamento Difuso por partição
        • Métodos de Agrupamento Hierárquico
        • Avaliação de métodos e de resultados de agrupamento
        • Outros métodos

        Objetivos

        Saber

        • Compreender os paradigmas e desafios da área de Aprendizagem Automatizada. Aprendizagem Supervisionada, Aprendizagem Não-Supervisionda e Aprendizagem por Reforço.
        • Aprender métodos fundamentais e suas aplicações na descoberta de conhecimento orientada aos dados. Dados, selecção de modelos, complexidade de modelos, etc.
        • Compreender vantagens e limitações dos métodos de Aprendizagem Automatizada estudados.

        Fazer

        • Implementar e adaptar algoritmos de Aprendizagem Automatizada.
        • Modelar experimentalmente dados reais
        • Interpretar e avaliar resultados experimentais.
        • Validar e comparar algoritmos de Aprendizagem Automatizada.

        Competências Complementares

        • Capacidade de avaliar a adequação dos métodos a dados e aplicações práticas.
        • Capacidade de avaliar criticamente os resultados obtidos.
        • Autonomia para aplicar e aprofundar os conhecimentos na área de Aprendizagem Automatizada.
      • Ciência de Dados

        Apresentação

        Esta disciplina oferece uma visão aprofundada do campo da Ciência de Dados, ensinando princípios e métodos fundamentais de análise e aprendizado a partir de dados. O curso é direcionado a analistas de dados sem conhecimentos prévios em estatística, e enfatiza a importância da ética na construção e uso de modelos obtidos a partir de dados. Os métodos de ensino incluem aulas tradicionais, debates em sala de aula e atividades de auto-avaliação, ajudando os alunos a desenvolver habilidades críticas e analíticas essenciais para o sucesso na ciência de dados. Ao final do curso, os alunos terão uma compreensão abrangente do campo, bem como as habilidades e conhecimentos necessários para se tornarem cientistas de dados de sucesso.

        DocentesGabriela Soares

        Programa

        1. Introdução à Ciência de Dados
        2. O que significa aprender com dados?
        3. Como garantir a precisão dos modelos?
        4. Regressão linear simples
        5. Regressão linear múltipla
        6. Como trabalhar com modelos de regressão?
        7. Classificação logística
        8. Modelos de classificação generativa
        9. Métodos de reamostragem
        10. Métodos baseados em árvores para regressão e classificação
        11. Aspetos éticos e regulamentos âmbito da Ciência de dados

        Objetivos

        1. Familiarizar os estudantes com o campo multidisciplinar da Ciência de Dados
        2. Adquirir conhecimentos aprofundados sobre o que significa aprender estatisticamente a partir de dados
        3. Compreender o que são os modelos de regressão e classificação
        4. Compreender como validar e utilizar modelos construídos a partir de dados
        5. Adquirir uma diversidade de métodos para criar modelos de regressão e classificação
        6. Comparar criticamente diferentes métodos para produzir modelos de regressão ou classificação
        7. Compreender a importância e usos de métodos de reamostragem na Ciência de Dados
        8. Compreender os princípios éticos básicos e regulamentações no contexto de modelos baseados em dados
      • Fundamentos de Ciência de Dados

        Apresentação

        Esta unidade curricular é o primeiro contacto dos alunos com as múltiplas dimensões da ciência de dados. Apresenta conteúdos de “visão global” que serão aprofundados noutras UC, ao longo de toda a licenciatura.

        Nesta UC pretende-se dar ao aluno as visões de diferentes setores: académicos, empresariais e sociais, do uso e da utillidade da ciência de dados. Serão debatidos os seus principios básicos, a sua génese, as relações com outras disciplinas e algumas das suas ferramentes e princípios teóricos, assim como as potenciais implicações éticas da sua aplicação. Pretende-se igualmente levar o aluno a refletir sobre a fonte, o uso e o conhecimento que se pode extrair dos dados, contribuindo para o desenvolvimento da acuidade de pensamento baseado em evidência. 

        DocentesGabriela Soares

        Programa

        CP1 – Introdução à UC

        CP2 – Dados, tipos de dados e manipulação de dados

        • Metadados
        • Enviesamentos
        • Tipos de dados e representações
        • Computação e Armazenamento

        CP3 – Análise Exploratória de Dados

        • Medidas de posição e dispersão
        • Visualização

        CP4 – Modelação de dados, Bases de dados, Extração, Integração e Tratamento de dados

        • Origem dos dados
        • Fontes de dados
        • Extração
        • Dados x Informação
        • Processamento

        CP5 – Aprendizado de Máquina

        • Modelos supervisionados
        • Modelos não supervisionados

        CP6 – Estudo de Caso

        CP7 – Ética para a Ciência de Dados

        CP8 – Projetos em Ciência de Dados – Metodologias

        Objetivos

        Após concluir esta UC com sucesso o aluno deverá ter atingido os seguintes objetivos de aprendizagem (OA):

        OA1. Entender e explicar o que são dados. Distinguir diferentes tipos de dados.   Identificar e classificar fontes de dados.

        OA2. Ser capaz de defender a necessidade, utilidade e valor da aplicação da ciência de dados a problemas científicos, de gestão e sociais, no sentido de descrever e prever problemas e prescrever soluções. 

        OA3. Distinguir a Ciência de Dados de disciplinas afins, identificando semelhanças e diferenças.

        OA4. Examinar as implicações da recolha de dados na ciência, nas empresas e na sociedade, e o respetivo enquadramento ético.

        OA5. Entender as necessidades contextuais de um modelo de análise de dados e ser capaz de desenhar e criar um modelo simples.

      • Fundamentos de Engenharia de Dados

        Apresentação

        Esta cadeira aborda uma variedade de tópicos relacionados à engenharia de dados numa perspectiva do Cientista de Dados, desde as diversas fontes de dados até a estrutura e disponibilização dos dados processados para modelos e visualização. Os alunos aprendem os fundamentos conceituais da engenharia de dados que permitem disponibilizar dados com qualidade para utilização em aplicações de ciência de dados.

        DocentesGabriela Soares

        Programa

        A UC está organizada nos seguintes conteúdos programáticos:

        • CP1 – Introdução
          • O que é um Engenheiro de Dados?
          • O que um cientista de dados necessita saber de engenharia de dados?
          • Pipelines de engenharia de dados
        • CP2 – Bases de Dados relacionais
          • Revisão de SQL
          • Conceitos utilizdos em modelos de dados
        • CP3 – Modelagem de dados
          • Fontes de dados
          • Data Lake
          • Data Warehouse
          • Data Lakehouse
          • Modelos de dados
        • CP4 – Fundamentos de Big-data
          • Hadoop
          • MapReduce
        • CP5 – Transformação de dados
          • Transformações necessárias para armazenar os dados para projetos de Data Science
        • CP6 – Ferramentas de visualização de dados
        • CP7 – Bases de dados NoSQL
        • CP8 – Projetos de engenharia de dados

        Objetivos

        OA1. Compreender os conceitos fundamentais de engenharia de dados.

        OA2. Compreender o ciclo de vida da engenharia de dados.

        OA3. Aprender a utilizar SQL para transformar e consultar dados.

        OA4. Compreender técnicas de modelação de dados para organização e gestão de dados.

        OA5. Construir pipelines para coletar, transformar, analisar e visualizar dados de fontes operacionais de dados.

        OA6. Ser capaz de aplicar os princípios utilizados nas aulas para construir um pipeline completo da coleta à visualização de dados.

      • Inteligência Artificial

        Apresentação

        Esta UC tem como objetivo conferir competências de continuação no campo da Inteligência Artificial, dotando os alunos de conhecimentos sólidos e estruturados que lhes permitam entender conceitos teóricos e desenvolver código para resolução de problemas práticos de IA.

        DocentesJoão P. CarvalhoBruno Saraiva

        Programa

        Noções intermédias de IA em vários domínios.
        Modelos: n-Grams, Algoritmos genéticos, modelos de regressão linear e logística, perceptrão, redes neuronais.
        Funções de ativação: Linear, Sigmoide, Relu, outras abordagens.
        Aprendizagem: noções básicas e intermédias, previsão de ações, outras abordagens.

        Objetivos

        Saber

        • Compreender os paradigmas e desafios da área de Inteligência Artificial.
        • Aprender métodos fundamentais e suas aplicações na descoberta de conhecimento orientada aos dados. Dados, selecção de modelos, complexidade de modelos, etc.
        • Compreender vantagens e limitações dos métodos de Inteligência Artificial estudados.

        Fazer

        • Implementar e adaptar algoritmos de Inteligência Artificial.
        • Modelar experimentalmente dados reais
        • Interpretar e avaliar resultados experimentais.
        • Validar e comparar algoritmos de Inteligência Artificial.

        Competências Complementares

        • Capacidade de avaliar a adequação dos métodos a dados e aplicações práticas.
        • Capacidade de avaliar criticamente os resultados obtidos.
        • Autonomia para aplicar e aprofundar os conhecimentos na área de Inteligência Artificial.
      • Introdução à Inteligência Artificial

        Apresentação

        Esta UC tem como objetivo conferir competências introdutórias no campo da Inteligência Artificial, dotando os alunos de conhecimentos sólidos e estruturados que lhes permitam entender conceitos teóricos e desenvolver código para resolução de problemas práticos de IIA.

        DocentesJoão P. Carvalho

        Programa

        • Noções básicas de IA vários domínios.
        • Procura de caminhos, orientação e navegação: grafos, algoritmos de Dijkstra e A*, grelhas e malhas de navegação, funções de custo.
        • Decisões: árvores de decisão, máquinas de estados, árvores de comportamento, outras abordagens.
        • Aprendizagem: noções básicas, previsão de ações, classificadores de Bayes, outras abordagens.
        • Jogos de tabuleiro: noções básicas, família de algoritmos minimax, MCTS, outras abordagens. 

        Objetivos

        1. Domínio das noções básicas de Inteligência Artificial.
        2. Domínio de conceitos básicos e intermédios de movimento inteligente e procura de caminhos.
        3. Domínio de conceitos intermédios e avançados na tomada de decisões através de máquinas de estado, árvores de comportamento, entre outros.
        4. Domínio de tópicos de Inteligência Artificial em jogos de tabuleiro.
        5. Capacidade de resolver problemas envolvendo os conceitos adquiridos, tanto a nível abstrato como ao nível prático (programação).
      • Introdução à Teoria de Grafos e Redes

        Apresentação

        A UC de Introdução à Teoria dos Grafos e Redes pretende dar ferramentas aos alunos para utilização de grafos em diversos problemas, partindo dos conceitos básicos, passando por problemas clássicos, e finalmente uma breve introdução de redes complexas, e as suas aplicações em problemas de Ciência de Dados.

         

        DocentesGabriela Soares

        Programa

        CP1. Conceitos básicos (Definição, vértices, arestas, grafos orientados e não orientados, métricas, subgrafos, distância e conexidade, isomorfismos, invariantes e teoria espetral).

        CP2. Redes e fluxos (Fluxo máximo, fluxo de custo mínimo)

        CP3. Análise de redes (Representação de redes, visualização de redes, grau, medidas de distância e centralidade)

        CP4. Grafos aleatórios (Erdös-Rényi, Watts-Strogatz, Barabasi-Albert)

        CP5 Aplicações. em Data Science.

        Objetivos

        Os objetivos principais desta disciplina são:

        OA1. Identificar e utilizar conceitos e fundamentos sobre teoria de grafos;

        OA2. Introduzir o aluno aos problemas e teoremas básicos da teoria de grafos;

        OA3. Representar redes, determinar estatísticas de distâncias e coeficientes de clustering;

        OA4. Analisar a centralidade de uma rede;

        OA5. Caracterizar redes aleatórias: clássicas (Erdös-Rény), pequeno mundo (Watts-Strogatz) e livres de escala (Barabasi-Albert);

        OA6. Aplicar os conceitos abordados na unidade curricular à Ciência de Dados.

      • Visualização para Ciência de Dados

        Apresentação

        A utilização de representações gráficas dos dados facilita o seu entendimento e identificação de padrões. Um dos aspetos a considerar na criação de visualizações é como representar os dados, dado o objetivo da visualização. Esta disciplina aborda tal aspecto articulando os fundamentos da visualização de informação (que gráficos usar e como) com a respetiva implementação.

        DocentesSofia Fernandes

        Programa

        CP1 Introdução à visualização de informação

        CP2 Tipos de gráficos e sua utilização

        CP3 Implementação e personalização dos gráficos em Python

        CP4 Desenho e implementação de dashboards em Python

        Objetivos

        OA1 Conhecer os elementos envolvidos na criação de uma visualização

        OA2 Conhecer os tipos de gráficos adequados a cada tipo de dados  

        OA3 Ter capacidade de identificar o tipo de gráfico adequado ao objetivo de visualização

        OA4 Conhecer boas práticas e erros a evitar na criação de gráficos

        OA5 Saber criar e personalizar visualizações em Python

        OA6 Ter capacidade de desenhar um dashboard com vista às necessidades do utilizador final 

    • Gestão e Softskills

    • Genérica

  • Competências adquiridas

    (1) completar os ciclos de análise experimental; (2) obter resultados de qualidade científica com fluidez; (3) saber integrar-se e trabalhar em equipas multidisciplinares, (4) boa capacidade de síntese a apresentar resultados.

  • Destinatários

    Este ciclo de estudos destina-se a candidatos com bases em áreas de Informática, Estatística, Física, Matemática, Gestão, Ciências Economias e Financeiras ou afins, que queiram adquirir competências na área de Ciência de Dados.

  • Ligação com o meio empresarial

  • Oportunidades de carreira

    – Data Scientist / Cientista de Dados
    – Applied Data Scientist / Cientista de dados Aplicado
    – Applied Data Researcher / Investigador de Dados Aplicado
    – Applied Machine Learning Researcher / Investigador de Aprendizagem Automatizada Aplicada
    – Business Intelligence Analyst / Analista de Inteligência de Negócio

Universidade Lusófona


ECATI Escola de Comunicação, Arquitetura, Artes e Tecnologias da Informação

Departamento de Engenharia Informática e Sistemas de Informação
Edifício F, sala F.1.3
Direção — 217 515 500 (ext: 683)
Serviço de Apoio Tecnico-Admistrativo (SATA) — 17 515 500 (ext: 764)


Lisboa
Avenida do Campo Grande,
376 1749-024 Lisboa, Portugal
Tel.: 217 515 500 | email: info.cul@ulusofona.pt
Porto
Rua Augusto Rosa,
Nº 24, 4000-098 Porto - Portugal
Tel.: 222 073 230 | email: info.cup@ulusofona.pt

Gestão de conteúdos por Lucio Studer Ferreira © 2022 COFAC.