| Código: | CC1003 | Sigla: | CC1003 | Nível: | 100 |
| Áreas Científicas | |
|---|---|
| Classificação | Área Científica |
| OFICIAL | Ciência de Computadores |
| Ativa? | Sim |
| Página Web: | http://www.dcc.fc.up.pt/~fds/aulas/pi/2425/ |
| 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 | 2 | Plano de Estudos Oficial | 3 | - | 6 | 48 | 162 |
| L:CC | 107 | Plano estudos a partir do ano letivo 2021/22 | 1 | - | 6 | 48 | 162 |
| L:F | 2 | Plano de Estudos Oficial | 2 | - | 6 | 48 | 162 |
| 3 | |||||||
| L:G | 5 | Plano estudos a partir do ano letivo 2017/18 | 2 | - | 6 | 48 | 162 |
| 3 | |||||||
| L:IACD | 111 | Plano Oficial a partir do ano letivo 2021/22 | 1 | - | 6 | 48 | 162 |
| L:M | 12 | Plano de Estudos Oficial | 2 | - | 6 | 48 | 162 |
| 3 | |||||||
| L:Q | 0 | Plano estudos a partir do ano letivo 2016/17 | 3 | - | 6 | 48 | 162 |
Introduzir os conceitos fundamentais de programação imperativa enfatizando a noção de algoritmo e de modularidade, tendo por base a linguagem de programação C. Será dada ênfase à resolução prática de problemas, algoritmos básicos de contagem, pesquisa e ordenação, e à qualidade de escrita de código.
Ao concluirem esta unidade curricular os estudantes deverão saber:
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).
Leitura e escrita de ficheiros.
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).
| Designação | Peso (%) |
|---|---|
| Exame | 70,00 |
| Trabalho laboratorial | 30,00 |
| Total: | 100,00 |
| Designação | Tempo (Horas) |
|---|---|
| Frequência das aulas | 48,00 |
| Estudo autónomo | 64,00 |
| Trabalho laboratorial | 50,00 |
| Total: | 162,00 |
Perdem frequência os estudantes que não tenham uma assiduidade às aulas superior a 50% das aulas dadas.
A avaliação tem em conta as seguintes provas:
E: classificação do exame escrito: época normal e recurso (0 a 100)
P: 2 avaliações práticas em computador (0 a 100)
R: resolução de exercícios práticos Mooshak (0 a 100)
CF: classificação final
A classificação final é CF = E*0.7 + P*0.25 + R*0.05
Ficam aprovados os estudantes que satisfaçam as seguintes condições:
Os exames de melhoria de nota para quem fez esta UC no ano letivo anterior são cotados para 100% da classificação.