Introdução à Programação
Código
01062979Créditos ECTS
6Objetivos
Esta UC visa proporcionar aos estudantes os fundamentos da programação imperativa, desenvolvendo competências de análise de problemas, conceção de algoritmos e implementação de programas em Python. No final da UC, o estudante deverá ser capaz de:
- A. Descrever os conceitos fundamentais de computação, algoritmos, linguagens de programação e arquitetura básica dos computadores.
- B. Desenvolver programas que utilizem adequadamente tipos de dados elementares e estruturados para representar informação.
- C. Implementar soluções algorítmicas recorrendo a estruturas de seleção, repetição e decomposição funcional.
- D. Construir programas modulares utilizando funções, módulos e mecanismos básicos de abstração, aplicando boas práticas de programação.
- E. Testar, depurar e documentar programas, justificando as opções de implementação adotadas.
- F. Desenvolver, em equipa, um projeto de pequena dimensão que responda a um problema real, comunicando claramente a solução desenvolvida.
Programa
- Introdução à computação e à programação
1.1 Computadores e computação
1.2 Algoritmos
1.3 Linguagens de programação
1.4 Ambiente de desenvolvimento Python - Tipos de dados e expressões
2.1 Variáveis
2.2 Tipos elementares
2.3 Operadores
2.4 Entrada e saída de dados - Controlo de execução
3.1 Estruturas condicionais
3.2 Ciclos iterativos
3.3 Desenvolvimento de algoritmos - Estruturas de dados
4.1 Cadeias de caracteres (Strings)
4.2 Listas
4.3 Tuplos
4.4 Dicionários
4.5 Conjuntos - Abstração funcional
5.1 Funções
5.2 Parâmetros
5.3 Valor de retorno
5.4 Recursividade - Robustez dos programas
6.1 Exceções
6.2 Testes
6.3 Depuração - Modularização e reutilização
7.1 Módulos
7.2 Bibliotecas Python
7.3 Introdução às classes e objetos - Projeto aplicado
8.1 Desenvolvimento incremental
8.2 Trabalho colaborativo
8.3 Documentação
8.4 Apresentação da solução
Métodos de Ensino
Serão utilizadas metodologias de ensino diversificadas, articuladas com o Modelo Pedagógico da Universidade dos Açores.
• Aulas teórico-práticas baseadas em exposição breve dos conceitos seguida de resolução orientada de exercícios, promovendo aprendizagem ativa e centrada no estudante (OPT B.1).
• Laboratórios de programação, nos quais os estudantes implementam soluções progressivamente mais complexas com feedback imediato do docente (OPT B.1, B.2 e B.5).
• Aprendizagem baseada na resolução de problemas (Problem-Based Learning) através da implementação de algoritmos para situações reais, promovendo a criatividade, o pensamento computacional e a resolução de problemas (OPT B.2).
• Projeto colaborativo, desenvolvido em equipas de dois ou três estudantes, envolvendo análise, conceção, implementação, teste e documentação de uma aplicação informática (OPT B.2 e B.6).
• Utilização da plataforma Moodle para disponibilização de conteúdos, submissão faseada de trabalhos, fóruns de discussão e feedback contínuo (OPT B.3 e B.4).
• Utilização de ambientes profissionais de desenvolvimento (Python, VS Code ou equivalente), de sistemas de controlo de versões e de documentação técnica, aproximando o ensino das práticas profissionais em Informática (OPT B.7).
• Feedback formativo contínuo durante os laboratórios e acompanhamento do projeto, promovendo a autorregulação da aprendizagem (OPT B.5).
Bibliografia
- Gaddis, T. (2022). Starting out with Programming Logic and Design (Sixth Edition): Pearson.
- Guttag, J. V. (2021). Introduction to Computation and Programming Using Python (Third Edition): MIT Press.
- How to Think Like a Computer Scientist: Interactive Edition (disponível em https://runestone.academy/ns/books/published/thinkcspy/index.html)
