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).
Cursos
Cursos onde a unidade curricular é leccionada: