CI-1001: Programação 1

  • Disciplina: CI-1001 - Programação 1 - Turmas BCC5 e IBM5
  • Carga Horária (horas): teoria 30h, prática 30h, total 60h
  • Pré-requisito: CI-1055 - Algoritmos e Estruturas de Dados 1
  • Sala de aula: Laboratório PK-4 (Eng. Elétrica)
  • Monitoria: Amanda Viescinski, 2ª 15:30 e 6ª 13:30 no lab. LARSIS (térreo DINF)

Capacitar o estudante a compreender o modelo de programação dos computadores atuais e a desenvolver programas usando técnicas elementares de algoritmos e estruturas de dados sobre este modelo. Capacitar o aluno a desenvolver soluções simples e eficazes para problemas diversos que podem ser resolvidos com as técnicas elementares, sempre considerando a noção de eficiência dos códigos desenvolvidos.

FIXME cronograma em construção; os conteúdos, exercícios e projetos podem mudar.

  • 10/09 - Aula 03:
    • Lista de exercícios 1 (cont.)
  • 17/09 - Aula 05:
    • Funções (passagem de parâmetros por valor)
  • 24/09 e 26/09 - Semana Acadêmica
  • 03/10 - Aula 08:
    • exercícios com ponteiros
    • Mais exercícios (lista elaborada pela Profª Gilene B. Gomes)
  • 10/10 - Aula 10:
    • a definir
  • 22/10 - Aula 13:
    • Implementações do TAD pilha (cont)
    • Depuração de código
  • 24/10 - Aula 14:
    • Implementações do TAD fila (arquivo de teste: teste-fila.c)
      • com vetor - simples
      • com vetor - melhorado
      • com vetor - circular
  • 29/10 - Aula 15:
    • Implementações do TAD fila
      • com lista encadeada - simples
      • com lista encadeada - dupla
    • TP4 - TAD Lista (para xx/11)
  • 31/10 - Aula 16:
    • Desenvolvimento do TP4
  • 05/11 - Aula 17:
    • Desenvolvimento do TP4
  • 12/11 - Aula 19:
  • 21/11 - Aula 22:
    • Acompanhamento do projeto
  • 28/11 - Aula 24:
    • Acompanhamento do projeto
  • 12/12 - Aula 28:
    • Acompanhamento do projeto
  • 17/12 - Aula 29:
    • Defesa dos projetos
  • 19/12 - Aula 30:
    • Defesa dos projetos
  • Teoria: aulas expositivas, com análise e discussão dos temas propostos.
  • Prática: atividades referentes aos temas abordados nas aulas teóricas.

A avaliação será feita através dos projetos realizados ao longo da disciplina. Esta é uma disciplina de projeto, portanto não há exame final.

Os projetos serão avaliados de acordo com os seguintes critérios:

  • Compilar corretamente no ambiente Linux provido pelo DINF/UFPR.
  • Aderência ao padrão C99.
  • Respeito às especificações.
  • Estabilidade (deve funcionar sempre).
  • Compilar com os flags -Wall -Wextra sem erros ou avisos.
  • Análise pelo programa Valgrind sem erros.
  • Comentários adequados e suficientes no código.
  • Código legível e corretamente endentado.
  • Nomes significativos para variáveis, tipos, funções, macros e arquivos.
  • Código bem estruturado (uso de funções, vários arquivos, Makefile, uso de macros, etc).
  • Dados bem estruturados (poucas variáveis globais, uso adequado de parâmetros, arrays, structs, memória dinâmica, etc.
  • Domínio do aluno sobre o código que desenvolveu.

Básica:

  • KERNIGHAN, B., Ritchie, D., C: A Linguagem de Programação - Padrão ANSI, Editora Campus, 1989.
  • MEDINA, M., FERTIG, C., Algoritmos e Programação: teoria e prática. Novatec, 2006.
  • ZIVIANI, N., Projeto de algoritmos: com implementações em PASCAL e C. 2a. edição. Ed. Pioneira Thomson, 2004.

Complementar:

  • KNUTH, D. E., The Art of Computer Programming. Addison Wesley, 2005 .
  • SCHILDT, H., C Completo e Total. Makron Books, 1997.
  • PRINZ, P., KIRCH-PRINZ, U., C Pocket Reference. Ed. O'Reilly, 2003.

Apoio:

Material sobre Shell e UNIX/Linux:

Podem ocorrer mudanças nesta página, com a devida divulgação prévia aos alunos.
  • prog1/start.txt
  • Última modificação: 2024/10/01 15:22
  • por maziero