icc2 aula 5 fábio nakano. dúvidas, perguntas precisamos da atividade prática da aula passada para...

27
ICC2 Aula 5 Fábio Nakano

Upload: internet

Post on 18-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

ICC2 Aula 5

Fábio Nakano

Page 2: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Dúvidas, perguntas

• Precisamos da atividade prática da aula passada para medir algumas coisas.

• Sobre o resumão até o momento em que vi, 22 pessoas tinham entregue.

• Os resumos são a combinação da vivência da pessoa sobre o assunto e do que achou interessante na aula. Às vezes um assunto é mencionado pq se notou sua consequencia na prática, às vezes, pq chamou atenção na aula.

Page 3: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Estrutura do texto

• Algumas pessoas optaram por resumos textuais intercalando definições, isso resulta num texto bom para ler, mas pode “esconder” conceitos e definições.

• Outros fizeram um glossário: termo, definição, o que é muito bom para o objetivo que temos.

• Algumas pessoas têm dificuldade em escrever e usam termos pouco precisos. Geralmente é consequencia da falta de algum conceito relacionado. Estas pessoas devem procurar esclarecer esses pontos com colegas ou com o professor, mas não podem deixar como está (TCC).

Page 4: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Tipificação

• Programam e têm os conceitos estruturados, estão confortáveis com os conceitos

• Programam e sabem as consequencias práticas dos conceitos, mas têm dificuldade em enunciar o conceito

• Programam em outras linguagens, sabem os conceitos, mas às vezes misturam (virtual ou friend em JAVA)

• Programam e dependem das aulas de ICC2 para firmar conceitos.

• Aprenderam a programar em ICC1, têm pouca vivência em programação, os conceitos ainda não estão arraigados. (Dúvidas, testes, consultas)

• “Aprendizado por exemplo” requer complementação

Page 5: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

A parte de programação/JAVA acabou.

• ... Quem tiver dúvidas pode perguntar!• ... De vez em quando vou passar um ou outro

comando e pedir uma ou outra implementação.

Page 6: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

O que é um computador?

Descrevam instâncias do objeto

Page 7: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Quais são os recursos de um computador?

Vamos classificar, no sentido OOP da palavra!

Page 8: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Chegamos a um modelo abstrato de computador.

Page 9: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Computador é uma máquina

• Como tal tem um conjunto de recursos• Estes recursos têm limite.• Computador é uma máquina que recebe uma

sequencia de entrada e uma sequencia bem definida de instrucoes, resultando em nova informação (ITC).

Page 10: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Modelo de Computação

• AF (ITC)• Turing (ITC)• RAM (Von Neumann)• PRAM

Page 11: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

I o KIKo??

Page 12: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

O que queremos dos nossos programas?

• Executar eficientemente• Usar bem os recursos da máquina• Resolver em tempo razoável

Page 13: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

RAM - Modelo de Von Neumann

Dispositivo de Entrada Processador

Dispositivo de

Saída

Memória

Page 14: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Considerando o modelo VN, Quais são os recursos da máquina?

Page 15: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Recursos a analisar

• Recursos limitantes sob o modelo de VN– Tempo de processamento– Memória utilizada– Tempo de acesso à memória

• Tempo de desenvolvimento não é limitante da máquina, mas do projeto. OOP ajuda nisso tb!

Page 16: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Tempo de processamento

• Depende do tipo de máquina• Do tempo de execução de cada instrução• Da qualidade do programa• Da específica instância do problema

Page 17: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Tempo de execução pode ser diretamente medido

• starttime=System.nanoTime(); /* java.util.* */

Page 18: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Ordena_lote_coelho

0 10000 20000 30000 40000 50000 600000

5000000000

10000000000

15000000000

20000000000

25000000000

Tempo de execução (ns)

Page 19: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Ordena_lote_coelho

0 10000 20000 30000 40000 50000 600000

200000000

400000000

600000000

800000000

1000000000

1200000000

1400000000

Número de comparações

Page 20: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Dificuldades em se usar tempo de execucão

Page 21: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Experimento coletivo

• Construir uma classe “criador” que “cria” coelhos, e entrega lotes de coelhos para a loja_de_coelhos

• Estes coelhos têm alturas atribuídas aleatoriamente (Random rng = new Random(); rng.nextInt() % 30)

• Na classe compara (ou nas subclasses), incluir código para contar o número de comparações.

• Dentro da classe loja_de_coelhos, implementar um método para ordenar os coelhos.

• Nesse método, armazenar, para cada ordenação feita, o tempo transcorrido, o número de comparações e a quantidade de coelhos por lote. Gravar em um arquivo texto.

Page 22: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Experimento coletivo

• Dividir a turma em grupos. Um grupo fará testes com n pequeno (de 5 a 500 coelhos por lote)

• Outro com n grande (500 a 50000 coelhos por lote)• Outro com n muito grande (50000+ coelhos por lote)• Enviar esses resultados pelo CoL, juntamente com

uma descrição da máquina (Intel Core T5340 2G de RAM, Windows Vista 64-bit) eu me encarrego de concatenar os resultados prá gente ver no que deu.

Page 23: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Resultado esperado:

Page 24: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Conclusão esperada

• Tempo de execução flutua muito e depende de máquina.

• Em algoritmos baseados em comparações, o número de comparações é proporcional ao tempo de execução.

• Numero de comparações é independente de máquina.

Page 25: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Isso nos leva a...

Page 26: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Análise de Algoritmos e Complexidade

Page 27: ICC2 Aula 5 Fábio Nakano. Dúvidas, perguntas Precisamos da atividade prática da aula passada para medir algumas coisas. Sobre o resumão até o momento

Complexidade Assintótica