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. Techniques and tools to support programming:
1.1 Integrated development environment (IDE).
1.2 Use of tools to enforce style standards and good programming practices.
1.3 Use of version control systems for group work.
1.4 Writing of technical documentation.
1.5 Unit tests.
1.6 Debugging of programs.
2. Programming algorithms for problem solving:
2.1 Files;
2.2 Data structures;
2.3 Use of Python language modules;
2.4 Practice of recursive algorithms on structures;
2.5 Use of search and sort algorithms;
2.6 Application of numerical methods.
This CU follows a methodology based on problem solving, following the concept of laboratory as a space for test and experimentation. Students are introduced to tools that are going to be used throughout the semester. A set of problems are proposed in sequence along classes, which students have to solve individually and deliver their resolution at the end of each class. The evaluation is continuous with the delivery of solved problems. Each student will orally present one of their randomly selected projects.
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