| Designação | Código | Curso | Regime | Regente |
|---|
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. |