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

Carla Maria Gonçalves Ferreira

Horas

Semanais - 5

Totais - 62

Idioma de ensino

Português

Pré-requisitos

A disponibilizar brevemente

Bibliografia

  • 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 - 30%
  • T2 - Teste 2 - 45%
  • PR - Projeto prático - 20%
  • PA - Partipação nas aulas - 5%
  • ER - Exame de recurso - 75%

Cada um destes elementos de avaliação é cotado até 20 valores. 
Os projectos são efectuados por grupos de dois alunos. Poderão haver discussões de projectos para alguns grupos.

Notas das componentes prática e teórica

A nota da componente prática é definida como:

  • PRAT = PR

A nota da componente teórica é definida de duas formas diferentes, consoante o momento em que a nota é obtida (por avaliação contínua ou exame final):

  • TEOR= (0.30*T1 + 0.45*T2) / 0.75
  • TEOR = ER

Frequência

A nota de frequência é igual à nota da parte prática:

  • FREQ = PRAT

Nota final e Aprovação

A nota final calcula-se assim:

  • FINAL = 0.20 * FREQ + 0.75 * TEOR + 0.05 * PA

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

  • Aprovação = FREQ >= 9.5 TEOR >= 9.5

As notas intermédias são arredondadas para duas casas decimais. 
A nota final é um número inteiro.

Validade da frequência obtida neste ano

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

Frequência do ano anterior

A frequência obtida no ano anteriore é válida no ano letivo corrente e transita automaticamente. Permite-se também que essa nota seja melhorada, fazendo o projeto do ano corrente.

Fraude

Qualquer tipo de fraude em qualquer elemento de avaliação implica a impossibilidade de fazer a cadeira no ano lectivo 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).