Disciplina
Fundamentos da Programação
Á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
Secundária
Python Programming: An Introduction to Computer Science