Programação
(en: Programming)
Professor: Pedro Alexandre S. C. R. Pereira
Ano:
1
Semestre:
1
ECTS: 6
Objectivos
Os estudantes que terminam com sucesso esta unidade curricular serão capazes de:
- Demonstrar o conhecimento sobre as construções elementares de uma linguagem de programação multiparadigma e com tipificação estática.
- Construir pequenos programas que resolvam problemas simples descritos em linguagem natural.
- Escrever, testar, depurar e corrigir pequenos programas.
- Produzir documentação técnica onde se justificam as decisões tomadas nos programas construídos.
- Utilizar eficazmente ferramentas para desenvolver programas e para elaborar relatórios.
Programa
- Valores, tipos e variáveis; Mutabilidade e imutabilidade; Expressões; Entrada/Saída de dados; Decisão binária e decisão múltipla; Funções; Ativação de funções e passagem de parâmetros; Funções como parâmetros; Expressões lambda.
- Construções de controlo de execução no estilo imperativo e no estilo funcional; Recursão e co-recursão.
- Coleções de dados; Operações sobre coleções: filter, map e fold; Algoritmos elementares sobre coleções.
- Tipos primitivos e definição de tipos; Composição de dados homogénea (coleções); Composição de dados heterogênea (objetos).
Resultados
Esta unidade curricular representa para a maioria dos alunos um primeiro contacto com a programação, que se pretende motivador sem descurar o formalismo e o rigor, sendo a base da formação de software do curso. São introduzidos conceitos e vocabulário fundamental da programação imperativa e funcional.
A coerência entre os conteúdos programáticos e os objetivos da unidade curricular é a seguinte:
- Os objetivos 1, 2 e 3 são alcançados através dos itens I até IV do conteúdo programático.
- O desenvolvimento de programas durante as sessões práticas permite atingir os objetivos 4 e 5.
Bibliografia
“Kotlin Apprentice: Beginning Programming with Kotlin” by I. Galata; J. Howard; D. Lucas and E Shapiro. Released in 2018. Publisher(s): Razeware LLC. ISBN-13: 978-1942878506; ISBN-10: 1942878508.