Universidade do Minho  

       
 
  Autenticação/Login
 
Homepage
Contactos
Mapa do Site
   
  imprimir
 


 
Plano de estudos
- Área de especialização em Computação

* S1 - 1º Semestre 
  S2 - 2º Semestre 
    A - Anual


Observações: 
- as quatro Opções de Informática 2, 3, 5 e 6 devem ser escolhidas em bloco de forma a constituírem um perfil de formação em Informática/Engenharia Informática;
- a unidade curricular Opção 1 poderá ser escolhida dentro da oferta nas áreas científicas de Matemática, Ciências da Computação ou Informática;
- a unidade curricular Opção 4 poderá ser escolhida dentro da oferta nas áreas científicas de Matemática ou Estatística;
- a unidade curricular Opção 7 poderá ser escolhida dentro da oferta em qualquer área científica (incluindo oferta de unidades curriculares doutros cursos de 2.º ciclo da UMinho, sujeita a acordo das direções de curso);
- a unidade curricular Opção 8 poderá ser escolhida dentro da oferta nas áreas científicas de Matemática, Estatística, Ciências da Computação ou Informática.

Unidades Curriculares Obrigatórias

Lógica da Programação
Temas de Álgebra
Complexidade
Projeto Integrado em Matemática e Computação
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.

Temas de Álgebra
O programa é composto por dois dos seguintes três módulos. I) Grupos Finitos: Ações, órbitas e estabilizadores; Grupos abelianos finitos; Teoremas de Sylow; Estrutura de grupos finitos. II) Teoria de matrizes: Polinómios anuladores, polinómio minimal, polinómio invariante, espaços próprios generalizados, forma canónica de Jordan; Decomposição em valores singulares; Produto de Kronecker, equações matriciais lineares; Outras formas canónicas. III) Teoria de Números Algorítmica: Logaritmo discreto e aplicações; Fatorização de inteiros e aplicações; A aplicação das curvas elípticas na criptografia.

Projeto Integrado em Matemática e Computação
A natureza do trabalho a realizar dependerá da área de estudo e interesses do aluno. Por exemplo, os alunos poderão: fazer um estudo aprofundado de um trabalho de pesquisa, complementando-o com explicações detalhadas, provas e exemplos; realizar a análise e o tratamento de um problema com origem numa área interdisciplinar; investigar e resolver um problema real proposto pela indústria ou por setores da área dos serviços.

Dissertação
Os estudantes devem realizar trabalho de investigação com vista à apresentação de uma dissertação original na área da matemática pura, da matemática aplicada ou da computação, sob orientação de um ou mais professores especialistas no tema em questão. Este trabalho pode decorrer em meio académico, no âmbito das atividades de investigação dos professores/investigadores da ECUM, ou em meio empresarial, abordando um problema e resolvendo-o através da implementação de soluções na área científica do ciclo de estudos. 

Unidades Curriculares Opcionais

Opções 1, 4, 7 e 8 (a título exemplificativo)

Algoritmos Numéricos e Computação Paralela 
Aplicações em Probabilidade e Modelação Estocástica 
Computabilidade 
Estatística Bayesiana e Aplicações 
Geometria Computacional 
Geometria das Variedades 
Introdução à Otimização 
Introdução aos Algoritmos e à Programação 
Matemática Computacional 
Matemática e Mecânica Computacional 
Métodos Numéricos para Equações de Derivadas Parciais 
Módulos e Anéis 
Sistemas Dinâmicos 
Teoria de Categorias 
Teoria de Códigos 
Tópicos de Sistemas Complexos 
Topologia 


Opções de Informática 2, 3, 5 e 6, constituindo um perfil de formação em Informática/Engenharia Informática (a título exemplificativo)


Perfil Machine Learning: Fundamentos e Aplicações
       Opções 2 e 3
            Métricas em Machine Learning
            Sistemas Baseados em Similaridade
       Opções 5 e 6
            Otimização em Machine Learning
            Classificadores e Sistemas Conexionistas

