DISCIPLINAS OBRIGATÓRIAS
1. METODOLOGIA DE PESQUISA I (02 créditos, 30 horas).
Ementa: Fundamentos da pesquisa; Ética e pesquisa; Tipos de conhecimentos e de pesquisas; Estilos de pesquisas em Ciência da Computação; Etapas do trabalho de pesquisa; Escolha do tema; Revisão bibliográfica; Mapeamento e revisão sistemática.
EMENTA COMPLETA.
2. METODOLOGIA DE PESQUISA II (02 créditos, 30 horas).
Ementa: Formulação do problema, hipóteses e objetivos da pesquisa, motivação e justificativa, limitações do trabalho; Procedimentos metodológicos de pesquisa; Técnicas de coleta e análise de dados de pesquisa; Níveis de exigência da pesquisa: artigos, projetos, relatórios e dissertações; Técnicas e ferramentas de suporte à escrita.
EMENTA COMPLETA.
3. PROJETO E ARQUITETURA DE SOFTWARE (04 créditos, 60 horas).
Ementa: O processo de Análise de Requisitos; Levantamento e especificação de requisitos para Arquitetura de Software; Estilos Arquiteturais; Padrões de Projetos de Software; Atributos de Qualidade; Documentação de Arquitetura.
EMENTA COMPLETA.
4. INTELIGÊNCIA COMPUTACIONAL (04 créditos, 60 horas).
Ementa: Introdução: fundamentos, filosofia e história (passado, presente e futuro); Agentes Inteligentes: agentes e ambientes, racionalidade, natureza de ambientes, estruturas e arquiteturas de agentes; Solução de Problemas via Busca: algoritmos de busca clássicos, métodos heurísticos e metaheurística; Algoritmos Genéticos; Teoria dos Jogos; Sistemas Nebulosos.
ORIENTAÇÃO EM PESQUISA I (01 crédito, 15 horas).
Ementa: Atividade obrigatória do programa que objetiva a elaboração de um texto a ser entregue para a banca examinadora, com: - Planejamento e execução da revisão bibliográfica. - Revisão da literatura sobre o tema de pesquisa.
ORIENTAÇÃO EM PESQUISA II (01 crédito, 15 horas).
Ementa: Revisão do problema, hipóteses e objetivos da pesquisa, motivação e justificativa, limitações do trabalho; Metodologia da pesquisa. Produto: Texto sobre os procedimentos metodológicos da pesquisa a ser entregue para banca examinadora.
ORIENTAÇÃO EM PESQUISA III (01 crédito, 15 horas).
Ementa: Execução da pesquisa; Resultados e conclusões preliminares. Produto: Texto a ser entregue para banca examinadora
ORIENTAÇÃO EM PESQUISA IV (01 crédito, 15 horas).
Ementa: Resultados e conclusões finais; Escrita e submissão de artigos; Produtos: texto a ser entregue para banca examinadora e Artigos.
ATIVIDADE COMPLEMENTAR (04 créditos, 60 horas).
Ementa: Realização de atividades extracurriculares para complementar a formação do discente de mestrado, tais como: estágio em docência, estágio em instituição, estágio em laboratório, apresentação em eventos, publicação de artigos, aplicação da pesquisa em instituição, etc.
DISCIPLINAS OPTATIVAS
5. PROGRAMAÇÃO WEB (04 créditos, 60 horas).
Ementa: Revisão das noções fundamentais de programação WEB para desenvolvimento de frontend: HTML, CSS e Javascript; Revisão das noções fundamentais de programação WEB para desenvolvimento de backend: servidores e as suas tecnologias; Paradigmas de comunicação cliente-servidor; Modos conectados (sessão, token, OAUth2); Bases da segurança WEB; Frameworks para SPA e PWA e Introdução a Angular; Acessibilidade na WEB.
6. INTERAÇÃO HUMANO-COMPUTADOR, USABILIDADE E USER EXPERIENCE (04 créditos, 60 horas).
Ementa: Fatores Humanos e Ergonomia em Software Interativo: teoria, princípios e regras. Usabilidade: definição e métodos para avaliação. Paradigmas De design de Sistemas e Interfaces: Concepção Participativa e User Centered Design. Desenvolvimento de Interfaces Gráficas: padrões de desenvolvimento de interface.
7. DATA MINING (04 créditos, 60 horas).
Ementa: Introdução e aplicações de mineração de dados, Processo de descoberta de conhecimento em bases de dados, Pré-processamento de dados, Extração de regras de associação e padrões de sequência, Classificação e regressão.
8. SISTEMAS BASEADOS EM CONHECIMENTO (04 créditos, 60 horas).
Ementa: Introdução a sistemas baseados em conhecimento. Técnicas de representação do conhecimento. Sistemas Especialistas. Raciocínio Baseado em Casos. Estudos de casos.
9. VISÃO COMPUTACIONAL (04 créditos, 60 horas).
Ementa: Conceitos de representação de imagens. Conceitos gerais de reconhecimento de padrões. Técnicas de convolução. Métodos de reconhecimento de objetos baseados em modelos. Técnicas de construção de sistemas de visão computacional baseados em IA.
10. FUNDAMENTOS DE APRENDIZAGEM DE MÁQUINA (04 créditos, 60 horas).
Ementa: Introdução ao aprendizado de máquina: conceitos básicos, definições e aplicações. Tipos de aprendizado de máquina: supervisionado, não supervisionado e por reforço. Pré-processamento de dados e técnicas de engenharia de atributos. Modelos clássicos de aprendizado de máquina: regressão linear e logística, árvores de decisão, máquinas de vetor de suporte (SVM), K-vizinhos mais próximos (KNN) e Naïve Bayes. Redes neurais artificiais e introdução ao deep learning. Avaliação de modelos: métricas de desempenho e validação cruzada. Algoritmos de otimização e ajuste de hiperparâmetros. Algoritmos de redução de dimensionalidade, análise de componentes principais. Implementação de modelos utilizando bibliotecas como Scikit-Learn e Keras;Tensor Flow. Aplicações práticas em problemas reais com datasets públicos, como reconhecimento de padrões, processamento de linguagem natural e visão computacional. Tendências e desafios do aprendizado de máquina na computação aplicada.
11. APRENDIZADO DE MÁQUINA APLICADO (04 créditos, 60 horas).
Ementa: Introdução ao Aprendizado de Máquina; Modelos Lineares para Regressão; Modelos Lineares para Classificação; Seleção de Modelos; Pré-processamento de dados; Aspectos práticos e técnicos para aplicação de Aprendizado de Máquina.
12. INTRODUÇÃO À COMPUTAÇÃO PARALELA E DISTRIBUÍDA (04 créditos, 60 horas).
Ementa: Conceitos básicos da Computação Paralela e Distribuída; tipos de arquiteturas paralelas (SIMD, MIMD, etc.); processamento vetorial e matricial; memória compartilhada versus memória distribuída; metodologia de projeto de algoritmos paralelos e distribuídos; padrões de programação paralela e tipos de paralelismo; paradigmas de programação paralela (Pthreads, OpenMP, MPI, CUDA); algoritmos de ordenação, busca e processamento de dados paralelos; exclusão mútua e sincronização na programação paralela; estudos de caso e projetos práticos em ambientes paralelos e distribuídos; análise de desempenho e otimização de código; Ferramentas e aplicativos (mapReduce, Spark, etc.); tendências e futuro (Novas tecnologias e tendências em computação paralela e distribuída, Computação Quântica, etc).
13. INTRODUÇÃO ÀS REDES NEURAIS ARTIFICIAIS (04 créditos, 60 horas).
Ementa: Conceitos básicos de aprendizado de máquina. Classificação: Regressão logística e Redes Neurais Artificiais com camadas escondidas. Detecção de anomalias: Autoencoders. Previsão: Redes Neurais Recorrentes. Clusterização: Redes de Kohonen.
14. CIÊNCIA DE DADOS (04 créditos, 60 horas).
Ementa: Conceitos básicos de Ciência de Dados. Programação para Ciência de Dados. Tratamento e análise de dados. Visualização de dados. Técnicas avançadas de análise de dados.
ALGORITMOS E ESTRUTURAS DE DADOS (04 créditos, 60 horas).
Ementa: Introdução ao conceito de algoritmo: notação; tipos de dados e operações primitivas. Estruturas de controle do fluxo de informação. Funções e procedimentos. Recursividade. Implementação de algoritmos. Introdução à análise de algoritmos. Complexidade computacional. Estruturas de dados: listas, pilhas, filas, hashing, árvores. Algoritmos de ordenação. Algoritmos de busca.
ANÁLISE E PROJETO DE SISTEMAS (04 créditos, 60 horas).
Ementa: Métodos, técnicas e ferramentas de análise e projeto de sistemas Modelagem orientada a objetos para análise e projeto de sistemas Padrões e Antipadrões de software; Descrição e discussão dos 23 padrões do GoF (Criacionais, Estruturas e Comportamentais).
ENGENHARIA DE REQUISITOS DE SOFTWARE (04 créditos, 60 horas).
Ementa: Requisitos de Software: Conceitos; Análise de Requisitos; Técnicas de Levantamento de Requisitos; Especificação de Requisitos; Modelagem dos Requisitos do Software; Modelagem de Dados; Processos de Gerência de Requisitos; Histórias de Usuários em Extreme Programming e O uso do método Design Thinking.
ENGENHARIA DE SOFTWARE (04 créditos, 60 horas).
Ementa: Conceitos fundamentais da Engenharia de Software. Crise do Software. Ciclo de vida do Software. Processos de Software. Gerenciamento de projeto de Software. Análise e especificação de requisitos. Análise e projeto de Software. Gerenciamento de versões e configurações. Verificação e validação. Manutenção.
ESTUDO DIRIGIDO (04 créditos, 60 horas).
Ementa: A ementa será conforme a oferta da disciplina vinculada ao estudo dirigido.
FUNDAMENTOS DA COMPUTAÇÃO (04 créditos, 60 horas).
Ementa: Formalismos para descrição de linguagens: gramáticas e autômatos. Linguagens regulares, linguagens livres de contexto, linguagens enumeráveis recursivamente, sensíveis ao contexto. Máquinas Universais. Máquinas de Turing. Computabilidade. Análise assintótica. Técnicas de projeto de algoritmos. Classes de problemas: P, NP, NP-difícil e NP-completo.
GESTÃO DE SOFTWARE (04 créditos, 60 horas).
Ementa: Estudo de viabilidade; Métricas; Estimativas; Gestão de Riscos; Técnicas para determinação do cronograma do projeto; Planejamento de Projeto; Aspectos humanos; Gestão de Pessoas e Recursos; Mecanismos de rastreamento e controle Trabalho em Equipe e Gestão ágil de projetos.
IDENTIFICAÇÃO DE SISTEMAS (04 créditos, 60 horas).
Ementa: Noções de regressão linear; interpolação e extrapolação Estimação de mínimos quadrados; algoritmos práticos, PLS e PCA. Modelagem de sinais; noções sobre séries ortogonais e wavelets. Modelos dinâmicos – modelagem física e modelagem estocástica Identificação de modelos AR, ARX e ARMAX; estimadores não polarizados; Considerações práticas em projetos de identificação dinâmica; Estimação recursiva; Modelos dinâmicos não-lineares; introdução a estruturas polinomiais e redes neurais.
PROGRAMAÇÃO DE COMPUTADORES (04 créditos, 60 horas).
Ementa: Paradigmas de programação orientada a objetos. Desenvolvimento de programas utilizando uma linguagem orientada a objetos. Introdução ao desenvolvimento de Interfaces gráficas. Interação com banco de dados.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS (04 créditos, 60 horas).
Ementa: Visão geral das tecnologias móveis e sem fio. APIs de programação para dispositivos móveis e sem fio; Utilização de uma plataforma de programação para dispositivos móveis; Integração entre dispositivos móveis e a Internet; Persistência de dados.
PROGRAMAÇÃO PARALELA (04 créditos, 60 horas).
Ementa: Programação paralelas: conceitos, comandos e algoritmos. Estudo de uma linguagem para programação paralela. Aplicações de técnicas de programação em Engenharia, como o uso de solvers paralelos em sistemas de equações densos e esparsos provenientes dessa área.
PROGRAMAÇÃO WEB (04 créditos, 60 horas).
Ementa: Programação para a web com Servlets, JSP e JSF. Desenvolvimento de sistemas orientados a objetos segundo o padrão MVC (Model-View-Controller). Persistência de dados.
PROJETO E IMPLEMENTAÇÃO DE BANCO DE DADOS (04 créditos, 60 horas).
Ementa: Modelagem de Dados e SQL. Engenharia Reversa e Normalização. Projeto para Banco de Dados Relacionais utilizando Ferramentas CASE. SQL Avançada: Subquerys, Funções de Agregação, Cláusula CASE, Views, Stored Procedures, Triggers. Recuperação de Falhas em SGBD. Banco de Dados Distribuídos. Processamento e Otimização de Consultas. Controle de Concorrências.
QUALIDADE E MELHORIA DE PROCESSO DE SOFTWARE (04 créditos, 60 horas).
Ementa: PROCESSOS: Conceitos de processo de desenvolvimento de software: fases, fluxos de trabalho, iterações e incrementos, papéis, artefatos e atividades; Conceitos e aplicação dos principais processos de software: Cascata, Prototipação, Evolucionário, Iterativo e Incremental;
Processo Unificado; Métodos Ágeis: XP, Scrum, Lean Software Development, Crystal Clear;Modelagem e Execução de Processos de Software;Tecnologia do Processo de Software;Definição do Processo de Software.
QUALIDADE: O que é Qualidade de Software, Qualidade de Produto de Software, Qualidade de Processo de Software, Conceitos Básicos (Características de Qualidade, Erro, Falha, Defeito), Normas e Organismos Normativos. Qualidade do Processo de Software: Normas ISO 9000, ISO/IEC 12207, ISO/IEC 15504, CMMI, MPS.BR. Qualidade do Produto de Software: Modelo de Qualidade de Produto, Medindo a Qualidade de Produtos de Software, As Normas ISO/IEC 9126 e 14598, ISO/IEC 25000. MPS: Modelo IDEAL; Modelagem de processos visando Melhoria de maturidade em organizações; Modelagem de processo de desenvolvimento integrado considerando modelos de Maturidade.
SISTEMAS BASEADOS EM CONHECIMENTO (04 créditos, 60 horas).
Ementa: Introdução a sistemas baseados em conhecimento. Engenharia e elicitação do conhecimento. Técnicas de representação do conhecimento. Sistemas Especialistas. Raciocínio Baseado em Casos. Outras abordagens. Estudos de casos.
SISTEMAS COLABORATIVOS E CSCW (04 créditos, 60 horas).
Ementa: Fundamentos sobre Sistemas Colaborativos (Groupware, CSCW, teorias e modelos de colaboração).
Desenvolvimento de sistemas colaborativos. Aplicação de Sistemas Colaborativos em ambientes organizacionais (sociedade, empresas, escolas, etc). Sistemas colaborativos aplicados ao desenvolvimento de software. Avaliação de sistemas colaborativos. Desenvolvimento Distribuído de Software. Abordagens para a Engenharia de Software Colaborativa: Estudos Empíricos, Ferramentas e Metodologias.
SISTEMAS OPERACIONAIS, ARQUITETURA E REDES DE COMPUTADORES (04 créditos, 60 horas).
Ementa: Revisão dos conceitos essenciais de arquitetura de computadores, como barramentos, memória interna e externa, dispositivos de entrada e saída, UCP, ULA, arquiteturas RISC e CISC, endereçamento, conjunto de instruções e arquiteteturas paralelas. Revisão dos conceitos essenciais de sistemas operacionais, como processos, gerenciamento de memória e entrada e saída, sistemas de arquivos. Revisão dos conceitos essenciais de redes, como o modelo OSI, modelo TCP/IP e detalhes de cada uma das camadas de ambos os modelos, com ênfase em protocolos de cada uma das camadas, além de endereçamento lógico IPv4 e IPv6.
SISTEMAS OPERACIONAIS EMBARCADOS (04 créditos, 60 horas).
Ementa: Sistemas Operacionais de Tempo Real; Sistemas Operacionais Embarcados: projeto e implementação; Escalonamento; Atividades de laboratório.
TESTES DE SOFTWARE (04 créditos, 60 horas).
Ementa: Gerenciamento do processo de testes; Registro e acompanhamento de problemas. Testes de software; Princípios e técnicas de testes de software: teste de unidade; teste de integração; teste de regressão. Desenvolvimento orientado a testes; automação dos testes; geração de casos de teste. Teste de interfaces humanas; teste de aplicações para a WEB; testes alfa, beta e de aceitação; ferramentas de testes; planos de testes e Estudos de Casos; Ciclo de Vida de Testes: Planejamento, Especificação, Execução e Reporte.
TÓPICOS EM COMPUTAÇÃO APLICADA (04 créditos, 60 horas).
Ementa: Disciplina de ementa livre na qual o aluno realiza um trabalho de pesquisa individual sob a supervisão do professor orientador, efetuando um estudo teórico ou teórico-prático de abrangência e/ou na área da sua dissertação de mestrado.
TÓPICOS ESPECIAIS EM SISTEMAS OPERACIONAIS (04 créditos, 60 horas).
Ementa: Estado da arte de sistemas operacionais, com ênfase nos sistemas operacionais que lidam com os detalhes dos processadores modernos, como os mais diversos aspectos de paralelismo, incluindo o acesso aos distintos níveis de cache. Detalhes do funcionamento de sistemas operacionais para sistemas distribuídos, com ênfase no modelo cliente servidor, incluindo simulação com sistemas operacionais paralelos.