[xx-xx-2024]
--
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)
Fundamentos de computadores (hardware/software)
Desenho de algoritmos e programação estruturada
Estruturas básicas da linguagem C: tipos de dados simples, variáveis e operadores (aritméticos, relacionais e lógicos)
Instruções de atribuição e de entrada/saída
Instruções condicionais
Instruções de repetição (ciclos)
Subprogramas (funções)
Tipos de dados compostos: arrays e strings
Apontadores (ponteiros) e passagem de argumentos em subprogramas
Gestão dinâmica da memória
Tipos de dados definidos pelo utilizador: registos (estruturas)
Ficheiros de texto e binários
Algoritmos recursivos
Aritmética de computador
Técnicas básicas de otimização de código C
"Introdução à Programação Usando C", 2006
António Manuel Adrego da Rocha
FCA-Editora de Informática. Coleção: Tecnologias de Informação.
ISBN: 978-972-722-524-8
"Fundamentos de Programação Usando C", 2004
Joaquim P. Marques de Sá
FCA-Editora de Informática. Coleção: Tecnologias de Informação.
ISBN: 978-972-722-475-3
"Elementos de programação com C", 3ª Edição Actualizada e Aumentada, 2006
Pedro João Valente Dias Guerreiro
FCA-Editora de Informática. Coleção: Tecnologias de Informação.
ISBN: 972-722-510-1
"Linguagem C", 1999
Luís Manuel Dias Damas
FCA-Editora de Informática. Coleção: Tecnologias de Informação.
ISBN: 972-722-156-4
A avaliação no período de Aprendizagem consiste no seguinte :
- 2 Testes escritos (Frequências): 16 valores (8 valores cada)
- 4 Mini-testes práticos a realizar nas aulas práticas (PL): 4 valores (1 valor cada)
Aprendizagem = Mini-testes práticos + Testes escritos (Frequências)
em que,
Situação
Classificação final
Presença nas aulas inferior a 50%
Reprovado e Não Admitido a Exame
Aprendizagem < 5,5 (em 20)
Reprovado e Não Admitido a Exame
Aprendizagem >= 9,5 (em 20)
Aprovado e Dispensado de Exame
Restantes casos
Reprovado e Admitido a Exame
Exame = Mini-testes práticos + Teste escrito
em que,
- Mini-testes práticos (realizados durante o período de Aprendizagem): 4 valores
- Teste escrito: 16 valores
Mini-testes práticos
Data
Hora
Salas
Obs.
MTP1
Aula PL
Aula PL
- MTP2
Aula PL
Aula PL
- MTP3
Aula PL
Aula PL
- MTP4
Aula PL
Aula PL
-
Testes escritos (Frequências)
Data
Hora
Salas
Frequência 1
Frequência 2
Testes do ano letivo de 2022/2023
Frequência 1: Enunciado + Resolução
Frequência 2: Enunciado + Resolução
Exame de Época Normal: Enunciado + Resolução
Exame de Época de Recurso: Enunciado + Resolução
Classificações obtidas nas avaliações (ano letivo 2023/2024)
1º Ciclo em Engenharia Informática
Frequência 1 (classificação em percentagem) ## Resolução (sugestão)
Frequência 2 (classificação em percentagem) ## Resolução (sugestão)
Aprendizagem (Mini-testes práticos + Frequências)
Exame - Época Normal (Teste escrito + Mini-testes práticos) ## Resolução (sugestão)
Exame - Época de Recurso (Teste escrito + Mini-testes práticos) ## Resolução (sugestão)
Fundamentos de computadores. Hardware vs. Software
Desenho de algoritmos e programação estruturada
Estruturas básicas da linguagem C: tipos de dados simples, variáveis e operadores (aritméticos, relacionais e lógicos)
Instruções de atribuição e de entrada/saída
Instruções de repetição (ciclos)
Subprogramas (funções) ## Exemplos
Tipos de dados compostos: arrays ## Exemplos
Apontadores (ponteiros). Passagem de rgumentos em subprogramas
Tipos de dados definido pelo utilizador: registos (estruturas)
Tipos de dados compostos: strings (cadeia de carateres)
Técnicas básicas de otimização de código C
Folha Prática - Edição, compilação e execução de programas em C
Folha Prática - Desenho de algoritmos ## Soluções em Pseudocódigo
Notações algorítmicas ## Algorithmic notations
Folha Prática - Manipulação de variáveis e de expressões
Folha Prática - Instruções de atribuição e de entrada/saída padrão ## Algoritmos em pseudocódigo
Folha Prática - Instruções condicionais ## Algoritmos em pseudocódigo
Folha Prática - Instruções de repetição ## Algoritmos em pseudocódigo
Folha Prática - Apontadores (ponteiros)
Folha prática - Gestão dinâmica da memória
Folha Prática - Estruturas (struct)
Folha Prática - Ficheiros de texto
Folha Prática - Ficheiros binários
Folha Prática - Algoritmos recursivos
Sistema Operativo UNIX
Compiladores de C
TUTORIALSPOINT (online)
CODECHEF (online)
ONLINEGDB (online)
Resolução dos exercícios da folha prática "Arrays"
Biblioteca base
OperacoesBasicas.h ## OperacoesBasicas.c
Arrays de 1 dimensão (inteiros)
Biblioteca: Array1DInteiros.h ## Array1DInteiros.c
Programa principal: A1DInteiros.c
Arrays de 2 dimensões (reais)
Biblioteca: Array2DReais.h ## Array2DReais.c
Programa principal: A2DReais.c
Resolução dos exercícios da folha prática "Apontadores"
Biblioteca base
OperacoesBasicas.h ## OperacoesBasicas.c
Arrays de 1 dimensão (reais)
Biblioteca: Array1DReais.h ## Array1DReais.c
Arrays de 2 dimensões (reais)
Biblioteca: Array2DReais.h ## Array2DReais.c
Resolução dos exercícios da folha prática "Memória Dinâmica"
Biblioteca base
OperacoesBasicas.h ## OperacoesBasicas.c
Arrays de 1 dimensão (inteiros)
Biblioteca: Array1DInteirosMD.h ## Array1DInteirosMD.c
Arrays de 1 dimensão (reais)
Biblioteca: Array1DReaisMD.h ## Array1DReaisMD.c
Ficheiros de texto fornecidos:
Enviar teste
- Segunda-feira, 16h - 18h (Gabinete 4.2)
- Terça-feira, 16h - 18h (Gabinete 4.2)
- Outro horário (sujeito a marcação com o docente)
Horas
Segunda
Sala
Terça
Sala
Quarta
Sala
Quinta
Sala
Sexta
Sala
8
9
PL1
6.14
TE
6.03
10
PL1
6.14
TE
6.03
11
PL2
6.14
12
PL2
6.14
13
14
PL3
6.14
PL4
PL5
6.14
6.13
15
PL3
6.14
PL4
PL5
6.14
6.13
16
17
18