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: 2023/2024 - 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 48 162
L:CC 118 Plano estudos a partir do ano letivo 2021/22 1 - 6 48 162
L:F 1 Plano de Estudos Oficial 2 - 6 48 162
3
L:G 1 Plano estudos a partir do ano letivo 2017/18 2 - 6 48 162
3
L:IACD 124 Plano Oficial a partir do ano letivo 2021/22 1 - 6 48 162
L:M 2 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

Docência - Responsabilidades

Docente Responsabilidade
Francesco Renna Regente

Docência - Horas

Teórica: 1,71
Práticas Laboratoriais: 1,71
Tipo Docente Turmas Horas
Teórica Totais 2 3,42
Francesco Renna 3,42
Práticas Laboratoriais Totais 8 13,68
Rúben André Mota Dhanaraju 3,42
José Miguel Paiva Proença 3,42
Francesco Renna 1,71
Alberto José Rajão Barbosa 5,13

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

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 60,00
Teste 40,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

Perde a frequência o estudante que faltar a mais de 3 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.40 + T2*0.60 

Os exames de recurso, melhoria de nota e de épocas especiais são cotados para 100% da classificação.

Para serem aprovados, os alunos devem ter classificação final igual ou superior a 9,5 valores (em 20).

Para serem aprovados, os alunos devem ter nota igual ou superior a 6 valores (em 20) em cada um dos testes.

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-05-20 às 01:54:00 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias