Disciplina

Área

Área Científica de Metodologia e Tecnologias da Programação > Programação

Activa nos planos curriculares

LENO 2021 > LENO 2021 > 1º Ciclo > Formação Fundamental > Fundamentos da Programação

LEIC-T 2021 > LEIC-T 2021 > 1º Ciclo > Formação Fundamental > Fundamentos da Programação

LEME 2021 > LEME 2021 > 1º Ciclo > Formação Fundamental > Fundamentos da Programação

LEFT 2021 > LEFT 2021 > 1º Ciclo > Formação Fundamental > Fundamentos da Programação

LEMec 2021 > LEMec 2021 > 1º Ciclo > Formação Fundamental > Fundamentos da Programação

LETI 2021 > LETI 2021 > 1º Ciclo > Formação Fundamental > Fundamentos da Programação

LEIC-A 2021 > LEIC-A 2021 > 1º Ciclo > Formação Fundamental > Fundamentos da Programação

LERC 2006 > LERC 2006 > 1º Ciclo > Ciências da Engenharia Informática > Fundamentos da Programação

LEIC-A 2006 > LEIC-A 2006 > 1º Ciclo > Ciências da Engenharia Informática > Fundamentos da Programação

LEIC-T 2006 > LEIC-T 2006 > 1º Ciclo > Ciências da Engenharia Informática > Fundamentos da Programação

Nível

A avaliação de conhecimentos da cadeira não tem exame final, sendo apenas realizada avaliação do tipo contínuo com os seguintes componentes: • Avaliação dos alunos durante as aulas práticas recorrendo à resolução de exercícios no quadro. Cada aluno das aulas práticas terá no mínimo duas avaliações em aulas diferentes. • Dois testes realizados em comum por todos os alunos. Durante época de exames, existirá uma data para a repescagem de um dos testes. No entanto, se um aluno se apresentar à repescagem, a nota obtida no respectivo teste será a nota da repescagem, independentemente de esta ser superior ou inferior à do teste. • Projecto de programação em grupos de dois alunos, com duas entregas. Para obter aprovação na cadeira, as seguintes condições têm que ser cumulativamente verificadas: 1. A média aritmética dos dois testes realizados em comum é superior ou igual a 9.5 valores; 2. A nota do projecto é superior ou igual a 9.5 valores. Nestas condições, a nota da cadeira é calculada por uma média ponderada da classificação obtida nas provas realizadas, com os seguintes pesos: 1. Projecto 35 % 2. Média aritmética dos exercícios das aulas prática 20 % 3. Média aritmética dos dois testes 45%

Tipo

Estruturante

Regime

Semestral

Carga Horária

1º Semestre

3.0 h/semana

1.5 h/semana

147.0 h/semestre

Objectivos

Fornecer conhecimentos sobre conceitos fundamentais relativos à actividade de programação, nomeadamente, algoritmo, abstracção procedimental e abstracção de dados, a programação como construção de abstracções, paradigmas de programação. Após a frequência da cadeira, os alunos deverão dominar os conceitos apresentados e serem capazes de desenvolver programas numa linguagem de programação de alto nível, o Python.

Programa

Computadores, algoritmos e programas Características de um computador Programas e algoritmos Linguagens de programação Sintaxe e semântica Elementos básicos de programação Expressões Tipos elementares de informação Nomes e atribuição Comunicação com o exterior Programas, instruções e sequenciação Selecção Repetição Funções Abstracção procedimental Módulos Tuplos e ciclos contados Cadeias de caracteres revisitadas Listas Métodos de passagem de parâmetros Algoritmos de procura Algoritmos de ordenação Considerações sobre eficiência Funções revisitadas Funções recursivas Funções de ordem superior Programação funcional Recursão e iteração Recursão linear Iteração linear Recursão em processos e em função Recursão em árvore Ficheiros Leitura de ficheiros Escrita em ficheiros Dicionários Dicionários de dicionários Caminhos mais curtos em grafos Abstracção de dados Abstracção em programação Tipos abstractos de informação Barreiras de abstracção Objectos Programação com objectos Classes subclasses e herança Objectos em Python Polimorfismo O desenvolvimento de programas Estruturas lineares Pilhas Filas

Metodologia de avaliação

A avaliação de conhecimentos da cadeira não tem exame final, sendo apenas realizada avaliação do tipo contínuo com os seguintes componentes: • Avaliação dos alunos durante as aulas práticas recorrendo à resolução de exercícios no quadro. Cada aluno das aulas práticas terá no mínimo duas avaliações em aulas diferentes. • Dois testes realizados em comum por todos os alunos. Durante época de exames, existirá uma data para a repescagem de um dos testes. No entanto, se um aluno se apresentar à repescagem, a nota obtida no respectivo teste será a nota da repescagem, independentemente de esta ser superior ou inferior à do teste. • Projecto de programação em grupos de dois alunos, com duas entregas. Para obter aprovação na cadeira, as seguintes condições têm que ser cumulativamente verificadas: 1. A média aritmética dos dois testes realizados em comum é superior ou igual a 9.5 valores; 2. A nota do projecto é superior ou igual a 9.5 valores. Nestas condições, a nota da cadeira é calculada por uma média ponderada da classificação obtida nas provas realizadas, com os seguintes pesos: 1. Projecto 35 % 2. Média aritmética dos exercícios das aulas prática 20 % 3. Média aritmética dos dois testes 45%

Pré-requisitos

Componente Laboratorial

Princípios Éticos

Componente de Programação e Computação

Componente de Competências Transversais

Bibliografia

Principal

Programação em Python: Introdução à programação com múltiplos paradigmas

João P. Martins

2013

IST Press


Python for Software Design

Downey A.B

2009

Cambridge University Press


Secundária

Python Programming: An Introduction to Computer Science

Zelle J.M.

2010

Franklin, Beedle & Associates