Disciplina
Fundamentos da Programação
Área
Área Científica de Metodologia e Tecnologias da Programação > Linguagens de 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 tem os seguintes componentes: Mini-testes realizados nas aulas práticas. Pequenos trabalhos de programação, a nível individual. Dois testes realizados em comum por todos os alunos. Projecto de programação em grupos de dois alunos. A nota da cadeira é calculada por uma média ponderada da classificações obtidas: Projecto: 30 % Média aritmética dos mini-testes: 15 % Média aritmética dos trabalhos de programação:15 % Média aritmética dos testes :40 %
Tipo
Estruturante
Regime
Semestral
Carga Horária
1º Semestre
3.0 h/semana
1.5 h/semana
105.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 ser capaz de desenvolver programas numa linguagem de programação de alto nível.
Programa
Algoritmos, procedimentos e processos. A construção de abstracção através de procedimentos. Abstracção procedimental. Desenvolvimento do topo para a base. Programação funcional. Procedimentos e processos por eles gerados. Introdução ao conceito de ordem de crescimento de um processo. Formulação de abstracções com procedimentos de ordem superior, procedimentos que recebem e que produzem procedimentos. A construção de abstracções através de dados. A abstracção de dados. Tipos abstractos de informação: listas e árvores. O tipo símbolo. Noção de atribuição e de estado local. Programação imperativa. Modelo de avaliação baseado em ambientes. Estruturas mutáveis: pilhas e filas. A noção de ponteiro. Gestão de memória. Programação por objectos. Noção de objecto, herança simples e múltipla.
Metodologia de avaliação
A avaliação de conhecimentos tem os seguintes componentes: Mini-testes realizados nas aulas práticas. Pequenos trabalhos de programação, a nível individual. Dois testes realizados em comum por todos os alunos. Projecto de programação em grupos de dois alunos. A nota da cadeira é calculada por uma média ponderada da classificações obtidas: Projecto: 30 % Média aritmética dos mini-testes: 15 % Média aritmética dos trabalhos de programação:15 % Média aritmética dos testes :40 %
Pré-requisitos
Componente Laboratorial
Princípios Éticos
Componente de Programação e Computação
Componente de Competências Transversais
Bibliografia
Principal
Programação em Scheme: Introdução à Programação com Múltiplos Paradigm