Programação II
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Ciências da Computação e da Informação |
Ocorrência: 2024/2025 - 2S 
Ciclos de Estudo/Cursos
Docência - Responsabilidades
Língua de trabalho
Português - Suitable for English-speaking students
Objetivos
Pretende-se complementar conhecimentos prévios de programação numa linguagem interpretada (Python) com uma formação específica para programação numa linguagem compilada e de baixo-nível (C).
Será dada ênfase à resolução prática de problemas com foco nas noções de algoritmo, modularidade, programação estruturada e qualidade do código.
Resultados de aprendizagem e competências
No final desta unidade curricular, os estudantes deverão ser capazes de:
- usar a sintaxe e semântica de constituintes fundamentais da linguagem C;
- escrever, testar e executar programas para resolução de problemas simples a partir de uma especificação informal;
- implementar alguns algoritmos elementares em C;
- conhecer o conceito de apontador e usá-lo no processamento de variáveis indexadas e cadeias de carateres;
- conhecer e utilizar funções das bibliotecas padrão da linguagem C;
- ter competências básicas nas escrita de programas estruturados, corretos e eficientes.
Modo de trabalho
Presencial
Programa
Introdução à linguagem C. Características da linguagem: vantagens, desvantagens e cuidados na sua utilização.
Fundamentos de linguagem C. Estrutura sintática de programas. Diretivas, declarações, expressões. Compilação e execução.
Tipos básicos (inteiros, virgula flutuante, carateres). Controlo de fluxo. Ciclos. Definição de funções. Entrada e saida formatada.
Noções de apontadores. Variáveis indexadas. Cadeias de carateres. Tipos estruturados.
Algoritmos elementares (contagem, pesquisa, ordenação, algoritmos numéricos).
Recursividade. Resolução de problemas simples usando algoritmos iterativos e recursivos.
Desenvolvimento incremental. Deteção e correção de erros. Noçõs de eficiência e correção.
Bibliografia Obrigatória
K. N. King;
C programming. ISBN: 0-393-96945-2
Bibliografia Complementar
Brian W. Kernighan;
The C programming language. ISBN: 0-13-110163-3
Jon Bentley;
Programming pearls. ISBN: 9780201657883
Métodos de ensino e atividades de aprendizagem
Exposição teórico-prática, com análise e discussão interativa de problemas e programas.
Aulas práticas para resolução de exercícios em computador, com utilização de ferramentas de desenvolvimento e de um sistema de avaliação automática.
Software
Mooshak - A system for automatic evaluation of code
GCC - GNU C Compiler
Tipo de avaliação
Avaliação distribuída sem exame final
Componentes de Avaliação
Designação |
Peso (%) |
Teste |
40,00 |
Exame |
50,00 |
Trabalho laboratorial |
10,00 |
Total: |
100,00 |
Componentes de Ocupação
Designação |
Tempo (Horas) |
Estudo autónomo |
32,00 |
Frequência das aulas |
24,00 |
Trabalho laboratorial |
25,00 |
Total: |
81,00 |
Obtenção de frequência
Presença em pelo menos 50% das aulas práticas.
Fórmula de cálculo da classificação final
A classificação final é obtida tendo em conta os seguintes componentes:
- A: classificação dos exercícios submetidos no sistema de avaliação automática durante as aulas;
- T: teste prático no final das 6 semanas de aulas;
- E: exame final escrito.
A classificação final (F) é determinada por F = A*0.1 + T*0.4 + E*0.5
Nota: Não existe nota mínima em nenhum componente. Será permitido aos estudantes uma hipótese de melhoria do teste prático antes da época de exames.
Melhoria de classificação
Os estudantes podem melhorar a nota do exame final de acordo com os regulamentos gerais.