Informática para Ciências e Engenharias E

Objetivos

Saber

Os componentes fundamentais de um computador.

As ferramentas de um ambiente de desenvolvimento de software.

As construções essenciais de uma linguagem de programação imperativa.

Algumas noções fundamentais de bases de dados relacionais.

Alguns conceitos básicos relacionados com a World Wide Web.

Saber Fazer

Decompor um problema em problemas mais simples.

Conceber um algoritmo para resolver um problema simples.

Escrever um programa, utilizando correctamente as construções básicas de uma linguagem de programação imperativa (Python). 

Testar um programa num determinado ambiente de programação.

Formular uma interrogação simples em SQL.

Aceder a recursos disponíveis na rede dentro de um programa.

Soft-Skills

Capacidade de concretização.

Capacidade de gestão do tempo e cumprimento dos prazos.

Caracterização geral

Código

11149

Créditos

6.0

Professor responsável

Nuno Miguel Cavalheiro Marques, Pedro Manuel Corrêa Calvente Barahona

Horas

Semanais - 4

Totais - 62

Idioma de ensino

Português

Pré-requisitos

Uso de um computador como utilizador de aplicações.

Bibliografia

Bibliografia Principal:

  • Slides das Teóricas
  • Notas do Prof. Ludwig Kripahl. Edição de 2018/19 em http://iceb.ssdi.di.fct.unl.pt/1819/files/ICEB_notes.pdf
  • John V. Guttag. Introduction to Computation and Programming Using Python, MIT PRESS, 2016 (https://mitpress.mit.edu/books/introduction-computation-and-programming-using-python-second-edition)
Bibliografia Complementar:
 
  • Allen B. Downey. Think Python: How to Think Like a Computer Scientist (version 2.0.17).      (Versão PDF disponível em http://greenteapress.com/wp/think-python-2e/)
  • Ernesto Costa. Programação em Python - Fundamentos e Resolução de Problemas, FCA, 2015

Método de ensino

Há duas horas de aulas teóricas e duas horas de aulas práticas por semana.

As aulas teóricas são orientadas para a resolução de problemas. Começa-se com o enunciado de um problema muito concreto, que motiva a apresentação de um tópico dos sistemas de computadores, de um tipo de dados ou de uma construção da linguagem de programação, e termina-se com o código IGNOREe completo de um programa que o resolve.

Nas aulas práticas, os alunos concebem, implementam e testam programas que resolvem problemas simples das áreas das Ciências e Engenharias. Essas aulas são preparadas numa aula teórica-prática que a precede.

Método de avaliação

Regras de Avaliação

Componentes da Avaliação

A avaliação é constituída por duas componentes: a componente laboratorial e a componente teórico-prática.

*****   Componente Laboratorial e Frequência   *****

A componente laboratorial é composta por dois trabalhos práticos, realizados em grupo de dois alunos (ou individualmente, em casos justificados) fora do período de aulas, sendo o trabalho realizado parcialmente numa aula prática.

A avaliação dos trabalhos é feita individualmente, durante os correspondentes testes, que incluirão um grupo de perguntas relacionadas com os respetivos trabalhos. A avaliação desses grupos é condicionante da nota final atribuída aos trabalhos, mas não da nota dos testes.

A nota da componente laboratorial (CompL) é obtida pela média ponderada dois trabalhos práticos (TP1 e TP2):
 
    • CompL = 0.4 TP1 + 0.6 TP2.

Para obter frequência, é necessário que CompL ≥ 8.0.

*****   Componente Teórico-Prática   *****

A componente teórico-prática é composta por dois testes (no período de aulas) ou por um exame (na Época de Recurso). As três provas são individuais, escritas e sem consulta.

A nota da componente teórico-prática (CompTP) é a média aritmética das notas dos testes (T1 e T2) ou a nota do exame (Ex):

    • CompTP = max (0.5 T1 + 0.5 T2 , Ex).

Para obter aprovação, é necessário que CompTP ≥ 8.0.

*****   Nota Final   *****
A nota final (NF) dos alunos com frequência é calculada da seguinte forma:
    • NF = CompTP,                        se CompTP < 8.0;
    • NF = 0.4 CompL + 0.6 CompTP,        se CompTP ≥ 8.0 .

Todas as notas são arredondadas às décimas, numa escala de 0 a 20 valores, excepto a nota final (NF) que é arredondada às unidades.

*****    Classificações Obtidas em Anos Anteriores   *****
Os alunos que obtiveram frequência na UC desde o ano 2018/19 (em que foi usada a linguagem Python) podem manter essa nota.
Se o fizerem não deverão inscrever-se nas aulas práticas e essa nota corresponde à CompL acima. Se não o fizerem, a nota CompL será o máximo entre a nota anterior e a obtida este ano.

Conteúdo

Introdução: Problemas, algoritmos, programas e computadores. Objetivos e componentes de um sistema computacional. Execução de programas. O interpretador.

Conceitos Fundamentais da Programação e sua ilustração em Python:

Constantes, variáveis e expressões. Números e strings. Funções pré-definidas. Atribuição e sequência de instruções.

Níveis de abstração na resolução de um problema. Funções. Ficheiros com código IGNOREe. Ciclo de vida de um programa. Tipos de erros. Testes unitários.

Ciclos FOR. Vetores. Instrução IF. Operadores relacionais e lógicos. Matrizes. Gráficos. Ciclos WHILE. Sistema de ficheiros. Ficheiros ASCII e Binários. Dicionários.

Redes e protocolos de comunicação. A WWW.

Introdução às bases de dados: modelo relacional, relações, algumas instruções básicas de SQL.

Simulação de modelos contínuos.

Cursos

Cursos onde a unidade curricular é leccionada: