Programa

Elementos de Programação

Licenciatura Bolonha em Engenharia Electrónica

Programa

Breve introdução à utilização do sistema MATHEMATICA como ferramenta de cálculo numérico e simbólico e de visualização gráfica. Introdução à programação na linguagem MATHEMATICA. Definição de funções. Listas e matrizes. Programação recursiva. Programação imperativa. Programação funcional. Exercícios complementares: ordenação de vector, controlo da precisão de cálculos numéricos. Sistemas de reescrita. Moldes. Raciocínio sobre tipos de dados. Exemplo complementar: reacções químicas. Programação em grande escala: método de programação modular, por camadas e centrado nos dados. Primeiro exemplo: torres de Hanoi sobre pilhas. Pacotes MATHEMATICA. Aplicações: simulação estocástica, passeio aleatório, propagação de fogos, redes neuronais, programação genética, vida artificial e demonstração automática. Cálculo de Hoare para verificação da correcção parcial e total de pequenos programas imperativos.

Fundamentos da Programação

Licenciatura Bolonha em Engenharia Informática e de Computadores - Taguspark

Licenciatura Bolonha em Engenharia Informática e de Computadores - Alameda

Licenciatura Bolonha em Engenharia de Telecomunicações e Informática

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.