Disciplinas

Título

Programação para Ciência de Dados

Carga horária

26 h

Objetivos

Esse módulo objetiva capacitar no aluno o uso de lógica de programação e o ensinar o uso das linguagens Python e R aplicadas à ciência de dados.  Os tópicos abordam desde tipos de variáveis, estruturas de programação até a utilização de bibliotecas que permitam a manipulação e análise de diferentes tipos de dados. 

Ementa

  1. Ensino de tipos de dados tipos de dados (variáveis) e aplicação de operadores (lógicos, comparação, etc); Entrada e saída de dados; Estruturas de decisão e repetição; Arranjos; 
  2. Modularização e subprogramas.
  3. Estruturas de dados básicas.
  4. Leitura e escrita de arquivos e conjuntos de dados.

Título

Estatística Descritiva e Visualização de Dados

Carga horária

16h 

Objetivos

Apresentar aos alunos técnicas estatísticas para análise de dados reais. Abordar os principais métodos para descrição, exploração, análise e interpretação de dados uni e multivariados. Introduzir o uso de pacotes estatísticos e discutir o uso das técnicas.

Ementa

  1. Tipos de variáveis
  2. Medidas de Resumo: média, variância, quantis amostrais
  3. Gráficos: histograma, boxplot
  4. Generalização para caso multivariado (variáveis qualitativas): medidas de associação e correlação
  5. Estimadores de densidade e métodos de interpolação não linear via suavizadores
  6. Técnicas geométricas de visualização (coordenadas paralelas, scatterplot, projeção multidimensional)
  7. Técnicas hierárquicas de visualização

Título

Bancos de Dados

Carga horária

24 hrs

Objetivos

O objetivo da disciplina é tratar de assuntos relacionados à modelagem de dados, armazenamento e recuperação de dados, além do uso de Sistemas Gerenciadores de Banco de Dados Relacionais (SGBDRs). Para tanto, serão apresentados conceitos de bancos de dados, que abrangem os níveis conceitual, lógico e físico, sobre modelo Entidade-Relacionamento Estendido, Modelo Relacional, mapeamento entre modelos conceitual e lógico, linguagem de consulta SQL, organização física de dados (páginas de disco, arquivos, campos e registros) e estruturas de indexação (árvore-B e variantes, hashing e bitmap). Nesse sentido, serão apresentadas as ferramentas necessárias para o projeto e implementação de bancos de dados em SGBDRs.

Ementa

  1. Modelagem de Dados Relacionais, introdução e etapas;
  2. Projeto Conceitual;
  3. Projeto lógico;
  4. Normalização;
  5. Projeto Físico;
  6. SQL: criação, inserção e consultas simples, consultas complexas, ordenação e junção
  7. Organização física dos dados;
  8. Projeto prático de Banco de Dados: Criação de uma base de dados na nuvem e acesso a mesma)
  9. Segurança de dados e privacidade

Título

Probabilidade

Carga horária

24h

Objetivos

Apresentar as regras básicas do cálculo de probabilidades, os conceitos de valor esperado, variáveis aleatórias (discreta e contínua) e suas extensões multivariadas.

Ementa

  1. Interpretações do conceito de probabilidade e axiomas do cálculo de probabilidades.
  2. Probabilidade condicional.
  3. Teorema de Bayes.
  4. Variáveis aleatórias: discretas e contínuas.
  5. Esperança de uma variável aleatória; esperança condicional.
  6. Principais modelos estatísticos discretos e contínuos.
  7. Modelos multivariados: normal e multinomial.

Título

Introdução a Modelos de Regressão

Carga horária

32h

Objetivos

Apresentar aos alunos técnicas de modelagem estatística, diagnósticos e critérios de escolha de modelos. Uso de pacotes estatísticos

Ementa

  1. Introdução aos modelos lineares: definição, estimação dos parâmetros pelo método de mínimos quadrados
  2. Critério para avaliar estimadores: erro quadrático médio
  3. Propriedades do estimadores: viés, variância e distribuição assintótica
  4. Estimação por máxima verossimilhança, intervalos de confiança, testes de hipóteses
  5. Critérios de seleção de modelos
  6. Modelos para variáveis categóricas: logit, probit, logit multinomial
  7. Componentes principais

Título

Pré-processamento de Dados Estruturados

Carga horária

8h

Objetivos

Introduzir aos alunos a importância do pré-processamento de dados para obtenção de resultados mais confiáveis. Neste módulo, serão apresentados possíveis problemas a se tratar nesta fase do processo, bem como técnicas para lidar com cada um desses problemas.

Ementa

  1. Seleção de atributos
  2. Transformações em atributos numéricos
  3. Discretização
  4. Tratamento de Valores Faltantes
  5. Normalização
  6. Quantização
  7. Tratamento de Outliers e Erros.

Título

Estatística computacional

Carga horária

16h

Objetivos

