PublicouNicholas Alberto Alterado mais de 4 anos atrás
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
7 Quais são os recursos de um computador?
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 (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.
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 coelhos por lote) Outro com n muito grande ( 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.