Disciplina

Á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

Martins J.P. e Cravo M.R.,

2003

IST Press