Perfil Criptografia e Segurança da Informação
       Opções 2 e 3 escolhidas no conjunto de UCs:
           Dados e Aprendizagem Automática
           Engenharia de Serviços em Rede
           Métodos Formais em Engenharia de Software
           Computação Paralela
           Aplicações e Serviços de Computação em Nuvem
           Requisitos e Arquiteturas de Software
       Opções 5 e 6 escolhidas no conjunto de UCs:
           Engenharia de Segurança
           Estruturas Criptográficas
           Tecnologias de Segurança

Perfil Métodos Formais da Programação
       Opções 2 e 3 escolhidas no conjunto de UCs:
           Dados e Aprendizagem Automática
           Engenharia de Serviços em Rede
           Métodos Formais em Engenharia de Software
           Computação Paralela
           Aplicações e Serviços de Computação em Nuvem
           Requisitos e Arquiteturas de Software
       Opções 5 e 6 escolhidas no conjunto de UCs:
           Cálculo de Sistemas de Informação
           Programação Ciber-física
           Verificação Formal

Programas resumidos Opções 1, 4, 7 e 8 

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.
Aplicações em Probabilidade e Modelação Estocástica
Aplicações em Probabilidade e Modelação Estocástica Tipos de convergência de sucessões de variáveis aleatórias. Processos estocásticos e estacionaridade; noções de autocovariância, autocorrelação e autocorrelação parcial e respetivas propriedades. Processos estacionários e processos não estacionários; ergodicidade (para algum tipo de convergência). Processo de ruído branco. Processo de Bernoulli. Passeio aleatório, simples ou com deslocamento, com ou sem barreiras absorventes. Cadeias de Markov em tempo discreto. Processos de Poisson. Movimento Browniano. Aplicações dos modelos a problemas de diversas áreas das ciências.
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 Bayesiana e Aplicações
Fundamentos de inferência Bayesiana, Teorema de Bayes. Distribuições a piori subjectivas, conjugadas e impróprias. Distribuições a posteriori e distribuição preditiva, aplicações. Inferência Bayesiana: estimação pontual e intervalar. Testes de hipóteses. Computação Bayesiana, algoritmo de Metropolis-Hasting. Aplicações diversas.
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.
Geometria das Variedades
Noção de variedade diferenciável. Fibrados tangente e cotangente. Fibrados tensoriais. Campos de vetores e formas diferenciais. Integração em variedades. Cohomologia de De Rham. Noção de grau e teorema de Poincáre-Hopf.
Introdução à Otimização
Problemas de otimização. Problemas de programação matemática. Problemas de cálculo de variações. Problemas de Lagrange. Problemas de controlo ótimo. Métodos numéricos de otimização.
Introdução aos Algoritmos e à Programação
Programa resumido: Metodologias de desenvolvimento de software. Tipos e Estruturas de Dados. Algoritmos e programação. Programação em Java.
Matemática Computacional
Estudo de software de carácter simbólico-algébrico, numérico e gráfico (por exemplo, Mathematica e Matlab ou Python). Interpolação polinomial, interpolação polinomial segmentada, splines. Integração numérica. Métodos diretos e métodos iterativos para a resolução de sistemas de equações lineares. Métodos numéricos para equações e sistemas de equações não lineares. Métodos numéricos para equações diferenciais ordinárias: problemas de valores iniciais e problemas de valores de fronteira.
Matemática e Mecânica Computacional
Métodos matemáticos da física. Elementos finitos e volumes finitos (conceitos básicos de consistência, estabilidade e convergência). Formulação fraca de EDP; formulação variacional para a equação de Poisson; teorema de Lax-Milgram; método de Galerkin. Triangulação; interpolação por elementos finitos; quadratura; aplicação à equação de Poisson. Introdução ao software FEniCS - Finite Element Computational Software (uso das linguagens Python e C++). Solução numérica da equação de Poisson e sua visualização com o software ParaView. Solução numérica da equação do calor, da equação de Poisson não linear, da equação de elasticidade linear, da equação de convecção-difusão e das equações de Navier-Stokes.
Métodos Numéricos para Equações de Derivadas Parciais
Modelos básicos: equações elíticas, parabólicas e hiperbólicas; classificação e comportamento das soluções. Fórmulas de diferenças finitas para aproximar derivadas. Conceitos fundamentais dos métodos de diferenças finitas: consistência, estabilidade, convergência; teorema de equivalência de Lax; análise de estabilidade através de matrizes e através de séries de Fourier. Equações parabólicas: métodos de diferenças finitas explícitos e implícitos; consistência, estabilidade, convergência; condições de fronteira envolvendo derivadas. Equações hiperbólicas - equações hiperbólicas unidimensionais: características, condição de Courant-Friedrichs-Lewy, esquemas explícitos e esquemas implícitos, dispersão e dissipação; estudo análogo para equações bidimensionais. Equações elíticas: condições de Dirichlet e de Neumann para a equação de Poisson; discretização por diferenças finitas; regiões irregulares, coordenadas curvilíneas; redes não retangulares; análise de convergência.
Módulos e Anéis
Módulos sobre anéis. Submódulos. Homomorfismos de módulos e Teoremas de isomorfismos. Produto direto, soma direta externa e soma direta interna de módulos. Módulos projetivos e injetivos. Anéis comutativos e módulos; Anéis Noetherianos e anéis Artinianos. Módulos e anéis simples.
Sistemas Dinâmicos
Sistemas dinâmicos de tempo contínuo, fluxos de campos vectoriais. Teoremas de existência e unicidade para equações diferenciais ordinárias. Dependência das condições iniciais. Sistemas dinâmicos em dimensão baixa. Retrato de fase. Classificação dos sistemas lineares: focos, poços e selas. Estabilidade dos equilíbrios. Funções de Lyapunov. Sistemas Hamiltonianos e sistemas gradientes. Linearização. Hiperbolicidade e teorema de Hartman-Grobman. Ciclos limite. Teorema de Poincaré-Bendixon. Estabilidade das órbitas periódicas. Aplicações do Teorema de Poincaré-Bendixon. Bifurcações. Equação de Van der Pol. Bifurcação de Hopf. Aplicações de sistemas dinâmicos não-lineares na Física, Biologia e Tecnologia (ou nas Ciências e na Tecnologia).
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.
Tópicos de Sistemas Complexos
Introdução: a iteração de quadráticas como modelo de evolução temporal; caos determinista; fractais. A dinâmica de redes aleatórias: evolução de grafos aleatórios; sistemas autocatalíticos e a origem da vida; modelos “small-world”; modelos “scale-free”. A dinâmica em redes: sistemas Booleanos; comportamento complexo em autómatos celulares elementares finitos. A emergência de complexidade: auto-organização em sistemas naturais e artificiais. Dinâmica evolutiva: sistemas complexos adaptativos; genótipos e fenótipos; fundamentos do paradigma neodarwinista. Algoritmos genéticos: interpretação dos resultados obtidos; a linguagem como sistema complexo adaptativo. Para além da modelação de sistemas complexos: co-evolução; redes de sistemas complexos adaptativos.
Topologia
Espaços métricos. Espaços topológicos. Axiomas de separação. Compacidade. Conexidade. Homotopia. Grupo fundamental.


