Plano de estudos - Matemática e Ciências da Computação
* S1 - 1º Semestre
S2 - 2º Semestre
A - Anual
Observações:
- as quatro Opções de Informática devem ser escolhidas em bloco de forma a constituírem um Perfil de Especialização, os quais fazem parte do leque de Perfis de Especialização oferecidos pelo Departamento de Informática no âmbito dos Mestrados de Informática e de Engenharia Informática;
- uma das unidades curriculares do elenco da Opção 1, Opção 2 ou Opção 3 poderá, de acordo com o diretor de curso, ser escolhida entre todas as unidades curriculares de um curso de 1.º ou 2.º ciclo da UMinho.
Unidades Curriculares Obrigatórias
Lógica da Programação
Teoria de Números Computacional
Complexidade
Projeto Integrado
Estágio/Dissertação
Programas resumidos
Complexidade
Classes P, NP, PSPACE, LOG e NLOG. Reduções e problemas completos. Classes de complexidade para computação paralela. Classes de complexidade para computação probabilística. Problemas demonstravelmente intratáveis.
Lógica da Programação
Lógica construtiva. Lambda-calculus com tipos simples. Princípio proposições-como-tipos. Tipos dependentes. Polimorfismo. Cálculo das Construções. Tipos indutivos. Introdução aos sistemas de demonstração assistida.
Teoria de Números Computacional
Aspectos da teoria dos números sobre os quais assentam as técnicas criptográficas modernas; elementos da teoria dos números, congruências, estruturas algébricas finitas, teoria dos números algébricos. Problemas difíceis que servem como base ao estabelecimento de níveis mínimos de segurança e definição de tamanhos de chaves criptográficas: factorização, logaritmo discreto e outros. Curvas Elípticas.
Projeto Integrado
Esta UC insere-se na área científica das Ciências da Computação.
Com esta UC pretende-se que os alunos adquiram competências no desenvolvimento de projetos com alguma dimensão, planeamento de projetos e trabalho em equipa.
Estágio/Dissertação
No caso de estágio, os estudantes devem realizar trabalho sobre problemas relevantes para o mercado de trabalho e alinhados com os objetivos do curso, sempre que possível em contexto empresarial, sob orientação de especialistas da universidade e das empresas.
No caso de dissertação, os estudantes devem realizar trabalho de investigação com vista à apresentação de uma dissertação original na área da matemática e computação sob orientação de um ou mais professores especialistas no tema em questão.
Unidades Curriculares Opcionais
Opções 1, 2, 3 e 4 (a título exemplificativo)
Álgebra Linear Numérica
Algoritmos Numéricos e Computação Paralela
Complementos de Análise Complexa
Complementos de Análise Numérica
Computabilidade
Estatística Computacional
Introdução aos Algoritmos e à Programação
Geometria Computacional
Métodos Numéricos para Equações Diferenciais
Processamento de Sinal e Ôndulas
Semigrupos, Autómatos e Linguagens
Sistemas Matemáticos Computacionais
Teoria da Aproximação
Teoria de Categorias
Teoria de Códigos
Teoria de Grafos Computacional
Opções de Informática 1, 2, 3 e 4, constituindo um Perfil de Especialização em Informática/Engenharia Informática (a título exemplificativo)
Ciência de Dados
Aprendizagem Automática I
Aprendizagem Automática II
Gestão de Grandes Conjuntos de Dados
Computação Avançada
Criptografia e Segurança da Informação
Tecnologia Criptográfica
Tecnologia da Segurança
Estruturas Criptográficas
Engenharia de Segurança
Machine Learning: Fundamentos e Aplicações
Métricas em Machine Learning
Sistemas Baseados em Similaridade
Otimização em Machine Learning
Classificadores e Sistemas Conexionistas
Métodos Formais em Engenharia de Software
Especificação e Modelação
Cálculo de Sistemas de Informação
Arquitectura e Cálculo
Verificação Formal
Programas resumidos Álgebra Linear NuméricaSistemas de equações lineares: factorizações LU, Cholesky, QR e SVD; métodos iterativos; método dos gradientes conjugados; pré-condicionamento; sistemas sobredeterminados e mínimos quadrados. Valores e vectores próprios: métodos da potência e potência inversa; método QR; método de Lanczos. Valores singulares (decomposição).
Algoritmos Numéricos e Computação Paralela Noções básicas da computação paralela. Sistemas de memória distribuída e sistemas de memória partilhada. O modelo ?message-passing?. Algoritmos paralelos para a multiplicação de matrizes e decomposições LU, de Cholesky e QR. Métodos paralelos da bissecção, de Jacobi, QR e de Lanczos para o cálculo de valores próprios de matrizes simétricas. Apresentação das ?packages? BLAS, LAPACK, SCALAPACK e ARPACK.
Complementos de Análise Complexa Transformações conformes: transformações de M?obius e transformações de Schwarz-Christoffel; aplicações a problemas de condução de calor, electroestática e mecânica de fluidos; utilização de packages de transformação conforme numérica. Funções harmónicas e aplicação à dinâmica de fluidos.
Complementos de Análise Numérica Interpolação de Hermite e funções spline. Polinómios ortogonais. Quadratura Gaussiana. Aproximação uniforme e de mínimos quadrados. Equações diferenciais ordinárias: problemas de valores de fronteira (introdução ao estudo de métodos de diferenças finitas e de elementos finitos).
Computabilidade Máquinas de Turing e funções computáveis. Funções parciais recursivas. Tese de Church. Decidibilidade e semi-decidibilidade. Conjuntos recursivos e conjuntos recursivamente enumeráveis
Estatística Computacional Introdução: Definições, exemplos de simulação, terminologia e metodologias. Validação de modelos de simulação. Método de Monte Carlo: Geração de variáveis aleatórias discretas e contínuas por transformação de números aleatórios. Aplicação a distribuições específicas. Método de Monte Carlo em Inferência Estatística. Técnicas de redução de variância. O bootstrap computacional. Métodos de Monte Carlo via Cadeias de Markov (MCMC): Conceitos básicos de cadeias de Markov e de Inferência Bayesiana. Amostragem de Gibbs, Algoritmo de Metropolis, Algoritmo de Metropolis-Hastings. Diagnósticos de convergência. Filas de espera de tipo markoviano e relacionadas. Ordenação estocástica: aplicações a filas de espera. Redes de Jackson e redes de Whittle.
Geometria Computacional Problema da intersecção de segmentos de recta. Plane sweep algoritmos. Triangulação de polígonos. Teorema da galeria de arte. Algoritmos de Programação Linear. Pesquisa ortogonal. Localização de pontos. Diagramas de Voronoi. Arranjamentos de linhas. Triangulações de Delaunay. Estruturas geometricas de dados.
Métodos Numéricos para Equações Diferenciais Equações diferenciais ordinárias: problemas de valores iniciais e problemas de valores de fronteira. Equações de derivadas parciais: métodos de diferenças finitas; consistência, estabilidade e convergência.
Processamento de Sinal e Ôndulas Sinais digitais e sistemas digitais. Transformada Z e transformada de Fourier. Transformadas discretas (DFT, FFT). Filtros digitais (filtros FIR, bancos de filtros QMF). Análise de multi-resolução e ôndulas ortogonais (estudo detalhado da AMR de Haar como modelo elementar); ôndulas de suporte compacto de Daubechies; transformadas rápidas com ôndulas, sua ligação com bancos de filtros e aplicações em processamento de sinal e imagem (supressão de ruído, compressão de imagem).
Semigrupos, Autómatos e Linguagens Semigrupos. Homomorfismos de semigrupos. Relações de Green sobre um semigrupo. Linguagens sobre um alfabeto. Autómatos. Reconhecimento de linguagens por autómatos e por semigrupos. Teorema de Kleene. Variedades de semigrupos. Pseudovariedades de semigrupos. Variedades de linguagens. Teorema de Eilenberg.
Sistemas Matemáticos Computacionais Estudo de algum software de carácter simbólico-algébrico, numérico, gráfico e estatístico (por exemplo Mathematica, MATLAB e R). Utilização deste software na resolução de diversos problemas da área da Matemática Computacional, por exemplo, álgebra Linear Numérica, Equações Diferenciais e Estatística.
Teoria da Aproximação O problema da melhor aproximação num espaço vectorial normado. Condições de existência e unicidade de melhor aproximação. Aproximações polinomiais de funções contínuas. Teorema de Weierstrass. Teorema do resto de Peano e algumas aplicações. Aproximação de funções periódicas. Séries de Fourier e sua convergência.
Teoria de Categorias Categorias, functores e transformações naturais. Diagramas. Dualidade. Construções de novas categorias a partir de categorias dadas. Construções universais, limites e colimites. Functores adjuntos. Aplicações da Teoria de Categorias.
Teoria de Códigos Introdução ao Problema Principal da Teoria de Códigos. Limites nos códigos. Códigos lineares. Códigos cíclicos. Códigos de Hadamard e Reed-Muller. Códigos de convolução.
[^]
Teoria de Grafos Computacional
Definições e propriedades dos grafos. árvores geradoras, árvores geradoras minimais e caminhos mais curtos. O Problema do carteiro chinês e do caixeiro viajante. O caminho mais curto numa rede. Coloração de grafos.
Ciência de Dados
Aprendizagem Automática I
Revisões de Álgebra Linear, Probabilidades e Estatística. Aprendizagem Estatística. Regressão Linear. Classificação. Métodos de Reamostragem. Selecção de Modelos e Regularização. Aprendizagem Não-estatística.
Aprendizagem Automática II
Redes neuronais. Deep Learning. Aprendizagem não-supervisionada. Detecção de anomalias. Sistemas de recomendação.
Gestão de Grandes Conjuntos de Dados
Sistemas de armazenamento. Ferramentas de processamento analítico. Optimização e escalabilidade. Segurança e Privacidade. Interfaces com o utilizador.
Computação Avançada
Arquitecturas de sistemas de elevado desempenho. Conceitos de computação paralela. Avaliação de desempenho de aplicações paralelas. Conceitos e desafios de sistemas de elevado débito. Técnicas de computação de elevado desempenho e débito para aplicações de ciência dos dados. Conceitos de computação quântica. Algoritmos quânticos para mineração de dados e aprendizagem automática.
Machine Learning: Fundamentos e Aplicações
Métricas em Machine Learning
Conceitos sobre métricas e teoria da informação. Métodos lineares e não lineares de redução de dimensão. Árvores e florestas de decisão. Métodos de construção e de análise de clusters.
Sistemas Baseados em Similaridade
Sistemas de Aprendizagem e Computação Natural: aprendizagem baseada em sistemas de cálculo de similaridade; resolução de problemas por sistemas baseados em similaridades. Aplicações e metodologias de Machine Learning: raciocínio baseado em casos (RBC); segmentação; árvores de decisão.
Otimização em Machine Learning
Elementos de cálculo diferencial. Otimização sem restrições. Otimização com restrições. Máquina de vetores de suporte (SVM) lineares e não lineares. Redes neuronais de tipo feed-forward.
Classificadores e Sistemas Conexionistas
Sistemas de Aprendizagem e Computação Natural: aprendizagem baseada em sistemas conexionistas; desenvolvimento de sistemas de classificação e regressão. Aplicações e metodologias de Machine Learning: redes neuronais artificiais; aprendizagem por reforço; máquinas de vetores de suporte.