Este módulo visa discutir conceitos de aleatoriedade e pseudo-aleatoriedade em algoritmos, ilustrando conceitos de inferência através de simulação estocástica. Além disso, serão apresentados os principais métodos computacionais para solução de problemas em Estatística.

Ementa

  1. Geração de números pseudoaleatórios uniformes e não uniformes.
  2. Métodos de inversão, aceitação-rejeição e transformações de variáveis aleatórias.
  3. Reamostragem: bootstrap e jackknife
  4. Método de Monte Carlo
  5. Métodos de redução de variância.
  6. Validação cruzada
  7. Diagnósticos de convergência (Métodos gráficos e numéricos)

Título

Introdução a Modelos de Classificação

Carga horária

24h

Objetivos

Este módulo visa apresentar conceitos básicos e algoritmos de aprendizado de máquina para a tarefa de classificação, desenvolvendo no aluno a competência para saber identificar quais algoritmos de classificação e quais ferramentas podem ser adequados a cada problema. Além disso, visa também capacitar o aluno a realizar a análise de resultados desses algoritmos, bem como combinar modelos para melhores resultados.

Ementa

  1. Conceitos básicos de classificação
  2. Apresentação de algoritmos de classificação de diferentes paradigmas
  3. Avaliação de modelos de classificação
  4. Combinação de modelos (ensembles)

Título

Análise de Agrupamento de Dados

Carga horária

24h

Objetivos

Apresentar ao aluno os principais conceitos que envolvem o agrupamento de dados e capacitá-los a aplicar suas técnicas, bem como ajuste fino de seus parâmetros. Apresentar as principais técnicas de agrupamento de dados, desde as clássicas até o estado-da-arte e apresentar aplicações reais que envolvam conjuntos de dados públicos de diferentes origens (acadêmicos, do governo e mercado). 

Ementa

  1. Conceitos e definições básicas da análise de agrupamento, principais motivações e aplicações na academia e mercado.
  2. Estudo sobre as formas de representação dos dados, efeitos de normalizações e escolhas de medidas de dissimilaridade sobre o agrupamento.
  3. Aprendizado de métodos particionais rígidos e com sobreposição, bem como estudo de seus parâmetros.  
  4. Análise e aplicação de  métodos hierárquicos aglomerativos e divisivos, formulações parametrizadas e sua relação com teoria dos grafos.
  5. Avaliação da qualidade de agrupamentos utilizando índices de validação externos, internos e relativos, técnicas de validação de estruturas hierárquicas e particionais, qualidade de grupos individuais, tendência de agrupamento e estimação do número de grupos.

Título

Bancos de Dados Não-Relacionais

Carga horária

16 h

Objetivos

Apresentar aos alunos SGBDs Não-Relacionais, seus princípios, modelagem, criação e uso de SGBDs não-Relacionais. Fornecer aos alunos conhecimento para determinar qual abordagem (relacional ou não-relacional) é mais adequada para um tipo de aplicação.

Ementa

  1. O que são Banco de Dados Não-Relacionais (NR). Tipos de BD não relacionais (baseados em grafo, chave-valor, documento). Comparação com estratégias relacionais.
  2. SGBDs Não Relacionais
  3. Escalabilidade e alta-disponibilidade dos dados
  4. Modelagem NR
  5. Criação de Bases NRs
  6. Popular Base NRs
  7. Consulta a Dados NRs
  8. Aplicações para BDs NRs

Título

Processamento de Linguagem Natural

Carga horária

18 hrs

Objetivos

Capacitar o aluno a manipular textos para transformá-los em informação. Ao final deste módulo o aluno estará apto a converter o texto em informação útil para os algoritmos de aprendizado de máquina utilizando, para isso, ferramentas, bibliotecas e recursos linguístico-computacionais disponíveis.

Ementa

  1. Níveis de processamento de texto: lexical, sintático, semântico
  2. Etapas de pré-processamento: normalização, tokenização, lematização, stemming, remoção de stopwords, etiquetação morfossintática (part-of-speech tagging), análise sintática (parsing) e análise semântica
  3. Recursos linguístico-computacionais: vetores de palavras (word embeddings), léxicos, bases lexicais (ex: wordnet), ontologias, córpus
  4. Ferramentas computacionais e bibliotecas para pré-processamento de texto.

Título

Redes Neurais Artificiais

Carga horária

16h

Objetivos

Apresentar fundamentação sobre os principais modelos de Redes Neurais Artificiais existentes na literatura, e suas formalizações matemáticas, bem como seus respectivos modelos de aprendizado. Além disso, apresentar implementações práticas dos modelos estudados. 

Ementa

  1. Introdução aos tipos de aprendizado
  2. O Perceptron e o Multi-Layer Perceptron
  3. Radial Basis Function
  4. Mapas Auto-Organizáveis
  5. Redes recorrentes, BAM e Modelo de Hopfield
  6. Restricted Boltzmann Machines
  7. Autoencoders

Título

Deep Learning

