1 / 27

ICC2 Aula 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 em que vi, 22 pessoas tinham entregue.

Download Presentation

ICC2 Aula 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ICC2 Aula 5 Fábio Nakano

  2. 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.

  3. 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).

  4. 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

  5. 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.

  6. O que é um computador? Descrevam instâncias do objeto

  7. Quais são os recursos de um computador? Vamos classificar, no sentido OOP da palavra!

  8. Chegamos a um modelo abstrato de computador.

  9. 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).

  10. Modelo de Computação • AF (ITC) • Turing (ITC) • RAM (Von Neumann) • PRAM

  11. I o KIKo??

  12. O que queremos dos nossos programas? • Executar eficientemente • Usar bem os recursos da máquina • Resolver em tempo razoável

  13. RAM - Modelo de Von Neumann Memória Dispositivo de Entrada Processador Dispositivo de Saída

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

  15. 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!

  16. 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

  17. Tempo de execução pode ser diretamente medido • starttime=System.nanoTime(); /* java.util.* */

  18. Ordena_lote_coelho

  19. Ordena_lote_coelho

  20. Dificuldades em se usar tempo de execucão

  21. 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 (Randomrng = newRandom(); 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.

  22. 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.

  23. Resultado esperado:

  24. 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.

  25. Isso nos leva a...

  26. Análise de Algoritmos e Complexidade

  27. Complexidade Assintótica

More Related