Programas resumidos Opções de Informática 2, 3, 5 e 6

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.


Dados e Aprendizagem Automática
Dados: Dados, Informação e Conhecimento; Dados Estruturados, Não Estruturados e Híbridos. Extração de Conhecimento de Dados: Caracterização do Processo de Extração de Conhecimento; Experimentação com Ferramentas de Extração de Conhecimento; Resolução de Casos de Estudo e Aplicação Prática. Sistemas de Aprendizagem. Aprendizagem Automática: Aprendizagem Supervisionada; Aprendizagem Não-supervisionada; Aprendizagem por Reforço; Redes Neuronais; Conjunto de Modelos. Computação Natural: Computação Evolucionária; Inteligência de Enxames.

Engenharia de Serviços em Rede
Programação de Aplicações e Serviços em Rede: Paradigmas de programação em rede; Redes de conteúdos; Aplicações e redes de sensores. Serviços Multimédia: Taxonomia de aplicações e serviços; Serviços de streaming; Serviços multimédia de tempo-real. Transporte e Sinalização: Gestão de sessões: protocolos de sinalização; Suporte para tempo-real; Alternativas aos protocolos TCP e UDP. Comunicação em Grupo em Redes IP: Modelo de comunicação. Endereçamento e gestão de filiação; Multicast em ambientes densos e dispersos.

