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: 2020/2021 - 1S Ícone do Moodle

Ativa? Sim
Página Web: http://piazza.com/up.pt/fall2020/cc1003
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 94 Plano de estudos a partir de 2014 1 - 6 56 162
L:F 1 Plano de Estudos Oficial 3 - 6 56 162
L:G 1 Plano estudos a partir do ano letivo 2017/18 2 - 6 56 162
3
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
MI:ERS 136 Plano Oficial desde ano letivo 2014 1 - 6 56 162
Mais informaçõesA ficha foi alterada no dia 2020-10-02.

Campos alterados: URL da página

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 semântica de constituintes fundamentais da linguagem C;
- sejam capazes de simular passo a passo a execução de pequenos programas;
- sejam capazes de escrever, testar e executar programas para para resolução de problemas simples a partir de uma especifição informal; 
- conhecer alguns algoritmos básicos (computação numérica, contagem, pesquisa, ordenação);
- adquiram competências básicas de programação estruturada.

     

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 (e.g. algoritmo de Euclides para o mdc, cálculo de potências, bisseções sucessivas para resolução de equações).

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

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 (Mooshak e Codex). 

https://mooshak.dcc.fc.up.pt/~pi/ 
https://codex.dcc.fc.up.pt/cc1003/

Software

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

Não aplicável em 2020/21.

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-09-01 às 06:59:25 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias