1. Dotar os estudantes de prática experimental autónoma na utilização de ferramentas de desenvolvimento de software adequadas à metodologia a usar e que permitam o acompanhamento do desenvolvimento de programas durante o seu ciclo de vida, incluindo a depuração, teste e documentação.
2. Desenvolver a capacidade de criar soluções algorítmicas para problemas de pequena e média escala.
1. Técnicas e ferramentas de apoio à programação:
1.1 Ambiente de desenvolvimento integrado (IDE).
1.2 Utilização de ferramentas para impor normas de estilo e boas práticas de programação.
1.3 Utilização de sistemas de controle de versões para trabalho em grupo.
1.4 Escrita de documentação técnica.
1.5 Testes unitários.
1.6 Depuração de programas.
2. Programação de algoritmos para resolução de problemas:
2.1 Ficheiros;
2.2 Estruturas de dados;
2.3 Utilização de módulos da linguagem Python;
2.4 Prática de algoritmos recursivos sobre estruturas;
2.5 Utilização de algoritmos de pesquisa e de ordenação;
2.6 Aplicação de métodos numéricos.
O formato laboratorial da unidade curricular traduz-se na implementação de uma metodologia orientada a problemas. Os alunos são preparados, inicialmente, na utilização de ferramentas que irão utilizar ao longo do semestre. Ao longo das sessões, são propostos problemas que os alunos deverão resolver individualmente e entregar a sua resolução no fim de cada aula. A avaliação é contínua com a entrega de problemas resolvidos. Cada aluno apresentará oralmente um dos seus projetos sorteados de forma aleatória.
Essencial
Costa, E. (2015). Programação em Python – Fundamentos e Resolução de Problemas: FCA.
Havill, J. (2015). Discovering Computer Science: Interdisciplinary Problems, Principles, and Python Programming: CRC Press.
Complementar
Lambert, K. A. (2013). Fundamentals of Python: Data Structures: Cengage
01060940
6