Introdução à Programação para Ciência e Engenharia

Objetivos

Saber: as construções do fragmento coberto de Python; construir uma aplicação no fragmento a partir de uma especificação informal, com a metodologia definida; os componentes e ferramentas básicas de um ambiente de desenvolvimento de software e sua função.

Fazer: desenvolver programas de pequena dimensão, segundo certas convenções; desenvolver algoritmos simples; entender código escrito no fragmento coberto de Python; utilizar ferramentas de programação e interpretar os seus resultados; realizar, em grupo, um mini-projecto de desenvolvimento de software, integrando competências.

Desenvolver: hábitos de trabalho, individuais e em grupo, e de cumprimento de prazos; preocupação com a organização, o rigor e a execução de planos de trabalho.

Caracterização geral

Código

12566

Créditos

6.0

Professor responsável

Artur Miguel de Andrade Vieira Dias, Carla Maria Gonçalves Ferreira

Horas

Semanais - 5

Totais - 67

Idioma de ensino

Português

Pré-requisitos

A disponibilizar brevemente

Bibliografia

- Python Distilled, Dave Beazley, Addison-Wesley Professional, 2021.

- Think Python, Allen B. Downey, 2nd edition, O’Reilly, 2015.

- Fundamentals of Python: First Programs, Kenneth A. Lambert, 1st Edition, 2011.

Método de ensino

Esta cadeira tem um forte caráter aplicado e a nota final depende da capacidade de resolver problemas de programação práticos usando a linguagem Python.
Nas aulas teóricas, os conceitos fundamentais da cadeira são transmitidos, exemplificados e discutidos.
Nas aulas práticas, os alunos resolvem pequenos problemas onde aplicam os conceitos e técnicas estudados. Parte desses problemas estarão disponíveis num sistema de avaliação automática de programas (Mooshak).
O projeto final da cadeira é realizado parcialmente nas aulas práticas e parcialmente fora das aulas. O projeto final é importante pois destina-se a sedimentar tudo o que se aprendeu ao longo da disciplina e a ganhar desenvoltura na resolução de programas de programação.

 

Método de avaliação



Elementos da avaliação

Os elementos de avaliação são os seguintes, com os pesos na nota final indicados:

  • T1- Teste 1
  • T2- Teste 2
  • PR- Projeto
  • ER - Exame de recurso

Cada um destes elementos de avaliação é cotado até 20 valores, com a nota arredondada às centésimas.

Os testes e exame são presenciais, individuais, escritos e sem consulta. Não é permitido o uso de instrumentos eletrónicos.

O projeto é efetuado por grupos de dois alunos. Poderão haver discussões de alguns projetos para alguns grupos.

O calendário do projeto encontra-se na página da disciplina e nos "eventos" do CLIP.

Nota da componente teórica-prática

A nota da componente teórica-prática (CompTP) tem um peso de 80% da nota final e pode ir até ao valor máximo de 20 valores.

A nota CompTP define-se de três formas diferentes, consoante as situações:

  • CompTP= (T1+T2)/2    (no caso de avaliação contínua pura)
  • CompTP= ER                (para alunos não aprovados na avaliação contínua)
  • CompTP = max((T1+T2)/2, ER)   (avaliação contínua + tentativa de melhoria de nota)

Nota da componente laboratorial e frequência

A nota da componente laboratorial (CompLab) tem um peso de 20% da nota final e pode ir até ao valor máximo de 20 valores.

A nota CompLab é definida simplesmente como a nota do projeto:

  • CompLab = PR

Para obter frequência, é necessário e suficiente que CompLab >= 9.5.

Nota final e aprovação

A nota final dos alunos com frequência calcula-se assim (sendo arredondada às unidades):

  • FINAL = 0.8 * CompTP + 0.2 * CompLab

A aprovação na disciplina é determinada pela seguinte condição:

  • APROVAÇÃO = CompTP >= 9.5 e CompLab >= 9.5

Validade da frequência obtida neste ano

A frequência obtida no ano letivo corrente será valida no próximo ano letivo, pelo menos.

Frequências dos anos anteriores

A frequência obtida no ano letivo anterior é válida no ano letivo corrente (e permite-se também que essa nota seja melhorada, fazendo o projeto do ano corrente). As frequências mais antigas não são válidas.

Fraude

Qualquer tipo de fraude em qualquer elemento de avaliação implica a impossibilidade de fazer a disciplina no ano letivo corrente (mesmo que haja exames marcados).



Conteúdo

1. Introdução às linguagens de programação;2. Noções básicas de Python; 3. Variáveis e tipos de dados; 4. Legibilidade de código; 5. Metodologias de programação; 6. Estruturas de controle; 7. estruturas de repetição; 8. Funções e módulos; 9. Strings; 10. Leitura e gravação de dados em armazenamento persistente; 11. Estruturas de dados básicas: arrays, listas, dicionários, tuplos; 12. Algoritmos básicos: ordenação e procura dicotómica, percursos de dicionários; 13. Design e estrutura de programação; 14: Bibliotecas para manipulação e visualização de dados. 15. Seleção de algoritmos científicos fundamentais relevantes à area do curso (biologia, física, etc).