Carga horária

24h

Objetivos

Apresentar os principais fundamentos de redes neurais profundas, e como construir tais redes neurais, formalizações matemáticas e modelos de aprendizado. Serão apresentadas implementações práticas dos modelos estudados.

Ementa

  1. Introdução ao paradigma de aprendizado profundo
  2. Redes neurais convolucionais
  3. Transferência de aprendizado
  4. Redes adversárias generativas
  5. Redes neurais para modelagem de sequências
  6. Aprendizado de características com autoencoders
  7. Técnicas para evitar overfitting

Título

Processamento Digital de Imagens e Visão Computacional

Carga horária

18 h

Objetivos

Habilitar o aluno a aplicar técnicas de filtragem para a redução de ruído de imagens e melhoramento de sua qualidade; Capacitar o aluno a realizar o pré-processamento de imagens para a subsequente aplicação de técnicas de aprendizado de máquina; Habilitar o aluno a identificar as técnicas mais adequadas a serem aplicadas dependendo do tipo de imagem a ser processada.

Ementa

Introdução: visão geral das etapas de um sistema de processamento de imagens; Apresentação de técnicas de obtenção e modificação de histogramas; Detalhamento sobre filtragem espacial de imagens (filtros lineares e não-lineares); Visão geral sobre filtragem de imagens no domínio da frequência; Introdução à classificação de imagens.

Título

Análise de Séries Temporais

Carga horária

24 h

Objetivos

Apresentar o conceito de série temporal e suas principais aplicações, especialmente a construção de modelos preditivos.

Indicar as bibliotecas especificas do R e Python para estimar os modelos estudados. 

Ementa

  1. Definições: séries temporais, séries estacionárias e não-estacionárias, tendência, ciclo e sazonalidade.
  2. Relação entre processos estocásticos e séries temporais.
  3. Metodologia de Box-Jenkins: auto-correlação e autocorrelação parcial, equações a diferenças finitas, identificação, estimação e previsão por modelos AR, MA, ARMA e ARIMA.
  4. Modelos ARIMA com covariáveis: identificação, estimação e previsão.
  5. Modelos com sazonalidade: identificação, estimação e previsão.
  6. Modelos multivariados: identificação, estimação e previsão.
  7. Modelos baseados em Aprendizado de Máquina

Título

Projeto de Experimentos em Aprendizado de Máquina

Carga horária

24h

Objetivos

Apresentar ao aluno conceitos relacionados à pesquisa científica e capacitá-lo a: (i) identificar problemas nos quais a ciência de dados pode ser aplicada, (ii) projetar soluções para um ou mais problemas de ciência de dados, (iii) desenvolver experimentos para testar as soluções e (iv) reportar os resultados na monografia de Trabalho de Conclusão de Curso.

Ementa

  1. Caracterização do que é pesquisa, sua motivação e metodologia de desenvolvimento
  2. Introdução aos métodos de pesquisa científica
  3. Identificação de problemas nos quais a ciência de dados pode ser aplicada
  4. Descrição detalhada das etapas da pesquisa
  5. Conceituação de aspectos da ética na pesquisa científica
  6. Proposição de soluções para os problemas identificados
  7. Projeto de experimentos para solucionar os problemas identificados
  8. Aprofundamento da organização da escrita científica
  9. Acompanhamento dos projetos de experimentos
  10. Orientação sobre a apresentação da Pesquisa
  11. Acompanhamento dos projetos de experimentos

Título

Aprendizado de Máquina sobre Grandes Volumes de Dados

Carga horária

26 h

Objetivos

O objetivo da disciplina capacitar o aluno a manipular e analisar grandes volumes de dados de forma escalável. Para isso, serão abordados conceitos de técnicas de computação distribuída utilizando arcabouços para manipulação e análise de dados. Capacitar o aluno a aplicar técnicas de aprendizado máquina sobre grandes volumes de dados dados utilizando programação funcional (Python e Scala). Para isso, serão estudados frameworks bem conceituados no mercado, como Hadoop e Spark.

Ementa

  1. Introdução à computação escalável e distribuída, mostrando quais são as diferenças, vantagens e desvantagens entre a computação centralizada e distribuída. Como pensar, arquitetar e desenvolver em um paradigma distribuído.
  2. MapReduce e sistema distribuído de arquivos: uma introdução ao modelo MapReduce usando o framework Hadoop e ao seu sistema de arquivos HDFS, capaz de armazenar e recuperar dados distribuídos.
  3. Programação funcional em Python e Scala para computação distribuída, manipulação de dados, como aplicar transformações e ações, como funciona a resiliência e a tolerância a falhas em Spark.
  4. Manipulação de dados semi-estruturados através de transformações e ações disponíveis no DataFrame API.
  5. Utilização de SQL sobre conjuntos de dados de DataFrames.
  6. Aprendizado de máquina sobre conjuntos de dados escaláveis: principais conceitos e métodos.