SCC-501(Diego Raphael)
SCC0501 - Introdução à Ciência de Computação II
Professor: Diego Raphael Amancio (diego@icmc.usp.br)
Atendimento (com agendamento prévio por e-mail): segunda, das 14h às 16h
Estagiário PAE: Marcos Vinícius Campos Alves (marcos.vca@hotmail.com)
Atendimento PAE: Quarta-Feira das 21:00 as 23:00. Salas: 4-001 ou 1-116.
Índice
Programa
- Introdução de conceitos avançados em linguagem de programação estruturada.
- Análise de algoritmos: critérios de complexidade. Notação Assintótica. Análise do pior caso, melhor caso e caso médio.
- Paradigmas de Projeto de algoritmos (indução, recursividade, divisão e conquista).
- Algoritmos de ordenação (por inserção, seleção, partição) diretos e avançados.
- Algoritmos de busca (direta, seqüencial, indexada) em memória interna. Espalhamento (hashing).
Cronograma Preliminar (com datas de provas) * sujeito a alterações (atualizado em 31/07)
DATAS IMPORTANTES:
29/10 - Aula prática* (turma 1)
31/10 - Feriado
5/11 – Prova 2
7/11 – Aula prática* (turma 2)
- O exercício prático valerá +2 pontos. A entrega será considerada apenas se houver presença na turma correspondente.
Critério de avaliação
A avaliação se baseará em 3 provas, em (pelo menos) 2 trabalhos práticos obrigatórios a serem realizados durante o curso e em exercícios, valendo nota (até 1 ponto na prova).
A média final MF será dada por:
MF = 0.7 * MP + 0.3 MT, se MP e MT >= 5.0 MF = min(MP,MT), caso contrário
MP = (2 * P1 + 3 * P2 + 3 * P3) / 8 MT = média aritmética não ponderada dos trabalhos ME = valem até 1 ponto adicional na prova
Além da nota, para aprovação, a USP exige freqüência mínima de 70% nas aulas.
Slides
Introdução
Análise de Algoritmos
- 1- Análise de Algoritmos
- 2 - Análise de Algoritmos
- 2.1 - Algoritmo de Ordenação por Intercalação
- 3 - Análise de Algoritmos
Métodos de Ordenação
Métodos de Busca
Programação Dinâmica
Árvores - Este conteúdo não será cobrado em prova
Listas
- Lista 1 - Revisão Linguagem C e Recursividade
- Lista 2 - Análise de Algoritmos
- Lista 3 - Busca, Hashing e Programação Dinâmica
Trabalhos
- Trabalho I - Matrizes.
- Trabalho II - Pilha e Recursividade.
- Trabalho III - Quick-Sort Interativo
- Trabalho Substitutivo - Hashing - Data limite prorrogada para o dia 07/12/14.
Aulas Práticas
Verifique sua turma para aula prática: Distribuição da turma para as aulas práticas.. Fique sempre atento a programação das aulas conforme o cronograma.
RunCodes
**ATENÇÃO**
Todos os alunos devem ter cadastro no sistema RunCodes. Leiam atentamente as instruções para evitar futuros problemas.
NOTAS
- Provas
Lembrando que as notas dos exercícios realizados em sala, juntamente com os exercícios realizados nas aulas práticas, são adicionados a nota da prova como ponto extra. Logo: Nota = (P + Extras).
Aviso: Revisão de prova na sala 1-116 nos horários de atendimento.
Notas - Prova I Notas - Prova II Notas - Prova III
- Trabalhos:
As notas dos trabalhos são baseadas nas especificações e restrições dos trabalhos, o uso de boas práticas de programação e nos acertos dos casos de teste.
Notas - Trabalho I Notas - Trabalho II Notas - Trabalho III
- Notas Finais:
Notas - Finais
Bibliografia básica
- Ziviani, N. (2004). Projeto de Algoritmos com Implementações em Pascal e C. Editora Cengage Learning.
- Cormen, T.H.; Leiserson, C.E.; Rivest, R.L.; Stein, C. (2002). Algoritmos: Teoria e Prática. Editora Campus.
- Tenenbaum, A.M.; Langsam, Y.; Augenstein, M.J. (1995). Estruturas de Dados Usando C. Makron Books.
- Mizrahi, V.V. (2008). Treinamento em Linguagem C. Prentice Hall.