Código: | CC1003 | Sigla: | CC1003 | Nível: | 100 |
Áreas Científicas | |
---|---|
Classificação | Área Científica |
OFICIAL | Ciência de Computadores |
Ativa? | Sim |
Unidade Responsável: | Departamento de Ciência de Computadores |
Curso/CE Responsável: | Licenciatura em Ciência de Computadores |
Sigla | Nº de Estudantes | Plano de Estudos | Anos Curriculares | Créditos UCN | Créditos ECTS | Horas de Contacto | Horas Totais |
---|---|---|---|---|---|---|---|
L:B | 1 | Plano de Estudos Oficial | 3 | - | 6 | 56 | 162 |
L:CC | 96 | Plano estudos a partir do ano letivo 2021/22 | 1 | - | 6 | 56 | 162 |
L:F | 0 | Plano de Estudos Oficial | 3 | - | 6 | 56 | 162 |
L:G | 0 | Plano estudos a partir do ano letivo 2017/18 | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:IACD | 63 | Plano Oficial a partir do ano letivo 2021/22 | 1 | - | 6 | 56 | 162 |
L:M | 1 | Plano de Estudos Oficial | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:Q | 3 | Plano estudos a partir do ano letivo 2016/17 | 3 | - | 6 | 56 | 162 |
Introduzir os conceitos elementares de programação imperativa enfatizando a noção de algoritmo e de modularidade.
Pretende-se que os estudantes:
- sejam capazes de conceber algoritmos para resolução de problemas simples e de os implementar na linguagem de programação C
- fiquem a conhecer alguns algoritmos básicos (contagem, pesquisa, ordenação, ...)
- adquiram bons hábitos de programação.
Pretende-se que os estudantes:
- conheçam a sintaxe e semântica de constituintes fundamentais da linguagem C;
- sejam capazes de escrever, testar e executar programas para resolução de problemas simples a partir de uma especifição informal;
- sejam capazes de implementar alguns algoritmos elementares em C
- compreendam o conceito de apontador e sejam capazes de o utilizar para processamento de variáveis indexadas e cadeias de carateres
- compreendam e saibam utilizar a alocação dinâmica de memória
- sejam capazes de utilizar funções da biblioteca padrão da linguagem C para processamento de cadeias e leitura/escrita de ficheiros
- adquiram competências de programação estruturada.
- conheçam simples estruturas de dados (listas ligadas, arvores)
Introdução à linguagem C. Breve contextualização histórica. Características da linguagem. Vantagens e desvantagens da linguagem. Perigos 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.
Algoritmos numéricos e semi-numéricos elementares.
Variáveis indexadas. Algortimos fundamentas: contagem, pesquisa e ordenação. Cadeias de carateres.
Organização de programas: ficheiros "header" e bibliotecas padrão.
Deteção e correção de erros. Utilização de um "debugger" e uso de asserções.
Introdução ao modelo de memória da linguagem C. Programação com apontadores. Utilização de apontadores para processar cadeias e variáveis indexadas.
Recursividade. Resolução de problemas simples usando algoritmos iterativos e recursivos.
Definição de novos tipos de dados (estruturas, unions).
Definição e uso de estruturas de dados elementares (listas ligadas, arvores).
Aulas teóricas: exposição oral de conceitos suportada por apresentação de "slides"; resolução interativa de exemplos de programação ilustrativos e exercícios complementares.
Aulas laboratoriais: resolução de problemas em computador; utlização de ferramentas de desenvolvimento (editor, debugger, sistema de testes automático) como auxiliar para a deteção e correção de erros em exercícios selecionados.
Utilização de sistemas de avaliação automática (Mooshak e Codex).
https://mooshak.dcc.fc.up.pt/~pi/
https://codex.dcc.fc.up.pt/cc1003/
Designação | Peso (%) |
---|---|
Exame | 80,00 |
Teste | 20,00 |
Total: | 100,00 |
Designação | Tempo (Horas) |
---|---|
Frequência das aulas | 56,00 |
Estudo autónomo | 56,00 |
Trabalho laboratorial | 50,00 |
Total: | 162,00 |
Perde a frequência o estudante que faltar a mais de 4 aulas práticas dadas.
A avaliação tem em conta as seguintes provas:
T1: classificação do primeiro teste durante o semestre
T2: classificação do segundo teste realizado durante a época de exames
F: classificação final
A nota final é F = T1*0.20 + T2*0.80
Os exames de recurso, melhoria de nota e de épocas especiais são cotados para 100% da classificação.
Os estudantes podem melhorar a nota do exame final de acordo com os regulamentos gerais.