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

Ativa? Sim
Página Web: http://www.dcc.fc.up.pt/~pbv/aulas/progimp
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 72 Plano de estudos a partir de 2014 1 - 6 56 162
L:F 3 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:M 3 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 115 Plano Oficial desde ano letivo 2014 1 - 6 56 162

Docência - Responsabilidades

Docente Responsabilidade
Pedro Baltazar Vasconcelos Regente

Docência - Horas

Teórica: 2,00
Práticas Laboratoriais: 2,00
Tipo Docente Turmas Horas
Teórica Totais 2 4,00
Pedro Baltazar Vasconcelos 4,00
Práticas Laboratoriais Totais 7 14,00
Pedro Baltazar Vasconcelos 6,00
Rogério Ventura Lages dos Santos Reis 4,00
Eduardo Resende Brandão Marques 4,00
Bernardo Luís Fernandes Portela 4,00

Língua de trabalho

Português

Objetivos

Introdução à programa imperativa usando a linguagem C. Estudo e implementação de estruturas de dados e algoritmos fundamentais (computação numérica, variáveis indexadas, pesquisa e ordenação). 
Introdução à utilização de ferramentas de desenvolvimento num sistema GNU/Linux: editor de texto, compilador e "debugger".
Introdução à especificação informal de componentes de programas (e.g. functions); utilização de ferramentas de testes automáticos para deteção e correção de erros em programas.


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, método de Newton para cálculo de raizes).

Variáveis indexadas. Algortimos fundamentas: contagem, pesquisa e ordenação. Cadeias de carateres.

Organização de programas: ficheiros "header", bibliotecas, compilação separada.

Deteção e correção de erros. Utilização de um "debugger" e uso de asserções.

Introdução ao programação com apontadores.

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

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.

Software

gdb - gnu debugger
gcc - gnu c compiler
GNU emacs

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

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

Componentes de Ocupação

Designação Tempo (Horas)
Frequência das aulas
Trabalho laboratorial
Total: 0,00

Obtenção de frequência

Perde a frequência o estudante que:
- faltar a mais de um terço das aulas práticas dadas;
OU
- não resolver corretamente pelo menos metade dos exercícios de práticas com correção automática.

Poderão ser dispensados da frequência das aulas práticas os estudantes em segunda inscrição que tiverem sobreposição de horário com disciplinas de outros anos. Estes estudantes devem contactar o responsável da disciplina por e-mail e expor o seu caso concreto.

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

A avaliação tem em conta as seguintes provas:

       T:   classificação do testes intermédio
       E:   classificação do exame
       F:   classificação final

      A nota final é F = T*0.20 + E*0.80 

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-2022 © 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: 2022-10-03 às 16:18:28 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias