Departamento de Informática (UM)

Página de Unidade Curricular 🇬🇧

DesignaçãoCódigoCursoRegimeRegente

Laboratórios de Programação I

17039 [8501R4]

Licenciatura em Ciências da Computação [CCOM]

S1

Hugo José Pereira Pacheco

Objetivos

Os conteúdos programáticos incluídos nesta UC incluem os passos típicos do desenvolvimento de software. Cada um dos conteúdos aborda uma parte especifica de desenvolvimento de software e está diretamente relacionado com cada um dos objetivos de aprendizagem. A apresentação dos conteúdos será ainda apoiada por ferramentas de software que implementam os conceitos apresentados e que os alunos terão de utilizar no desenvolvimento de um projeto prático.

Programa

1. Introdução ao sistema de ficheiros e utilização da shell do Unix.
2. Utilização de ferramentas para interpretar e compilar programas Haskell e para gerir as bibliotecas instaladas.
3. Utilização de sistemas de controlo de versões (Git e GitLab).
4. Documentação de código Haskell usando Haddock.
5. Técnicas de teste unitário. Utilização do HUnit.
6. Programação gráfica em Haskell usando a biblioteca Gloss.
7. Aplicação das técnicas e ferramentas anteriores no desenvolvimento em grupo de um projeto de software de média dimensão.

Bibliografia


Fundamentos da Computação, Livro II: Programação Funcional. José Manuel Valença e José Bernardo Barros. Universidade Aberta, 1999.

Introduction to Functional Programming using Haskell. Richard Bird. Prentice-Hall, 1998.

Haskell: the Craft of Functional Programming (3rd ed.). Thompson, S. Addison-Wesley. 2011.

Programming in Haskell (2nd ed.). Hutton, G. Cambridge University Press, 2016.

The Linux Command Line. William Shotts. https://linuxcommand.org/tlcl.php.

Resultados da aprendizagem

- Utilizar a linguagem de programação Haskell para desenvolver um projeto de software de média dimensão.
- Utilizar um sistema de controlo de versões para facilitar o desenvolvimento cooperativo de um projeto de software.
- Utilizar as ferramentas de um sistema operativo tipo Unix e editores de texto avançados para agilizar o desenvolvimento de um projeto de software.
- Aplicar técnicas de teste unitário para validar o código desenvolvido num projeto de software.
- Documentar adequadamente o código desenvolvido num projeto de software.

Método de avaliação

A avaliação baseia-se num projeto de software desenvolvido em grupo ao longo do semestre. A avaliação do projeto considera componentes explícitos para os diversos resultados de aprendizagem, assim como a prestação e o desempenho individual dos alunos ao longo do semestre. A avaliação individual é complementada com mini-testes realizados durante as aulas. O projeto tem o peso de 60% na avaliação e os testes individuais 40%.


Funcionamento

Turno: PL 1; Docente: Xavier Gomes Pinho; Dep.: DI; Horas: 30.
Turno: PL 2; Docente: Olga Maria Gomes Martins Pacheco; Dep.: DI; Horas: 30.
Turno: PL 3; Docente: Hugo José Pereira Pacheco; Dep.: DI; Horas: 30.

[ Outras UCs do Departamento ]