Programming Lab

« Return

Objectives

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.

Program

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.

Teaching Methodologies

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.

Bibliography

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

Code

01060940

ECTS Credits

6

Classes

  • Práticas e Laboratórios - 45 hours
  • Teóricas - 15 hours

Evaluation Methodology

  • 5 individually problems: 80%
  • Presentation and oral discussion of project: 20%