- Demonstração da visão geral de banco de dados relacionais.
- Importância de um Sistema Gerenciador de Banco de Dados e do uso de banco de dados na ciência de dados.
- Abstração de dados: classificação, agregação, divisão e generalização.
- Projeto de banco de dados relacional: modelagem conceitual, lógica e física.
- Modelo entidade-relacionamento (MER) e a construção de diagramas entidade-relacionamento considerando problemas de integração de esquemas entre diferentes visões de usuários.
- Demonstração de técnicas de mapeamento do MER para o modelo lógico (esquema relacional).
- Dependências funcionais: normalização e sua importância.
- Álgebra relacional: operadores fundamentais.
- Construção de um projeto de banco de dados relacional: nível conceitual e lógico.
- Coleta e pré-processamento de dados: obtenção de dados, tipos/formatos de dados, data scraping, Web, bibliotecas, limpeza, normalização e seleção de atributos e amostras.
- Análise exploratória de dados: exploração dos dados, estatísticas descritivas (por exemplo, média, mediana, moda).
- Visualização de dados: tipos de gráficos/dados, visualização, ferramentas e bibliotecas para construção de gráficos estáticos, dinâmicos e interativos.
- Utilização da linguagem R para demonstração de conceitos.
- Demonstração das linguagens de programação usadas em um Sistema Gerenciador de Banco de Dados (SGBD) e sua importância na ciência de dados.
- Utilização de um SGBD: instalação, configuração, usuários e funcionalidades principais.
- Construção do esquema físico de um banco de dados relacional.
- Linguagem de definição de dados (DDL): criação, remoção e alterações estruturais de objetos armazenados em um banco de dados relacional.
- Linguagem de manipulação de dados (DML): inserção, remoção, alteração e recuperação de dados.
- Conceitos básicos das linguagens de: controle de dados e controle de transações.
- Importância do gerenciamento e administração de banco de dados relacional na ciência de dados.
- Otimização na recuperação de dados: estruturas de indexação (índice invertido, B-tree, Hash, Bitmap, entre outros), plano de execução de consulta, habilitação de funcionalidades extras do Sistema Gerenciador de Banco de Dados (SGBD), conceitos de tunning (configurações avançadas de um SGBD).
- Linguagem de controle de dados (DCL): atribuição, remoção e tipos de privilégios sobre um objeto de um banco de dados relacional.
- Linguagem de controle de transações (TCL): conceito de transação e controle de concorrência, problemas clássicos de concorrência, propriedades ACID (atomicidade, consistência, isolamento e durabilidade).
- Linguagem de programação procedural: gatilhos, funções, procedimentos e outras funcionalidades.
- Introdução ao SGBD extensível: bibliotecas, ferramentas e outras linguagens procedurais.
- Principais linguagens de programação para ciência de dados e a importância/popularização da linguagem de programação Python.
- Instalação e preparação de ambiente de programação para a linguagem Python.
- Elementos básicos da linguagem Python, estrutura sequencial, de decisão e de repetição.
- Tipos de dados em Python: tipos básicos, tuplas, listas, mutação e dicionários.
- Funções.
- Manipulação de strings.
- Recursão, busca e ordenação.
- Classes e herança.
- Eficiência, estilo de programação e documentação interna.
- Introdução às bibliotecas Pandas, colab, spyder, Matplotlib e NumPy.
- Desenvolvimento de algoritmos utilizando Python.
- Conceitos fundamentais: predição, aprendizado supervisionado e não supervisionado.
- Definição de dados não convencionais e suas manipulações: dados espaciais e imagens.
- Importância de utilizar imagens em aplicações com ciência de dados.
- Discussão dos principais operadores para manipular imagens.
- Demonstração das etapas da recuperação de informação baseada em conteúdo.
- Consultas por similaridade e suas implementações: Knn, consulta por abrangência (range query), Knn reverso, entre outros.
- Diversidade em consultas por similaridade.
- Descritores.
- Extração de características: baseado em segmentação, textura, cor e suas combinações.
- Funções de distância: Minkowski, Mahalanobis, Canberra, entre outras.
- Definições de espaço métrico.
- Métodos de acesso métrico: conceitos, implementação e desempenho.
- Redução de dimensionalidade: PCA, Fractal e a maldição da dimensionalidade.
- Conceitos básicos sobre Big Data e seus elementos principais: características dos Vs do Big Data.
- Conceitos sobre NoSQL e sua importância na ciência de dados.
- Paradigma BASE e suas diferenças em relação ao paradigma ACID.
- Modelos de dados para NoSQL e Big Data: orientado a documentos, orientado a chave e valor, orientado a coluna, orientado a linha e orientado a grafo. Banco de dados NoSQL: aplicações, desenvolvimento e suas linguagens de consulta.
- Preparação de ambiente para utilização de um sistema NoSQL.
- Conectividade de sistemas NoSQL utilizando uma linguagem de programação para ciência de dados.
- Técnicas de otimização de consultas para Big Data usando ferramentas NoSQL.
- Introdução ao processamento massivo de grandes volumes de dados: combinando NoSQL e Sistemas Gerenciadores de Dados tradicionais com sistemas distribuído de dados.
- Visão geral das etapas e elementos do ambiente de data warehousing e do processamento analítico de dados.
- Importância do processamento analítico de dados na ciência de dados aplicada à inteligência de negócio.
- Processo de ETL: extração, transformação, limpeza e tratamento de dados e demonstração de ferramentas disponíveis.
- Modelagem dimensional: conceitos e objetivos, hipercubo de dados, tabelas de fato, tabelas de dimensão, medidas, hierarquias e grafo de derivação e entre outros elementos.
- Data warehouse: conceitos e aplicações, esquema estrela, esquema floco-de-neve e constelação de fatos.
- Ferramentas de processamento analítico de dados: OLTP e OLAP, arquitetura, aplicações, demonstração e suas linguagens de consulta.
- Consultas e operações OLAP: drill-down, roll-up, drill-across, pivoting, slice-and-dice
- Técnicas de otimização de consultas analíticas: fragmentação horizontal e vertical, visão materializada e estruturas de indexação.
- Conceitos sobre data warehouses não-convencionais e data lake.
- Definição de dados espaciais e sistemas de informação geográficas: abstrações, tipos de dados espaciais e o que eles representam no mundo real.
- Importância da manipulação e análise espacial na ciência de dados.
- Instalação e configuração de extensão espacial para um Sistema Gerenciador de Banco de Dados (SGBD).
- Projeto e implementação de um banco de dados espacial utilizando um SGBD espacial.
- Representações de dados espaciais: formato textual, formato binário e tipos de arquivos.
- Operações sobre dados espaciais: numéricas, geométricas de conjunto, relacionamentos topológicos, dependentes de tipo e operações diversas.
- Consultas típicas em banco de dados espaciais.
- Métodos de acesso espacial: conceitos, implementação e desempenho.
- Aplicação de dados espaciais em ambientes para tomada de decisão: data warehouse espacial e consultas SOLAP.
- Qualidade de dados espaciais: coleta de informações, conceitos iniciais de vagueza espacial e sua representação no mundo real.
- Visão do reconhecimento de padrões e sua importância na ciência de dados.
- Modelos e métodos para aprendizagem supervisionada: árvores de decisão, modelos lineares (regressão linear e logística), Knn e support vector machine (SVM).
- Modelos e métodos para aprendizagem não supervisionada: K-means, DBScan, agrupamento hierárquico e PAM.
- Implementação de soluções algorítmicas de reconhecimento de padrões utilizando Python e/ou R.
- Visão geral de quais tipos de modelos e métodos de aprendizagem supervisionado e não supervisionado a serem aplicados para resolver problemas em ciência e dados.
- Validação de modelo: holdout, cross-validation, problemas com overfitting e underfitting.
- Matriz de confusão e medidas de desempenho: F-measure, acurácia, precisão e revocação, entre outras.
- Conceitos fundamentais sobre a importância da pesquisa científica e sua aplicabilidade na resolução de problemas.
- Tipos de revisões bibliográficas.
- Natureza da pesquisa: quantitativa e qualitativa.
- Tipos de pesquisas experimentais: survey, estudo de caso, experimento. Processo de experimentação: definição, seleção amostral, o planejamento do experimento e execução.
- Análise e interpretação dos resultados e empacotamento dos resultados.
- Interpretação de problemas da academia e indústria para resolução utilizando ciência de dados.
- O processo de seleção de temas para o trabalho de conclusão de curso - ciência de dados aplicado à: Inteligência de Negócio, Big Data e/ou dados não convencionais. O processo de seleção de orientador.
- Importância de sistemas nebulosos, estudo de novas memórias e extensibilidade de banco de dados na ciência de dados.
- Sistemas nebulosos: teoria de conjuntos fuzzy, operações sobre conjuntos fuzzy, lógica fuzzy, sistema de inferência fuzzy, métodos de fuzzificação e defuzzificação.
- Conceitos fundamentais de algoritmos avançados para lógica fuzzy: classificação fuzzy, agrupamento fuzzy e a geração automática e adequação de regras.
- Aplicação da teoria de conjuntos e lógica fuzzy em dados não convencionais: o estudo de dados espaciais fuzzy e a inferência espacial fuzzy.
- Gerenciamento de dados em memórias emergentes (flash, ReRAM, STT-RAM, entre outras): características intrínsecas, aplicações, estudos experimentais e algoritmos e estruturas de dados.
- Banco de dados extensíveis: especificação de novos tipos abstratos de dados.
- Conceitos fundamentais sobre a organização e escrita de artigo científico.
- Estrutura de um artigo científico.
- Tipos de artigos científicos: resumo, resumo expandido, artigo completo em conferência e artigo completo em periódico.
- Classificação de eventos científicos e periódicos de acordo com o Qualis-CAPES, SNIP, JCR, entre outros.
- Utilização de processadores e editores de texto na escrita de artigos (LaTeX e Word).
- Escrita de seções de um artigo: resumo, introdução, métodos e metodologia, resultados.
- Normas de escrita de artigos científicos em computação: IEEE, ACM, Springer, entre outros.
- Ética na escrita e publicação de artigos: participação de autores, plágio e autoplágio.
- Visão geral dos modelos e métodos avançados em ciência de dados.
- Redes Neurais Artificiais.
- Modelos de Aprendizagem Profunda: Deep Learning e Rede neural convolucional.
- Técnicas baseadas em Comitês: bagging e boosting.
- Florestas aleatórias (random forest).
- Inteligência de Enxame: PSO, ACO.
- Fluxo de uma solução de ciência de dados em problemas reais.
- Conceitos fundamentais sobre a organização e escrita de trabalho de conclusão de curso.
- Estrutura de uma monografia a nível de pós-graduação.
- Utilização de processadores e editores de texto na escrita de monografia (LaTeX e Word).
- Escrita de seções de uma monografia: resumo, introdução, revisão sistemática da literatura, métodos e metodologia, resultados e conclusões.
- Ética na escrita de monografia.
- Desenvolvimento do trabalho proposto.
- Técnicas para apresentação e defesa de monografia perante uma banca examinadora.
- Normas da UTFPR para elaboração de trabalhos acadêmicos.
- Utilização de métodos e modelos avançados na resolução de problemas: computação evolucionária (algoritmos genéticos e programação genética) e métodos Ensemble.
- Seleção e ajuste de modelos.
- Regularização e parametrização de modelos.
- Otimização de algoritmos para ciência de dados.
- Aprendizagem baseada em problemas.
- Resolução de problemas da indústria e academia.
- Estudo de casos aplicados à ciência de dados.
- Principais elementos, ecossistema e a arquitetura de ambientes de computação paralela e distribuído.
- Paradigma de programação MapReduce na resolução de problemas com computação paralela e distribuídos.
- Sistemas paralelos e distribuídos: Apache Hadoop e Apache Spark.
- Linguagens de programação e de consultas para ambientes Hadoop e Spark (pySpark).
- Extensões do Apache Hadoop e Apache Spark.
- Conceitos fundamentais sobre computação em nuvem: Software como Serviço (SaaS), Plataforma como um Serviço (PaaS) e Infraestrutura como Serviço (IaaS).
- Ambientes de computação em nuvem: AWS, Azure, entre outros.
- Conceitos de mineração de dados e seus diferentes pontos de vista: o ponto de vista de banco de dados, ponto de vista da inteligência artificial e o ponto de vista da estatística.
- Importância de um ambiente de data warehousing na mineração de dados.
- Utilização de workflows para ciência de dados usando um Sistema Gerenciador de Banco de Dados (SGBD) como base.
- Importância de séries temporais e regras de associação em um ambiente de inteligência de negócio.
- Séries temporais: comparação de séries temporais (DTW, correlação cruzada), implementação, predição de valores numa série temporal (ARIMA), redução de dimensionalidade para séries temporais (piecewise aggregate approximation).
- Detecção de anomalias.
- Regras de associação: conceitos, medidas, algoritmo APRIORI, implementação em um SGBD.