Os objetivos gerais de aprendizagem são os seguintes:
- perceber os fundamentos de programação para resolver problemas de natureza computacional usando computadores,
- perceber como abstrair um problema concreto para a sua devida especificação/modelação e implementação na forma de um programa de computador,
- introduzir os conceitos básicos de programação imperativa,
- desenvolver capacidades de programação com recurso à linguagem C,
- perceber e saber como corretamente integrar uma solução programática com as contingências arquitetónicas de um computador
(e.g. aritmética de computador, gestão dinâmica do recurso memória).
A linguagem C será usada na componente prática da disciplina.
Programa detalhado
Fundamentos de computadores (hardware/software)
Programação estruturada e desenho de algoritmos
Estruturas básicas da linguagem C: tipos de dados básicos, variáveis e operadores (aritméticos, relacionais e lógicos)
Instruções de atribuição e de entrada/saída padrão
Instruções condicionais
Instruções de repetição (ciclos)
Subprogramas (funções)
Tipos de dados compostos: arrays e strings
Tipos de dados definidos pelo utilizador: estruturas (registos)
Apontadores (ponteiros)
Passagem de parâmetros em subprogramas
Gestão dinâmica da memória
Ficheiros de texto
Algoritmos recursivos
Ficheiros binários
Aritmética de computador
Técnicas básicas de otimização de código C
Bibliografia
"Linguagem C", 25ª Edição Atualizada e Aumentada, 2025
O horário de atendimento aos estudantes pode também ser noutros períodos e/ou de forma online (Teams ou ZOOM), desde que previamente marcado com o docente.