MC102 - Algoritmos e Programação de Computadores
Instituto de Computação
Universidade Estadual de Campinas
1º semestre de 2015
Turmas W e Y
Professor: Hélio Pedrini
Local e Horário
- Terças: 21h00 às 23h00 (sala CB01)
- Quartas: 19h00 às 21h00 (salas CC02 e CC03)
- Quintas: 19h00 às 21h00 (sala CB06)
Monitores
- Thierry Pinheiro Moreira (PED)
- Gustavo Rodrigues Galvão (PED)
- Martin Ichilevici de Oliveira (PED)
- Andre Rodrigues Oliveira (PED)
- Javier Alvaro Vargas Muñoz (PED)
- Guilherme Pereira Gribeler (PAD)
- Luiz Fernando Rodrigues da Fonseca (PAD)
- Pedro Henrique Ferreira Stringhini (PAD)
Horários de Atendimento
- Segundas:
17h às 19h na sala 304 do IC-3 (Pedro)
- Terças:
18h às 19h na sala 304 do IC-3 (Guilherme)
- Quartas:
12:30h às 13:30h na sala 304 do IC-3 (Pedro)
16h às 18h na sala 304 do IC-3 (Luiz)
18h às 19h na sala 304 do IC-3 (Pedro)
19h às 21h nas salas CC02 e CC03 do IC-3 (Thierry, Martin e Guilherme)
- Quintas:
12:30h às 13:30h na sala 304 do IC-3 (Luiz)
18h às 19h na sala 304 do IC-3 (Guilherme)
- Sextas:
12:30h às 13:30h na sala 304 do IC-3 (Luiz)
16h às 18h na sala 303 do IC-3 (Thierry)
Ementa
Conceitos básicos de organização de computadores. Construção de algoritmos e sua representação em pseudocódigo e linguagens de alto nível. Desenvolvimento sistemático e implementação de programas. Estruturação, depuração, testes e documentação de programas. Resolução de problemas.
Programa
- Organização Básica de um Ambiente Computacional
- Algoritmos e Resolução de Problemas
- Tipos de Dados
- Variáveis e Constantes
- Comandos de Atribuição
- Expressões Aritméticas, Relacionais e Lógicas
- Entrada e Saída de Dados
- Comandos Condicionais
- Comandos de Repetição
- Vetores
- Cadeias de Caracteres
- Matrizes
- Funções
- Escopo de Variáveis
- Recursão
- Algoritmos de Busca e de Ordenação
- Ponteiros e Alocação Dinâmica de Memória
- Tipos Enumerados e Registros
- Arquivos Textos e Arquivos Binários
Critérios de Avaliação
- Provas
- Prova 1: 09 de abril de 2015
- Prova 2: 21 de maio de 2015
- Prova 3: 25 de junho de 2015
- Exame: 14 de julho de 2015
- Trabalhos
Média das provas: P = (3*P1 + 3*P2 + 4*P3) / 10
Média dos trabalhos: T = média ponderada dos trabalhos (o peso de cada trabalho será divulgado em seu respectivo enunciado)
Média parcial (M):
- se P + T > 0 então M = (2*P*T) / (P+T)
- se P = T = 0 então M = 0
Exame (E): para alunos com 2,5 <= M < 5,0
Média final (F):
- se M >= 5,0 então F = M
- se M < 5,0 então F = (E + M) / 2
Se F < 5,0, o aluno será considerado reprovado na disciplina. Caso contrário, será considerado aprovado.
A ocorrência de fraude implicará média 0 (zero) na nota final do semestre para todos os envolvidos. Exemplos de fraudes são cópias ou compra de trabalhos, colas durante provas, entre outros.
Material de Apoio
- Slides
- Aula Introdutória
- História dos Computadores e Organização Básica de um Ambiente Computacional
- Variáveis, Constantes e Atribuições
- Entrada e Saída de Dados e Expressões Aritméticas
- Expressões Lógicas, Expressões Relacionais e Comandos Condicionais
- Simulação de Código e Comandos de Repetição
- Exemplos de Comandos de Repetição
- Vetores e Cadeias de Caracteres
- Matrizes
- Funções e Escopo de Variáveis
- Ponteiros
- Fundamentos de Análise de Algoritmos
- Algoritmos Básicos de Ordenação
- Algoritmos de Busca
- Tipos Enumerados, Redefinição de Tipos e Registros
- Arquivos Textos
- Arquivos Binários
- Recursão
- Força Bruta, Backtracking e Branch and Bound
- Algoritmos de Ordenação MergeSort e QuickSort
Bibliografia
- Básica
- A.M. Tenenbaum, Y. Langsam, M.J. Augenstein. Data Structures Using C. Prentice Hall, Upper Saddle River-NJ, Estados Unidos, 1990 (Tradução: Estruturas de Dados Usando C. Makron Books do Brasil Editora Ltda, São Paulo-SP, 1995).
- N. Ziviani. Projeto de Algoritmos com Implementações em Pascal e C. Editora Pioneira Editora, São Paulo-SP, 1994.
- N. Ziviani. Projeto de Algoritmos. Editora Pioneira-Thomson, São Paulo-SP, 2004.
- J.L. Szwarcfiter, L. Markenzon. Estruturas de Dados e seus Algoritmos. Editora LTC - Livros Técnicos e Científicos, Rio de Janeiro-RJ, 1994.
- B.W. Kernighan, D.M. Ritchie. The C Programming Language. Prentice-Hall, Englewood Cliffs-NJ, Estados Unidos, 1978 (Tradução: C - A Linguagem de Programação. Editora Campus, 1986).
- E. Horowitz, S. Sahni, S. Anderson-Freed. Fundamentals of Data Structures in C. Computer Science Press, 1993.
- P. Feofiloff. Algoritmos em Linguagem C. Campus-Elsevier, 2009.
- W. Celes, R. Cerqueira, J.L. Rangel. Introdução a Estruturas de Dados. Editora Campus, 2004.
- Complementar
- T.H. Cormen, C.E. Leiserson, R.L. Rivest. Introduction to Algorithms. MIT Press, Cambridge-MA, Estados Unidos, 1996 (Tradução: Algoritmos: Teoria e Prática. Editora Campus, 2002).
- R. Sedgewick. Algorithms. Addison-Wesley, Reading, Massachusetts, 1983.
- A.V. Aho, J.E. Hopcroft, J.D. Ullman. Data Structures and Algorithms. Addison-Wesley, Reading-MA, Estados Unidos, 1983.
- P.A.S. Veloso, C.S. Santos, P.A. Azeredo, A.L. Furtado. Estruturas de Dados. Editora Campus, Rio de Janeiro-RJ, 1986.
- N. Wirth. Algorithms and Data Structures. Prentice-Hall, 1986 (Tradução: Algoritmos e Estruturas de Dados. Prentice-Hall do Brasil Ltda, 1989).
Notas e Frequências