Métodos Formais em Engenharia de Software
Introdução aos métodos formais: Utilização de métodos formais nas diferentes fases do processo de desenvolvimento de software; Breve história dos métodos formais. Técnicas e ferramentas para análise de modelos estruturais: Modelação de estruturas de dados usando conjuntos e relações; Especificação de requisitos de modelos estruturais com lógica relacional; Análise automática usando ferramentas de model finding. Técnicas e ferramentas para análise de modelos comportamentais: Modelação de comportamento com máquinas de estados finitas; Modelação de sistemas ciber-físicos usando autómatos híbridos; Especificação de requisitos comportamentais com lógica temporal; Análise automática usando ferramentas de model checking explícito, simbólico e bounded. Técnicas e ferramentas para análise e verificação de programas especificados por contratos: Análise estática por interpretação abstrata; Verificação dinâmica, dedutiva e bounded. Introdução ao conceito de refinamento de dados e operações.

Computação Paralela
Análise da arquitetura de processadores genéricos, ao nível do ILP e de outras formas de paralelismo (SIMD/vetorial) e na hierarquia de memória. Análise e avaliação de sistemas de computação paralelos de memória partilhada. Programação baseada no paradigma de memória partilhada. Medição de otimização de desempenho em memória partilhada, análise do impacto da granularidade do paralelismo e estratégias de distribuição de cargas computacionais. Projeto de aplicações e análise crítica do desempenho de paralelas contendo algoritmos paralelos típicos.

Aplicações e Serviços de Computação em Nuvem
Visão geral de serviços de computação em Nuvem e das várias abstrações (IaaS, PaaS e SaaS). Escalabilidade e elasticidade de aplicações e serviços para computação em Nuvem. Virtualização para computação em Nuvem (máquinas virtuais e containers). Gestão de dados/armazenamento para computação em Nuvem (sistemas de ficheiros, object stores). Aprovisionamento, instalação e gestão de aplicações distribuídas (Infrastructure-as-a-code). Monitorização de infraestruturas e serviços de computação em Nuvem. Avaliação experimental de aplicações e serviços distribuídos.

Requisitos e Arquiteturas de Software
Requisitos: definição; requisitos funcionais; requisitos não funcionais; requisitos de utilizador; conceitos relacionados. Levantamento de requisitos: processo; identificação das partes interessadas; técnicas. Documentação de requisitos: escrita em língua natural; modelação. Risco. Padrões de concepção: padrões criacionais; padrões estruturais; padrões comportamentais; anti-padrões de concepção.


Engenharia de Segurança
Gestão de Segurança de Informação: Sistemas Gestão de Segurança de Informação [família ISO/IEC 27000]: Controlos, métricas, gestão de risco, continuidade de negócio, gestão de incidentes, evidência digital; Avaliação de segurança: níveis de conformidade (ITSEC e Common Criteria); Potencial de Ataque: Cálculo e avaliação, de acordo com a metodologia de avaliação do Common Criteria. Esquemas de identificação eletrónica: nível de conformidade eIDAS; Proteção de Dados e RGPD. Métricas de segurança para Sistemas de informação (NIST SP800-55); Trustworthy Secure Systems (NIST SP800-160). Desenvolvimento de Software Seguro: Modelação de Ameaças; Boas práticas “SafeCODE”; utilização de componentes “third-party”; “Secure Software Development LifeCycle (S-SDLC)”; Avaliação de Garantias do “Software”: princípios; “Software Assurance Maturity Model (SAMM)”; Qualidade do “Software”: cobertura de código; interpretação abstracta; complexidade; compilação; “coding standards”; Teste de Segurança: guiões e “checklists”; “Application Security Verification Standard”.

