CI-1001: Programação 1
- Disciplina: CI-1001 - Programação 1
- Carga Horária (horas): teoria 30h, prática 30h, total 60h
- Pré-requisito: CI-1055 - Algoritmos e Estruturas de Dados 1
Objetivos
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.
Metodologia
- Teoria: aulas expositivas, com análise e discussão dos temas propostos.
- Prática: atividades referentes aos temas abordados nas aulas teóricas.
Avaliação
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.
Bibliografia
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 programação em C do docente.
Material sobre Shell e UNIX/Linux:
- Excelente guia de BASH.
Podem ocorrer mudanças nesta página, com a devida divulgação prévia aos alunos.