Disciplina Curricular

Linguagens de Programação LPro

Mestrado Bolonha em Engenharia Informática e de Computadores - Alameda - MEIC-A 2021

Contextos

Grupo: MEIC-A 2021 > 2º Ciclo > Area Principal > Agrupamentos > Algoritmos e Aplicações

Período:

Peso

6.0 (para cálculo da média)

Objectivos

Compreender conceitos fundamentais em linguagens de programação. Adquirir e utilizar ferramentas para estudar rigorosamente programas de computador e para resolver problemas que envolvem linguagens de programação. Utilizar assistentes de prova interactivos. Desenhar e modelar linguagens de programação simples. Provar formalmente propriedades de programas e de linguagens de programação.

Programa

Breve história das linguagens de programação. Estudo de um assistente de prova (e.g. Coq): programação funcional, tipos de dados estruturados, polimorfismo, funções de ordem superior, provas (por simplificação, reescrita, análise de casos, indução). Sintaxe de uma linguagem de programação: árvores sintácticas abstractas, variáveis, bindings, scopes. Semântica de uma linguagem de programação: semântica operacional, semântica via interpretadores, avaliação computacional vs relacional, semântica axiomática e lógica de Hoare, semântica operacional small-step. Tipos, Cálculo Lambda simplesmente tipado, tipagem e subtyping.

Metodologia de avaliação

Projecto (50%) + Exame (50%)

Componente de Competências Transversais

A avaliação inclui um projecto em grupo com apresentação pública, em que os alunos desenvolvem pensamento crítico, estratégias de resolução de problemas e criatividade; competências intrapessoais, como proactividade, espírito de iniciativa, produtividade e gestão do tempo; competências interpessoais, como trabalho de equipa, comunicação oral e liderança; e literacia dos media, como resultado da utilização de ambientes de desenvolvimento, de assistentes de prova, e da criação de apresentações por meios digitais. Finalmente, as regras da disciplina criam competências de cidadania global, nomeadamente deontologia profissional e ética. Estas competências são avaliadas fundamentalmente na realização do projectos, que constitui 50% da avaliação.

Componente Laboratorial

Implementação de conceitos fundamentais de linguagens de programação, utilizando um assistente de prova (e.g. Coq). Apoio durante a realização dos projectos. Apresentação pública dos projectos realizados e sua discussão.

Componente de Programação e Computação

No curso onde esta UC é oferecida estão asseguradas as componentes de Computação e Programação de acordo com o MEPP 2122.

Princípios Éticos

Todos os membros de um grupo são responsáveis pelo trabalho do grupo. Em qualquer avaliação, todo aluno deve divulgar honestamente qualquer ajuda recebida e fontes usadas. Numa avaliação oral, todo aluno deverá ser capaz de apresentar e responder a perguntas sobre toda a avaliação.

Disciplinas Execução