Estruturas Criptográficas
Criação de um ambiente de trabalho adequado à aprendizagem de Estruturas Criptográficas; Treino no uso desse ambiente com operações criptográficas básicas: uso de "hashs", uso de "key derivation functions", uso de cifras simétricas com escolha do modo, etc. Grupos, anéis e corpos finitos definidos sobre inteiros; Os seus problemas "difíceis": fatorização e logaritmo discreto; Aplicação às técnicas criptográficas das famílias RSA e DSA; Esquemas KEM/DEM. Anéis e corpos de polinómios; Noções básicas de Teoria dos Códigos; Aplicação aos criptosistemas das famílias NTRU e McEliece. Corpos finitos e curvas elipticas; Os esquemas DH sobre curvas elípticas, eg ECDSA; Emparelhamentos e criptografia orientada à identidade; os criptosistemas BF e BLMQ. Reticulados e criptografia pós-quântica; Os seus problemas difíceis: SVP e CVP; redução a estes problemas do NTRU e McEliece; Criptosistemas sobre reticulados; Problemas de aprendizagem (LPN e LWE), suas variantes e redução a reticulados; Redução de bases e algoritmo de Coppersmith: ataques ao RSA. Cifras simétricas; Arquitectura e modos; Funções "almost bent" e "almost perfect non-linear"; Uso da transformada Walsh-Hadamard; criptoanálise linear e diferencial; Problemas MQ ("multivariate quadratic") e a criptoanálise algébrica.

Tecnologia de Segurança
Conceitos de segurança de sistemas informáticos: propriedades de segurança, proteção e controlo de acesso, modelos de segurança (ameaça e confiança). Metodologias de testes de penetração: práticas, recursos e ferramentas. Identificação e caracterização de vulnerabilidades: sistema operativo, código-fonte, aplicações, protocolos, e Common Vulnerability Scoring System (CVSS). Execução e desenvolvimento de explorações de vulnerabilidades: coleções de explorações e Metasploit. Deteção de padrões de ataque e de anomalias; prevenção de intrusão. Desenho e operação de serviços seguros: hardening, isolamento e virtualização, virtualização de funções de rede (NFV).


Verificação Formal
Satisfazibilidade lógica e teorias de primeira ordem. Utilização de SAT solvers e de SMT solvers. Verificação Dedutiva: lógicas de programas; geração de condições de verificação; linguagens de especificação comportamental de interfaces de código e design by contract. Utilização de ferramentas de verificação dedutiva. Análise e verificação automática de programas: bounded model checking de código; interpretação abstrata; refinamento de abstrações com base em contraexemplos (CEGAR). Demonstração de Teoremas: introdução à construção interativa de provas com Coq.

Programação Ciber-física
Autómatos híbridos como modelo base para a computação ciber-física; Noção de simulação e bissimulação. Utilização deste modelo para abordar diversos aspectos da computação ciber-física. As ferramentas Uppaal e dReach; Casos de estudo. Programação ciber-física: Princípios algorítmicos e composicionalidade. Semântica operacional e denotacional da programação ciber-física. A ferramenta Lince; Casos de estudo.

Cálculo de Sistemas de Informação
Breve Introdução aos métodos formais e seu papel na programação. Uso de relações binárias na modelação abstracta de problemas; Taxonomia e álgebra das relações binárias. O lema "everything is a relation"; 'Model checking' usando a ferramenta Alloy. Uso de interpetação abstracta na modelação de problemas complexos. Cálculo relacional de propriedades grátis de funções com tipos polimórficos. Demonstração de correcção poir cálculo, usando álgebra relacional. Formalização relacional do modelo de dados 'key-value pair'. Limites da tipificação estática; Noção formal de contrato de software. Càlculo de pré-condições mais fracas. Lógica de Hoare em formato relacional.


 
  © 2024 Universidade do Minho  - Termos Legais  - actualizado por DMAT Símbolo de Acessibilidade na Web D.