Saltar para:
Logótipo
Você está em: Início > CC1003
Mapa das Instalações
FC6 - Departamento de Ciência de Computadores FC5 - Edifício Central FC4 - Departamento de Biologia FC3 - Departamento de Física e Astronomia e Departamento GAOT FC2 - Departamento de Química e Bioquímica FC1 - Departamento de Matemática

Programação Imperativa

Código: CC1003     Sigla: CC1003     Nível: 100

Áreas Científicas
Classificação Área Científica
OFICIAL Ciência de Computadores

Ocorrência: 2024/2025 - 2S Ícone do Moodle

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

Ciclos de Estudo/Cursos

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
Mais informaçõesA ficha foi alterada no dia 2025-02-15.

Campos alterados: Fórmula de cálculo da classificação final, Componentes de Avaliação e Ocupação, URL da página

Língua de trabalho

Português e inglês

Objetivos

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.

Resultados de aprendizagem e competências

Ao concluirem esta unidade curricular os estudantes deverão saber:

  • 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 especifição informal.
  • implementar alguns algoritmos elementares em C.
  • usar o conceito de apontador e usá-lo no processamento de variáveis indexadas e cadeias de carateres.
  • utilizar a alocação dinâmica de memória.
  • utilizar funções da biblioteca padrão da linguagem C para processamento de cadeias e leitura/escrita de ficheiros.
  • aplicar técnicas de programação estruturada.
  • utilizar estruturas elementares de dados (listas ligadas, arvores).

   

Modo de trabalho

Presencial

Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)

N/A

Programa

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).

Bibliografia Obrigatória

000002544. ISBN: 0-393-96945-2 (K.N.King, C programming : a modern approach : with a preview of C++, 2nd Edition 2008)

Bibliografia Complementar

Kernighan Brian W.; The C programming language. ISBN: 0-13-110163-3
Jon Bentley; Programming pearls. ISBN: 9780201657883

Métodos de ensino e atividades de aprendizagem

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). 

Software

gdb - gnu debugger
gcc - gnu c compiler
GNU emacs
Mooshak

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Designação Peso (%)
Exame 70,00
Trabalho laboratorial 30,00
Total: 100,00

Componentes de Ocupação

Designação Tempo (Horas)
Frequência das aulas 48,00
Estudo autónomo 64,00
Trabalho laboratorial 50,00
Total: 162,00

Obtenção de frequência

Perdem frequência os estudantes que não tenham uma assiduidade às aulas superior a 50% das aulas dadas.

Fórmula de cálculo da classificação final

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:

  • E ≥ 35% (nota mínima no exame E).
  • CF ≥ 9.5 valores (em 20).




Melhoria de classificação

Os exames de melhoria de nota para quem fez esta UC no ano letivo anterior são cotados para 100% da classificação.

Recomendar Página Voltar ao Topo
Copyright 1996-2026 © Faculdade de Ciências da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z
Página gerada em: 2026-05-02 às 19:49:37 | Política de Privacidade | Política de Proteção de Dados Pessoais | Denúncias | Livro Amarelo Eletrónico