Disciplina Curricular
Linguagens de Programação LPro
Mestrado Bolonha em Engenharia Informática e de Computadores - Taguspark - MEIC-T 2021
Contextos
Grupo: MEIC-T 2021 > 2º Ciclo > Área Principal > Agrupamentos > Algoritmos e Aplicações
Período:
Peso
6.0 (para cálculo da média)
Pré-requisitos
Experiência de programação
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.