21
Área Especialização Algoritmos e Programação MEIC

Área Especialização Algoritmos e Programaçãoneiist.daemon/docs/QTSM2015/AP.pdf · • Algoritmos e estruturas de dados escaláveis • Análise e identificação de propriedades

  • Upload
    ngoliem

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

Área Especialização Algoritmos e Programação

MEIC

AE Algoritmos e Programação

• Área nuclear de Eng. Informática

• Oferecer competências avançadas numa área transversal aos domínios de aplicação

• Número e diversidade de oportunidades profissionais demasiado extensa para listar

Unidades Curriculares

• 1º Semestre

– Algoritmos para Lógica Computacional

– Computação Paralela e Distribuida

– Computabilidade e Complexidade (DM)

• 2º Semestre

– Algoritmos Avançados

– Linguagens de Programação

– Redes Complexas

Algoritmos para Lógica Computacional

• Analisar e resolver problemas reais utilizando lógica

– Especificação, validação e verificação de software e hardware

– Inteligência Artificial

– Sistemas de Informação Inteligentes

• Técnicas algoritmicas para implementação de sistemas dedutivos

Computação Paralela e Distribuida

• Multiprocessadores e multicomputadores

• Modelos, técnicas e formas de programação de algoritmos paralelos

– Divisão dos problemas

– Organização dos dados

– Sincronização

– Balanceamento e escalonamento

Computabilidade e Complexidade (DM)

• Classes de Complexidade

– Hierarquia polinomial

• Identificação da classe de problemas

• Redução de problemas

Algoritmos Avançados

• Formação avançada em técnicas de desenvolvimento e análise de algoritmos– Algoritmos aleatórios; algoritmos para

processamento online e em tempo real; algoritmos de aproximação

• Estruturas de dados avançadas

• Algoritmos distribuidos com recurso a memória externa

• Exemplos de aplicações

Linguagens de Programação

• Paradigmas de Programação

– Imperativo, funcional, lógico, orientado a objectos

• Alternativas no desenho e implementação das linguagens de programação

– Compilação vs. interpretação

– Tipificação estática vs. dinâmica

– Gestão de memória manual vs. automática

– Modelos de referências vs. modelos de valores

Redes Complexas

• Algoritmos, modelos e aplicações de redes complexas– Redes sociais, redes de informação, redes biológicas,

Internet

• Algoritmos e estruturas de dados escaláveis

• Análise e identificação de propriedades em redes

• Aplicações:– Difusão de informação na internet, marketing viral,

fenómenos epidemiológicos, biologia computacional, tolerância a eventos destrutivos

EXEMPLOS DE ÁREAS DE APLICAÇÃO

Verificação de Software

• http://www.contrib.andrew.cmu.edu/~schaki/dronepp/index.html

Sobre a importância da verificação

Localização de Falhas em Software

• Exemplo de Código com Falha

triangleType(float a, float b, float c) {

if (a == b && b == c) return Equilateral;

if (a == b || b == c || c == a) return Isosceles;

return Isosceles; /* should be Scalene */

}

• Invocação de triangleType(1, 2, 3) devolve Isosceles.

Localização de Falhas em Software

• http://en.wikipedia.org/wiki/List_of_software_bugs

• http://research.microsoft.com/en-us/groups/rise/

• https://www.coverity.com/

Teste e Segurança de Software

• http://research.microsoft.com/en-us/projects/atg/

Instalação e Upgrade de Pacotes de Software

• https://packages.debian.org/sid/packup

• http://manpages.ubuntu.com/manpages/saucy/man1/packup.1.html

Geração e Correcção Automática de Exercícios

Inferência de Árvores de Filogenia

• http://www.phyloviz.net/

• http://sat.inesc-id.pt/phylo/

Identificação de Ligações Funcionais no Cérebro

Evolução de Doenças Complexas

• Previsão de evolução de doenças complexas (p.e. neurodegenerativas) com base em dados biológicos temporais

AE Algoritmos e Programação

• Guia de como preparar entrevistas para Google, Microsoft, Yahoo, entre outras:

“Cracking the Coding Interview”, Gayle Laarkmann, 5ª edição, 2011

• Questões?