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: 2022/2023 - 2S Ícone do Moodle

Ativa? Sim
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 1 Plano de Estudos Oficial 3 - 6 56 162
L:CC 100 Plano estudos a partir do ano letivo 2021/22 1 - 6 56 162
L:F 1 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 88 Plano Oficial a partir do ano letivo 2021/22 1 - 6 56 162
L:M 0 Plano de Estudos Oficial 2 - 6 56 162
3
L:Q 0 Plano estudos a partir do ano letivo 2016/17 3 - 6 56 162

Língua de trabalho

Português

Objetivos

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.

Resultados de aprendizagem e competências

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)
     

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

Thomas H. Cormen; Introduction to algorithms. ISBN: 978-0-262-03384-8
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 (Codex). 

https://codex.dcc.fc.up.pt/cc1003/

Software

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

Tipo de avaliação

Avaliação distribuída sem exame final

Componentes de Avaliação

Designação Peso (%)
Exame 80,00
Teste 20,00
Total: 100,00

Componentes de Ocupação

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

Obtenção de frequência

Perde a frequência o estudante que faltar a mais de 4 aulas práticas dadas.

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

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.

Melhoria de classificação

Os estudantes podem melhorar a nota do exame final de acordo com os regulamentos gerais.

Recomendar Página Voltar ao Topo
Copyright 1996-2024 © Faculdade de Ciências da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2024-07-27 às 21:29:21 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias