Introdução à Programação

Código

01062979

Créditos ECTS

6

Objetivos

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

  1. 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
  2. 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
  3. Controlo de execução
    3.1 Estruturas condicionais
    3.2 Ciclos iterativos
    3.3 Desenvolvimento de algoritmos
  4. Estruturas de dados
    4.1 Cadeias de caracteres (Strings)
    4.2 Listas
    4.3 Tuplos
    4.4 Dicionários
    4.5 Conjuntos
  5. Abstração funcional
    5.1 Funções
    5.2 Parâmetros
    5.3 Valor de retorno
    5.4 Recursividade
  6. Robustez dos programas
    6.1 Exceções
    6.2 Testes
    6.3 Depuração
  7. Modularização e reutilização
    7.1 Módulos
    7.2 Bibliotecas Python
    7.3 Introdução às classes e objetos
  8. 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)

Método de Avaliação