ALGORITMOS E SUA ANÁLISE:
UMA INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO

Valdemar W. Setzer
Uma palestra/aula do projeto Embaixadores da Matemática

Departamento de Ciência da Computação, IME-USP
www.ime.usp.br/~vwsetzer – esta versão: 18/6/19

AVALIAÇÕES DE PARTICIPANTES

Nesta página encontram-se, em ordem cronológica reversa, transcrições de avaliações de participantes desta palestra, conforme escreveram no One-minute paper no fim da mesma, respondendo: [1] Coisa mais importante aprendida; [2] Maior dúvida que ficou; [3] Comentários. As transcrições são literais (sic), inclusive com erros ortográficos e de redação; as partes ilegíveis são anotadas com [?]. Minhas observações estão entre colchetes: [...]. Os originais estão à disposição para exame. As avaliações começaram a ser coletadas a partir de 3/3/17. Ver o resumo da palestra, com detalhes como endereços do artigo (com mais detalhes do que a aula) e da apresentação em ppt na internet, requisitos etc. Respostas às dúvidas e comentários expressados pelos participantes estão precedidas por RESP; infelizmente elas têm que ser breves.

7. 6/6/19 para alunos do ensino médio do Colégio Objetivo Mariporã, Mairiporã, SP, dentro do projeto Embaixadores da Matemática do IME; info: Profa. Mayra Ortega Batista Beppu, mayra-arro.ba-objetivo-mairipora.com.br

  1. [1] Aprendi que algoritmos são importantes para quem faz computação, pois serve para criar coisas novas e eficientes através de combinações numéricas. [2] Como podemos aplicar estes métodos em nosso dia-a-dia? [3] Apesar de não sentir atração pela matemática, achei interessante o andamento da palestra, principalmente pela simpatia do palestrante. RESP.: Se você tiver que ordenar muitos cartões, pode usar o método de intercalação: por exemplo, divida em dois grupos ordenados e depois intercale-os. Ou usar a construção em árvore, como fizemos na classe.
  2. [1] Comparativos novos na descoberta de algoritimos. [2] A prova formal de um algoritimo. [3] Eu amei a palestra e a oportunidade de ampliar o conhecimento. RESP.: Eu não provei formalmente nenhum dos algoritmos. Disse que se a descrição de um algoritmo tem uma certa complexidade, é difícil provar matematicamente que ele está correto, isto é, faz o que se queria que ele fizesse; mais difícil ainda é provar que ele termina para qualquer dado de entrada.
  3. [1] Aprendi o básico da computação e porque o algoritmo de log é o melhor.
  4. [1] Tive uma introdução sobre ciência da computação. [2] Fiquei curiosa sobre a prova matemática de nlogn ser melhor algoritmo. [3] Professor simpátrico e palestra bem didática. RESP.: Para considerações sobre a complexidade nlogn veja, por exemplo,
    https://medium.com/@kamyarg/comparison-sorting-algorithms-and-mystery-of-nlogn-complexity-d7e80c34876
  5. [1] Eu aprendi que ao usar a função quadrática e logoritimonos, e aprendi o que é a ciência da computação. [2] Nenhuma [3] A palestra foi ótima, me interesso mais ainda pela área.
  6. [1] Eu aprendi a importância dos algoritimo e de seus métodos das suas áreas fundamentais na ciência da computação, mostrando a eficiencia dos algoritimos. [2] Não fiquei com nenhuma dúvida, a palestra foi bem explicado e clara. [3] Gostei da palestra, eu achei ela bem produtiva, objetiva, e bem esclarecedora, a paletras tirou muitas dúvidas que eu já havia.
  7. [1] Aprendi que os altoritimos são fundamentais para usar na área da ciências da computação. [2] Fiiquei sem dúvidas. [3] Eu achei muito interessante esta palestra, proposta, sobre os algoritimos!!!
  8. [1] A aplicação da matemática na computação e a explicação de algoritimos com exemplo fáceis. [2] Como é a utilização dos algoritimos na parte mecânica do computador. [3] Me mostrou uma maneira diferente de enxergar a matemática. RESP.: Um qualquer computador, qualquer operação (como por exemplo uma soma) é feita por meio de algoritmos implementados em circuitos eletrônicos que combinam números representados com os símbolos 0 e 1.
  9. [1] Existir mais de uma forma de organizar ou números ou nomes em ordem crescente e alfabética. [2] Logaritimo. [3] Muito diferente e interessante. Parabéns pela palestra!! RESP.: Infelizmente não houve tempo para eu entrar nos detalhes dos algoritmos, como dar e explicar sua definição: se ab = c, então loga c = a. Por exemplo, 23 = 8, então log2 8 = 3.
  10. [1] Algoritmos eficientes, a importância da matemática. [2] Nenhuma. [3] Palestra bem elaborada.
  11. [1] Que a matemática é muito importante em tudo e que sem ela nada existiria. [2] Não ficou nenhuma dúvida. [3] Achei interessante a palestra, porém da segunda parte da palestra ela ficou meio enrolada. RESP.: A matemática é muito importante, mas não em tudo. Se você desenvolver uma boa inteligência sócial, como por exemplo relacionar-se com as pessoas, resolver conflitos entre pessoas, trabalhar em equipe, tudo isso não é matemático.
  12. [1] Eu aprendi os diferentes metodos de comparação. [2] A maior duvida que ficou, foi sobre como o computador compara. [3] Palestra muito longa, de resto muito boa, ótima explicação. RESP.: O computador compara dois números a e b fazendo a subtração deles e depois verificando se deu positivo (a>b), zero (a=b) ou negativo (a<b).
  13. [1] Formas de realizar as comparações (bolha, inserção e comparação); as formas de explicações do professor Valdemar deixaram mais claras de como realiza-lós. [2] A construção de um algoritmo ótimo, sobre como é realizada. [3] Uma ótima palestra, independentemente se gostam ou não de matemática. RESP.: O 3º método é o da seleção – todos usam comparação. Em geral desenvolve-se um algoritmo e depois se verifica se ele é ótimo, isto é, se não pode haver algum mais eficiente.
  14. [1] Aprendi o quê é um algoritimo, e também, aprendi como funciona um. [2] Por que os programadores dos maiores programas do mundo não provam que seus algoritimos estão corretos? [3] Ótima palestra, pude aprender um pouco sobre algoritimos, por mais superficial que seja. RESP.: Como eu disse, é dificílimo provar magtematicamente que um algoritmo está correto, isto é, que executa o que se deseja.
  15. [1] Aprendi que a matematica pode ser interessante mesmo não gostando dela. [2] E de como aprender de uma forma mais simples. [3] Nenhum.
  16. [1] Eu aprendi bastante coisa legal relacionado aos algarismos. [2] Não tenho duvidas [3] Adorei a palestra.
  17. [1] Aprendi os métodos dos algorítimos. [2] Fiquei com dúvida na equação que tem o n. [3] O senhor é muito simpático. Obrigada pela palestra. RESP.: Não entendi a pergunta. Estude a apresentação da palestra em Power Point:
    www.ime.usp.br/~vwsetzer/apresentacoes/algoritmos.pps
    Ou o artigo
    www.ime.usp.br/~vwsetzer/alg/algoritmos.html
  18. [1] Algoritimos e como ele se forma, nas possibilidades dele ser um P.A. [2] Sobre a árvore de algorítimos, o uso dela. [3] Eu achei a palestra muito interessantes, principalmente a parte sobre a computação. RESP.: Reveja com cuidado a apresentação.
  19. [1] Que o uso da tecnologia não é mais poderoso que o Homem, é apenas uma extensão do nosso poder. [3] Ótima aula, muito compreensiva. RESP.: Em alguns aspectos restritos, a tecnologia é mais poderosa que os ser humano, por exemplo em velocidade e exatidão de cálculos.
  20. [1] Aprendi que a analise quadratica é muito ineficiente se comparada a base em log, para arquivar as informações. RESP.: Atenção, a complexidade de arquivamento de informações é de O(n), a velocidade de inserção dos dados na máquina. O que examinamos é foi a ordenação.
  21. [1] Nesta palestra, levei como principal ensinamento a importância das linguagens de algoritmos na sociedade e no mundo. [2] Quais diferenças, na questão dos algorismos, entre as linguagens C+, Pascal, Python e etc.? [3] Gostei muito da palestra e aprendi muito. RESP.: As linguagens aceitas pelos computadores são linguagens de programação; os comandos expressos nelas são traduzidos para a linguagem da máquina (que usa representação binária) por um programa especial chamado Compilador. Todas as linguagens que você citou são linguagens algorítmicas, próprias para se descrever algoritmos para poder fazer o computador executá-los. Pascal é a mais simples; C++ foi uma derivação da C, que era bem voltada para a máquina, e Python é mais moderna e muito usada hoje em dia, veja por exemplo
    www.ime.usp.br/~vwsetzer/python-opers-funcoes.html
  22. [1] Aprendi que a organização de dados e um algarítimo eficiente é importante. [2] Não me restou dúvida. [3] Achei a palestra muito interessante e técnica. O palestrante demonstrou dominio do assunto e passou as informações muito bem.
  23. [1] O que de mais importante que aprendi foi a base do funcionamento de um computador e tive mais noção sobre a ideia de algoritmo, como funciona, suas maneiras e suas aplicações no cotidiano. [3] A palestra foi muito produtiva, e trouxe uma explicação mais detalhada de um tema que na escola não é trabalhado com tanto aprofundamento. Esse projeto de ir em escolas e dar palestras deve ir adiante e alcançar muito mais escolas.
  24. [1] Combinações binárias e introdução às logicas dos algoritimos. [3] Ótima palestra. Explicação simples porém concreta.
  25. [1] A organização da aula e a curiosidade. [2] Tive muitas duvidas em relação a o jogo das cartela. [3] Gostei muito dessa aula que tirou muita duvidas que eu tinha sobre Matematica. RESP.: Provavelmente você se refere à construção da árvore binária. Tente estudar a apresentação em power point e o artigo já citados em uma avalição anterior, talvez suas dúvidas sejam esclarecidas.
  26. [1] Organização de algorítimos. [2] Sobre a origem da formula nlogn. [3] Agradeço a palestra, conteudo muito importante para quem é usuário constante da tecnologia. RESP.: Veja a apresentação em ppt e o artigo.
  27. [1] A base para o estudo dos algoritmos e sua aplicação nas ciências da computação. [2] Não me restaram dúvidas, tudo foi muito bem explicado. [3] Boa dinâmica da palestra, não ficou nem uma ponta solta, prendeu muito a atenção.
  28. [1] A base para estudos de algoritmos e a aplicação na ciência de computação. [2] A formação da progressão aritmética e a utilidade dos logaritmos na resolução de algoritmos. [3] Boa dinâmica na palestra. RESP.: a P.A. apareceu ao somarmos os números de comparações em cada passada: (n-1)+(n-2)+(n-3)+ ... + 3 + 2 + 1, que é uma P.A. de diferença 1, cujo resultado é n(n-1)/2.
  29. [1] A questão relacionada a informatica, para especificar muitos termos que sempre uzei errado em [?] o computação. [2] Logaritimos. [3] Sem comentários. RESP.: não pensei que tantos de vocês não dominassem os logaritmos. Na próxima vez que darei essa palestra vou me deter sobre eles.
  30. [1] Que a computação vai muito além de só usar um computador. [2] Não me restaram dúvidas. [3] Palestra muito interessante! Muito bom ter tido palestra com um professor da USP.
  31. [1] Como funciona os algoritmos, sua importância e o que é. [2] Não ficou nenhuma dúvida. [3] Gostei da palestra, o Valdemar explica bem de forma que a palestra não ficou chata e sim interessante.
  32. [1] Como ordenar os algorítimos em ordem crescente e diminuir o uso do celular. [2] A parte que usava logarítimo. [3] A palestra é muito boa e envolvente, recomendo! RESP.: Para esclarecer como apareceram os logaritmos, veja a apresentação em ppt e o artigo.
  33. [1] Aprendi o que é e como funciona os algoritmos. [2] Nenhuma. [3] A palestra foi muito boa, aprendi varias coisas, a palestra foi muito interessante e o Valdemar é super simpático e atencioso.
  34. [1] Aprendi como o sistema do computador funciona e o que é uma algoritimo. [2] Minha maior dúvida e como foi usada a progressa aritimética. [3] A palestra foi dinâmica e despertou a curiosidade sobre como funciona melhor um computador e sobre a matemática. RESP. Veja acima o que escrevi sobre a P.A.
  35. [1] O mais importante foi saber comparar os números e conhecer o aoguritimo. [2] Saber como o computas calculava as contas, e dividir as coisas. Ordenar os números e as letras. Minha duvida foi por que uma receita de bolo ou concertar o carro não é alguritimo. [3] Foi umaa palestra boa, entendi algumas coisas de matemática e o professor é muito legal. RESP.: Um algoritmo é uma sequência finita de instruções de como manipular símbolos, sendo que cada instrução deve ser matematicamente bem definida. Nas receitas de cozinha, nada é matemático. Mesmo se constar "10 g de açúcar", isso não é matematicamente bem definido, pois qualquer medida física é aproximada, e nunca exata. De maneira análoga para trocar um pneu de um carro, que foi o exemplo dado na palestra.
  36. [1] Aprendi de forma mais dinâmica e interessante, como funciona o computador, a importância do logaritimo e seus métodos. [2] A minha maior dúvida foram as fórmulas e como elas são aplicadas, formar par (?), etc. e progressão aritmética. [3] Palestra dinâmica e que desperta curiosidade para outros temas. RESP.: Tente estudar a apresentação da palestra e o artigo.
  37. [1] O que é um algoritmo e suas funções. [2] A formação da P.A. [3] Uma palestra muito interessante, com uma explicação bem clara. RESP.: Idem.
  38. [1] Os fundamentos do Algoritimo. [2] A parte que usava o Logaritimo. [3] A palestra foi muito boa, além de descobrir as funções de um logaritimo. RESP.: Idem.
  39. [1] Com a palestra descobrimos sobre o sistema binário do computador e como essa sequência de números funciona. [2] Descobertas de algoritimos eficientes. [3] Achei interessante. RESP.: Para se descobrir um algoritmo, é necessário ter criatividade matemática e também computacional.
  40. [1] O que é algarismo? --> É um tipo de representação numérica usada em combinações para representar números em sistema. [2] Existe algum meio de descobrir um algarismo especifico em um serto sistema. [3] Muito boa a palestra, só que eu acho que deveria parar de deixar a gente com curiosidade sobre outra palestras. RESP.: Sinto muito, não compreendi a pergunta. Qualquer sistema numérico ou alfabético usa um número finito de símbolos (p. ex., 10 algarismos no sistema decimal – 0 a 9 –, ou as 26 letras do alfabeto latino).
(A continuar)

6. 24/5/19, para alunos do ensino médio do Colégio Visconde de Porto Seguro, Vale do Itamaracá, Valinhos, SP, dentro do projeto Embaixadores da Matemática do IME; info: Prof. Osmar Mantovani omantovani atar.rob portoseguro.org.br

  1. [1] Metodos mais eficientes de comparação, como a arvore binária. [2] Como o metodo de Hashing é realizado. RESP.: O método de hashing usa em geral uma divisão por um número primo e o resto é o endereço do dado procurado, formando-se uma cadeia quando existe coincidências de endereço. Mas isso não serve para a ordenação.
  2. [1] Eu não sabia exatamente o que era algoritimo e como funciona. [2] Nenhuma dúvida. [3] Gostei muito das dinâmicas.
  3. [1] Não fazia ideia doque era um algorítimo muito menos como funcionava. [2] Sem dúvidas. [3] Gostei das formas didáticas com as quais você nos passou o conteúdo.
  4. [1] Algoritmo são processos matematicamente descritos. [2] Árvore binária. [3] Muito boa a palestra, só ficou confuso o final sobre a árvore binária. RESP.: Uma árvore binária é uma estrutura de nós; de cada nó liga-se apenas a um nó ascendente e a dois descendentes.
  5. [1] Estilos de ordenação mais rápidos. [2] Como transformar algoritimo em codigos de programação. RESP.: É preciso transformar os comandos do algoritmo nos comando de uma linguagem de programação. Veja com cuidado o exemplo que coloquei na apresentação.
  6. [1] aprendi a lógica dos algoritmos. [2] começou a complicar quando começaram as fórmulas matemáticas. RESP.: Infezlimente tive que ser muito breve.
  7. [1] Através de determinadas funções, é possível chegar em um resultado mais fácil, e também aprendi novos métodos de ordenação. [2] Como criar uma função. [3] Achei a palestra interessante, tanto pelo conteudo, quanto pela interatividade. RESP.: Uma função matemática exprime matematicamente o que deve ser feito com os dados que ela usa. Por exemplo, a função "quadrado de um número" é calculada multiplicando-se um número por ele próprio.
  8. [1] Como ordenar números de modo mais fácil. [2] Como programar isso no computador. [3] Pretendo me envolver mais nesse ramo! Adorei a palestra!! RESP.: Sobre a codificação de um algoritmo sob a forma de um programa, veja o exemplo da apresentação. Infelizmente tive que ser breve e não entrei em detalhes; mas acho que examinando cuidadosamente você compreenderá cada comando do exemplo que dei.
  9. [1] Como funciona um algoritmo. [2] Se existe uma forma de organização mais eficiente que nlog(n) por comparação. RESP.: Por comparação, não. Isso pode ser provado matematicamente.
  10. [1] Qual a maneira correta de fazer uma programação. [2] A utilização do P.A. RESP.: Uma progressão aritmética é uma sequência de números em que a diferença entre dois consecutivos é sempre constante. No caso, usamos uma P.A. de diferença 1 (1, 2, 3, ..., n-1) e calculamos a soma dos seus elementos
  11. [1] Aprendi que um algoritmo precisa se comprovar matematicamente. [2] Nenhuma, explicou bem tudo. [3] Gostei dos exemplos que deu.
  12. [1] O significado de Algoritmo e formas de Organização por Comparação. [2] É possível uma forma de organização mais eficiente que n.logn mesmo que não seja por comparação. [3] Obrigado por avisar do projeto dos embaixadores da matemática, não tinha conhecimento. RESP.: Sim, eu mostrei uma: reservando-se um número de espaços consecutivos igual à diferença entre o maior e o menor dado. O resultado é uma ordenação de complexidade O(n) (o tempo de entrada dos dados no computador). Mas isso é muito ineficiente no uso do espaço, quando existem trechos de dados sem numeração consecutiva.
  13. [1] Em ciência da computação é necessário encontrar o melhor algoritmo, o mais eficiente para resolver um problema. [2] Os diferentes métodos de ordenação não ficaram muito claros. [3] Ótima palestra, muito esclarecedora. RESP.: Reveja a apresentação, acho que ela é bem clara.
  14. [Prof.][1] Cálculo da complexidade dos algoritmos de ordenação e a interpretação da comparação entre eles. (Quadrático x intercalação binária.) [2] Creio que a dedução da fórmula de complexidade n.logn pode ter sido feito de forma muito rápida para os alunos poderem absorver. [3] Talvez pedir para que os alunos deduzem as fórmulas de complexidade. Talvez ilustrar as aplicações dos algoritmos de busca em ferramentas que os alunos conhecem. Word, google, etc. RESP.: Sim, foi rápido demais. Eu não tinha muito tempo para ir mais devagar.
  15. [1] O algoritmo exige um metodo matemático. [2] Quais criterios de avaliação da eficiência algoritmica, sei que existe uma lei para velocidade mas ela é diretamente proporcional ao número de passos. [3] Adorei, talvez explicar mais historia de algoritmos é algo que me interessa. RESP.: Eu usei como critério de complexidade o número de comparações. O número de passos não muda a complexidade daqueles algoritmos. Por exemplo, os de ordem O(n2) continuam com essa complexidade se se considerar os número de passos.
  16. [1] Exercício de concentração 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, ..., 3, 2, 1, 0, 100, 99, ,,, (em vermelho). [2] O que significa o "W" em Valdemar W. Setzer? [3] Foi legal; podia ser um pouco mais breve. RESP.: De onde você tirou esse exercício, que eu inventei (com o mostrador e a fala interior do número)? De um artigo meu? W. era o sobrenome de minha mãe. Meu avô materno só teve 2 filhas, e minha mãe quis que o seu sobrenome subsistisse ainda mais alguns anos...
  17. [1] O que é algorítimo. [2] Como esses algorítimos se transmitem para o computador. RESP.: Veja o exemplo que está na apresentação.

5. 10/10/18, na disciplina MAP-2003 "Panoramas da Matemática" do IME-USP, oferecida para alunos de toda a USP, no Instituto de Matemática e Estatística, Cidade Universitária, São Paulo, dentro do projeto Embaixadores da Matemática do IME; info: prof. Eduardo Colli colli.eduardo.sinal_at gmail.com

(Lista parcial)

  1. [1] Talvez a mensagem mais importante deixada pelo professor é que o computador é uma máquina que processa dados e que trabalha em benefício de quem o utiliza. Antes de utilizá-lo, é preciso planejar métodos e abordagem de manipular esses dados por meio de algoritmos. [2] Dentro da proposta de aula oferecida pelo professor, creio que não houve dúvidas; a pauta da apresentação ficou clara e inteiramente cumprida. [3] Professor muito animado e dominador do tema. A aula foi dinâmica e divertida. RESP.: É importante também saber que um dado é, segundo minha definição, uma representação simbólica de algo quantificado ou quantificável (uma foto pode ser quantificada e depois reproduzida sem perda de detalhes). Quanto à minha animação, eu procuro entusiasmar-me sinceramente pela matéria e pela maneira de expô-la, e isso acaba sendo transmitindo aos alunos. É uma técnica didática. Como eu disse, computador só processa dados, não processa informações. Na minha conceituação, um dado só pode ser absorvido como informação, isto é, ser compreendido, por um ser humano. Veja meu artigo
    https://www.ime.usp.br/~vwsetzer/dado-info.html
  2. [1] A ciência da computação não depende do computador para existir, e sim dos algoritmos. [2] Como tornar a matemática e a computação atraentes no ensino médio para alunos que, a princípio, não se interessam? RESP.: Sim, a ciência da computação é essencialmente a ciência de elaborar e analisar algoritmos e é uma ciência matemática. A introdução de um algoritmo em um computador constitui a parte final, a de codificação do algoritmo em uma linguagem de programação. Isso é importante, mas não é o essencial. Eu acho que, idealmente, a idade mínima para que um adolescente use um computador deveria ser de 17 anos. Isso foi fruto de muito estudo sobre o desenvolvimento dos jovens. Por exemplo, é preciso muita maturidade para se usar essa máquina, e não ser dominado por ela (como está acontecendo com a internet, inclusive com adultos - mas isso é uma outra palestra, he he he!).
  3. [1] Aprendi alguns métodos de organização, e que o algoritmo é a base mais importante da computação. [2] A transformação da lógica matemática em um assunto interessante aos alunos de ensino médio e fazê-los terem curiosidade sobre ciência da computação. [3] Sempre tive curiosidade em como iniciou o processo de criação da ciência da computação. Em como se chegaram à conclusão de unir algoritmos em máquinas. RESP.: Em termos pedagógicos, ensinar algo de ciência da computação para adolescentes não é uma tarefa fácil, pois eles gostam é de se divertir com os computadores, e têm dificuldade de encará-los seriamente. Como eu expus, algoritmos já existiam desde a antiguidade; pode-se dizer que já constituíam a ciência da computação... A implementação de algoritmos em máquinas começou com operações aritméticas simples, para acelerar seu cálculo.
  4. [1] Tudo foi importante. [3] Seria interessante a indicação de alguma bibliografia para quem quiser aprender mais, nesse sentido menos técnico, mais qualitativo, como foi apresentado na aula. RESP.: O conteúdo da palestra está em um artigo que publiquei na Revista do Professor de Matemática, disponível em
    https://www.ime.usp.br/~vwsetzer/alg/algoritmos.html
    Eu citei-o na página de título da palestra.
  5. [1] Qual o melhor algoritmo por comparação? [2] Não tive dúvidas.
  6. [1] Aprendi sobre algoritmos: o que são e vários exemplos de algoritmos de ordenação. Também entendi as noções de complexidade assintóticas para avaliar algoritmos. [2] Tive curiosidade em saber como funciona o hashing um pouco mais a fundo. Mas a título de curiosidade. [3] Ótima aula! Muito bem explicado e exemplificado. RESP.: Houve várias perguntas sobre métodos de hashing. Na verdade, eles não são usados para ordenação, mas para acesso a dados. Por exemplo, quer-se localizar os dados de cada pessoa partindo de seu CPF. Toma-se um número primo p, divide-se cada CPF por p, e se acha o resto r da divisão (r = CPF "módulo" p). Esse resto r será o endereço inicial onde está p. Como vários CPFs darão o mesmo r, faz-ze uma ligação entre um CPF com esse resto r com o próximo CPFcom o mesmo r. Isto é, ao lado de um CPF há o endereço do próximo CPF com o mesmo r. Dessa maneira acelera-se enormemente a busca, em geral ela torna-se linear. Mas com isso não se obtém uma ordenção dos dados, e sim uma acerleração na busca.
  7. [1] A existência de algoritmos de ordenação que não envolvem comparação. [2] Sobre o funcionamento do hashing tive uma base de "hash table" no curso de "computação para automação", e acredito que a estratégia de alocação poderia ser mais trabalhado. [3] O senhor é um ótimo professor! RESP.: Infelizmente não tenho tempo para cobrir tudo o que é interessante na computação!
  8. [1] Aprendi vários métodos de ordenar. [2] O método de nlogn. [3] Gostei de ver outra área de matemática e como aumentar eficiência através de diferentes métodos. RESP.: Estude o meu artigo referido acima, que você entenderá todos os passos para chegar ao nlogn.
  9. [1] O mais importante foi entender a base binária. [2] Não tenho dúvidas. [3] Gostei bastante da aula e as dúvidas foram tiradas, muito bom usar exemplos para explicar a teoria. RESP.: Você se refere ao fato de os computadores serem binários? Com o exemplo do interruptor acendendo e apagando as luzes, tentei mostra que a representação de qualquer numero em uma forma binária dava muito maior confiabilidade no funcionamento (detectar se é um símbolo (como o 0, por exemplo) ou o outro (1) que está gravado), aumentava muito a rapidez, pela simplificação dos circuitos. Quanto aos exemplos, quero deixar claro uma técnica didática que considero fundamental: primeiro dar exercícios sobre um assunto, e depois dar a teoria. Dessa maneira a teoria faz sentido.
  10. [1] Para mim, fiquei com a sensação de que comecei a entender o que acontece "dentro do computador". [2] O que vem depois desse primeiro entendimento. Nunca havia tido contato com programação. [3] Só gostaria de agradecer! RESP.: Depois de formular um algoritmo, é necessário programá-lo em uma linguagem de programação, para que possa ser introduzido em um computador e traduzido para a linguagem mais básica, a "linguagem de máquina".
  11. [1] Aprendi a diferenciar dados de informações, que algoritmos vão além de uma receita (devem ser matematicamente exatos), e que há métodos mais ou menos eficientes para organização de dados. [2] Por estar desabituado às exatas, me é sempre mais difícil acompanhar os conceitos de exatas. [3] Deixarei apenas agradecimentos pela didática e pelo esforço em trazer, de forma didática, conceitos da computação não só a nós, mas a alunos de escolas do ensino médio.
  12. [1] O método de ordenação por intercalação binária. [2] O metodo de hashing. [3] Bom método de transmitir informação. RESP.: Veja algo sobre o método de "hashing" acima.
  13. [1] A introdução de métodos que não dependem de comparação, pois são extremamente eficientes, demorando apenas o tempo de leitura. [2] Nós estudamos os métodos binários... Se... Os métodos fossem ternários o tempo de processamento (eficiência) seria menor/melhor? [3] Computadores "quânticos" são muitas vezes mais eficientes que os convencionais. Por que? RESP.: sim, mas a ordem da complexidade da ordenação por comparação continua a mesma, sempre nlogn. Por exemplo, pode-se ter nlog3n, isto é, de grau 3. Existe um método, chamado de "árvore B", muito usado em bancos de dados, em que se constroem árvores de graus muito grandes, como por exemplo de 50 a 100. Nesse caso cada nó contém, ordenados, pelo menos 50 valores e no máximo 100. Como em geral cada nó tem espaço vazio, não é necessário reorganizar a árvore a cada inserção ou eliminação de um dado. Dentro de cada nó, os dados ficam sempre ordenados. Esse método vale para armazenamento em discos magnéticos. A eliminação dos discos magnéticos vai exigir outra forma de armazenamento.
  14. [1] A definição de ciência da computação, assim como a definição de algoritmo, e o que não é considerado algoritmo. [2] Embora tenha ficado claro como caracterizar a eficiência de um algoritmo, não acho que entendi como caracterizar por espaço requerido. [3] Gostei dos exemplos usados em sala, envolvendo voluntários, assim como o exercício em trios para melhor entender o funcionamento de algoritmos. RESP.: Eu mostrei que numa árvore binária completa com n folhas, o número total de nós (ou de dados armazenados) é 2*n-1. Mas mostrei que para ordenar dados, na verdade são necessários apenas n posições de 'memória'. Essa é a complexidade do espaço requerido.
  15. [1] Como não estudei muito aprofundado sobre o algoritmo, não conhecia o algoritmo de hashing. Irei dar uma estudada em casa. [2] Não fiquei com dúvidas, pois já conhecia o tema. [3] Obrigada pela palestra maravilhosa! Adorei quando o senhor mostrou todos os passos para deixar em ordem os números e para contar a quantidade de comparações etc.
  16. [1] Nem todo conjunto de instruções pode ser considerado um algoritmo. [2] O funcionamento do critério nlogn. [3] Comentar sobre desafios recentes da área. RESP.: Sim, algoritmo é uma sequência de instruções matematicamente bem definias, e cuja execução, termo a termo da sequência, deve terminar para qualquer dado de entrada.
  17. [1] Que não basta realizar um algoritmo que atenda a necessidade do problema, mas sim realizar do melhor modo possível, pensando em tempo e espaço gastos. É de extrema importância saber o que está por trás do código. [2] Acho que não ficaram dúvidas. [3] Amei a didática do palestrante e a maneira como foi passado com simplicidade algo que se pode tornar muito complexo.
  18. [1] Nunca havia pensado em como a organização de algoritmos afeta a computação. Gostei da interatividade e da descoberta de diferentes métodos de organização de algoritmos. [2] Não entendi muito bem o método de organização que não usa comparação. [3] Gostei bastante da aula e o ponto forte, sem dúvida, é a interatividade, que deu uma dinâmica bastante agradável e interessante. RESP.: Suponha que você tem os dados 0, 1, 2, ..., 20 e que estão embaralhados (na verdade, esse é o índice, ao lado dele deve-se guardar os outros dados - por exemplo, se esses forem os números de pessoas, ao lada do cada número armazenado devem estar os dados completos de cada pessoa, como nome, sobrenome, endereço etc. Para ordenar esse 20, pode-se escrever no chão os números de 0 a 20. Para os dados de uma pessoa, digamos, nome, endereço etc., coloca-se o seu índice em um cartão onde há todos os outros dados. Pegam-se os cartões desordenados, e coloca-se cada cartão na posição correspondente ao seu índice, isto é, o de índice 0 cai na posição 0, o de índice 2 na posição 1 etc. Com isso, não há comparação entre os dados, e a complexidade é o número de cartões.
  19. [1] Os diferentes métodos de ordenação e suas complexidades. [2] Nenhuma dúvida. [3] Muito legal a dinâmica em grupos.
  20. [1] Existem vários modos de ordenação e dentre eles existem os mais eficientes. Há a preocupação de eficiência, não basta programar. [2] Nenhuma. [3] Achei interessante o modo interativo da aula. Quando os alunos participam, melhora a compreensão do assunto e desperta mais interesse. Gostei dos comentários sobre deep learning e singularidade. RESP.: Sim, é preciso compreender e desmistificar esses dois conceitos, e ter muito cuidado na aplicação de algoritmos do primeiro, especialmente na substituição de decisões humanas – computadores não tomam decisões, fazem escolhas lógicas, mas nem tudo é lógico nesse mundo, por exemplo nossas sensações e sentimentos, bases para o relacionamento social.
  21. [1] Aprendi sobre o método mais eficiente de organizar itens a partir de uma determinada regra. Para números muito grandes nlogn é muito mais eficiente que n^2 e é algo muito importante em estudos mais avançados. Em certas áreas da ciência a eficiência de um programa é extremamente importante. [2] Não entendi muito bem a dedução de nlogn. Me perdi um pouco nesta parte. [3] Acho que a aula pode ter sido um pouco pesada para alunos que não são de exatas e que nunca trabalharam com computação. RESP.: Leia o meu artigo citado acima.
  22. [1] Acredito que o conteúdo mais importante foi aprender o que é um algoritmo, a necessidade de ser matematicamente bem definido, os métodos (seleção, da bolha, inserção). [2] A minha maior dúvida foi em: onde está o erro que o professor mencionou? E além disso, não entendi muito bem a prova do algoritmo ser ótimo, só entendi em partes. [3] Achei as atividades "interativas" extremamente interessantes, atraiu muito mais a minha atenção e me ajudou a compreender os conceitos abordos na aula. RESP.: Eu disse que um algoritmo de ordenação com complexidade nlogn é ótimo, pois não se consegue complexidade menor. Mas não provei. Intuitivamente, é necessário fazer uma comparação entre cada 2 elementos; o importante é eliminar certas comparações, sabendo-se que uma parte dos dados já está ordenada.
  23. [1] Há diferentes formas de analisar algoritmos, e regras para realmente ser um algoritmo. A parte mais interessante é saber formas de se organizar e comparar, existem diversas formas disso. [2] Você disse que não poderia memorizar dados, mas armazenar os dados pode? RESP.: O que eu disse é que não sabemos como nossa memória funciona. Por exemplo, não se sabe como o '2' está armazenado, onde e como se tem acesso a ele. Por isso, a unidade de armaze namento central de um computador não deveria ter sido chamada de memória, e sim como era antigamante, "unidade central de armazenamento". Chamar a unidade de armazenamento do computador de "memória" é elevar a máquina ao nosso nível, isto é, degrada-se o ser humano, que passa a ser encarado como máquina.
  24. [1] A introdução do método de hashing para otimizar certos algoritmos. [2] Nenhuma. [3] Para ensinar para os alunos brasileiros, existe uma linguagem de programação chamada Pascalzim. Basicamente esta é um Pascal traduzido. Eu recomendo pois nessa linguagem foi onde eu comecei. RESP.: Não acho que vale a pena traduzir uma linguagem de programação, pois o maior problema é desenvolver e escrever os algoritmos, e isso deve ser feito fora dessas linguagens. Acontece que o número de "palavras reservadas" de uma linguagem de programação (isto é, não podem ser usadas além de especificarem certos comandos, por exemplo como nomes de variáveis ou arquivos) é em geral bem baixo, e é muito fácil decorá-los. Em um curso de introdução à computação, não são usados funções e módulos do sistema da linguagem, onde hoje ocorrem a maior parte dos nomes ("identificadores"), de modo que o fundamental é aprender os poucos comandos básicos (como os que usei no exemplo na linguagem em Pascal, veja na apresentação). Há uma vantagem em se usar essas linguagens em inglês: dando-se nomes às variáveis em português, em um programa eles ficam claramente distintos dos nomes dos comandos.
  25. [1] Mensurar eficiência no algoritmo. [2] Como colocar um valor no lugar certo pelo algoritmo de hashing sem fazer comparações. [3] Bem organizado, mas um exemplo do "hashing" seria bom para visualizar o método. RESP.: Veja os comentários sobre hashing acima, inclusive que esse método não é usado para ordenação, mas para busca. Infelizmente não havia tempo para abordar todos os tópicos que poderiam ser cobertos. Algoritmos de busca compõem um outro assunto. RESP.: Sobre hashing, não confundir com a ordenação colocando-se cada elemento em uma posição com seu número, como foi descrito acima. Hashing não é usado para ordenação.
  26. [1] A maior ordem de um método de comparação é nlogn. [2] O método de hashing. [3] Muitos assuntos estavam interessantes foram interrompidos com a frase "isso é outra palestra." RESP.: A menor complexidade de um método de ordenação por comparações é que é da ordem de nlogn. Tive que me ater ao tema principal. Eu quis incentivá-los a assistir outras palestras minhas...
  27. [1] O que considerei mais impotante, dado que eu já havia feito disciplinas básicas na área de computação - e, portanto, já conhecia os métodos de ordenação discutidos em sala -, foi o comentário ao fim da aula, de que existe um campo de estudos a respeito da "veracidade" (se ele "faz realmente" o que se propõe a fazer) de um algoritmo. [2] Minha dúvida coincide com aquela também apresentada ao fim: qual será o efeito da "algoritmização" do mundo? RESP.: A prova formal de que um algoritmo estar correto chama-se a prova da "corretude" do mesmo. Em minha opinião, a algoritmização do mundo diminuirá a condição humana, e poderá trazer grandes perigos. Aliás, isso já está acontecendo com a algoritmização das comunicações, que é a Internet: nunca houve tantas fake news, tanto bullying, tanto vício e a ânsia de se distrair, só para citar alguns dos graves problemas.
  28. [1] Princípios de programação para algoritmos de comparação/ordenação. [2] Como evoluiu a ciência da computação e quais são os principais desafios. [3] Disciplina deveria ser obrigatória para o primeiro semestre de vários cursos não só da área de exatas. RESP.: Penso que o maior desafio será colocar a computação em um lugar benéfico e não maléfico para a humanidade. O resto é técnica.
  29. [1] Otimização/algoritmos/cálculo de passos de algoritmos. [2] Se o número de nós (na simulação das pessoas) precisa estar na base 2. Por que falando, pareceu que não, mas nas contas pareceu que sim, para ser possível executar o algoritmo. [3] Muito bom, vi algoritmos de uma maneira bem diferente. Na matéria de computação que tive nós simplesmente começamos a aprender sem ver esse geral dos algoritmos e os algoritmos acabavam se tornando parte do que fazíamos. RESP.: Você provavelmente quis perguntar se o número de objetos a serem ordenados deve ser uma potência de 2. No nosso caso, era, o 8. Não, não é necessário. Por exemplo, pode-se completar o número de objetos com objetos fictícios até completar uma potência de 2. Por exemplo, suponha que se deseja ordenar 13 números. Nesse caso, adiciona-se a essa sequência mais 3 com um número maior do que o maior dos 13, que pode ser considerado como um "infinito", completando assim 16 = 24. Quanto ao ensino, um método didático fundamental é sempre que possível começar com aplicações práticas, para depois expor a teoria, pois assim essa última faz sentido. Como se ensina comumente matemática superior? "Definição, definição, definição, lema, lema, teorema", em seguida "Definição, definição, definição, lema, lema, teorema" e assim por diante; quando os alunos estão dormindo pois não conseguem se ligar a tanta abstração, o professor dá algumas aplicações...
  30. [1] Existem vários métodos para se resolver um problema, onde alguns deles são mais eficientes que outros. [2] Na simulação das pessoas, foi generalizado para "m". Esse m pode ser qualquer número natural? [3] Gostei muito da aula e da interação com a classe (eu gosto muito de computação). RESP.: Usei o m para a altura da árvore. Talvez você queria se referir ao número de objetos a serem ordenados. Veja a reposta anterior.
  31. [1] Recordei a beleza da ciência da computação. Estou no último ano do BCC e me sinto entusiasmado com o conteúdo apresentado. [2] Fiquei em dúvida sobre a afirmação do professor sobre a beleza do Pascal. A razão de linguagens como Python terem mais funções não aumenta a eficiência devido a muito já estar implementado, e facilita a legibilidade do código? [3] Gostei da palestra, apresentando exercícios para facilitar o entendimento. RESP.: Acho que eu não disse nada sobre a "beleza" da linguagem Pascal. Eu disse que ela tinha sido desenvolvida para ensinar computação, e por isso é bastante simples. Mas há vantagens nessa linguagem. Por exemplo na linguagem C não se pode declarar uma função dentro de outra (funções encaixadas), origem da noção de herança em linguagens de programação (na verdae, esse conceito começou com a linguagem ALGOL em 1960.
  32. [1] Achei que aprender o processo de como se encontra o algoritmo mais eficiente a partir de um modelo inicial foi muito importante. Geralmente recebemos resultados prontos e não desenvolvemos tanto nosso raciocínio, como fizemos na aula de hoje. [2] Como o que aprendemos na aula é aplicado na computação. [3] Gostei muito do modelo de aula participativo. RESP.: Como eu disse na aula, programas que fazem ordenações são extremamente comuns; dei como exemplo o Windows Explorer, onde se pode ordenar a lista de arquivos pelo nome de cada arquivo, pela data em que cada um foi armazenado etc. Sempre que se aciona a ordenação, uma rotina de ordenação como as que vimos é executada. Para poucos dados, em geral usam-se os métodos quadráticos.
  33. [1] Aprendi que o termo "informática" é usado equivocadamente, já que o computador processa dados e não informações. Essas são obtidas a partir dos dados pela análise humana. [2] A parte final da palestra envolvendo cálculos matemáticos ficou um pouco confusa para mim. [3] As atividades com os papeis foi interessante, pois permitiu um entendimento prático da implementação de um algoritmo. RESP.: Um ser humano absorve algo como informação se ele compreende esse algo, se consegue atribuir um significado para esse algo. Mas não é necessário que o algo seja um dado. Por exemplo, pouca gente compreende por que um avião voa, mas recebe a imagem visual de um avião voando. Agora vou dar mais um passo: compreender é associar uma percepção de algo ao conceito subjacente a esse algo. Mas isso é outra palestra, onde analiso o que significa pensar.
  34. [1] Já havia aprendido boa parte dos conceitos explicados no meu curso de programação. [2] Não ficou nenhuma dúvida. [3] A explicação com exemplos lúdicos é muito bem feita. Mas seria legal poder programar um pouco na aula. Infelizmente tenho que ser rápido. Da próxima vez vou me deter um pouco mais no programa em Pascal.
  35. [1] Aprendi o que são algoritmos, além de ver alguns algoritmos de ordenação. [2] Não entendi o método de "hashing". [3] Com certeza irei buscar saber mais sobre as outras palestras do professor. RESP.: Sobre hashing, veja meu comentário acima sobre essa técnica.
  36. [1] Uma visão da sistemática de algoritmos e um pouco de ciência da computação. (Binário). [2] Não ficou nenhuma dúvida. [3] Muito boa aula! Cativante e bastante interessante. Tornou algo complicado em coisas mais simples.
  37. [1] A relação matemática e computação, em que uma boa análise matemática, com uma boa otimização, pode implicar em excelentes resultados tecnológicos. [2] Como seria um algoritmo em computação quântica. [3] Uma boa introdução em ambiente multidisciplinar, heterogêneo. RESP.: Na computação quântica, são tentadas várias soluções simultaneamente, por exemplo quebrar algum código secreto. Tenho grandes dúvidas se algum dia teremos computadores quânticos, pois eles trabalham no nível atômico e qualquer interferência externa (ruído) altera os resultados.
  38. [1] Achei interessante que existe uma maneira de obter a melhor ordenação quando relacionada à comparação. [2] Como se constata que esse é o melhor jeito. [3] A palestra foi muito boa e acredito que tenha atingido a maioria do público. RESP.: O melhor algoritmo é o mais eficiente segundo algum critério. Na aula, usei o número de comparações, e também discorri um pouco sobre o espaço necessário para processar o algoritmo.

4. 8/11/17, na 1ª Jornada do Instituto Federal de São Paulo em Cubatão, SP; info: Cláudia Cristina S. de Carvalho claudia.carvalho #at.arroba ifsp.edu.br

  1. [1] Que um modelo universal aproximado da realidade pode ser escrito matematicamente como o algoritmo. Compreender que conceito é mais relevante que os cálculos em si. [2] Ao final da apresentação não tive nenhuma dúvida, principalmente com a matemática. [3] Palestra bastante satisfatória e gratificante, me despertou mais interesse em aprender sobre ciência da computação e linguagem de programação. RESP: O que eu disse sobre modelos é que os usados na física não são a realidade: modelam algo matematicamente, em fórmulas em que as variáveis são medidas feitas direta ou indiretamente por aparelhos. Além disso, a física não está no negócio de compreender o mundo e sim de derivar fórmulas matemáticas que permitam prever o comportamento de experimentos com medidas feitas com aparelhos. Um exemplo extremo é a física quântica, que é incompreensível.
  2. [1] Introdução à matematica por trás da complexidade de algoritmos. [3] Excelente motivação, didática e de fácil entendimento; o professor é bastante amigável e descontraído, o que facilita o entendimento e proporciona tirar dúvidas e o aprendizado além da palestra.
  3. [1] A importância da matemática, o perigo de ser controlado pelo computador e a tecnologia, as dicas sobre educação como a alfabetização começar cedo, o uso do corpo e outras ferramentas para o ensino, entre outras que anotei. [2] A criação dos algoritmos, a programação. [3] Estou estudando matemática para ser professor e sua palestra foi fantástica para abrir meus pensamentos e o senhor tem muito conhecimento, vou pesquisar seu material e sou muito grato. Gostaria de ver outros temas, outras palestras. RESP: posso dar muitas palestras sobre vários assuntos (veja, por exemplo,
    https://www.ime.usp.br/~vwsetzer/pals/pals-cursos.html
    É só me convidar...
  4. [1] Muitos pontos foram importantes, mas entender que um algoritmo precisa ser bem elaborado matematicamente, e não quaisquer passos como me foi ensinado, foi muito importante. [3] A palestra foi incrível e eu pude absorver bastante informação, pois entendi.
  5. [1] Pude rever os conceitos de ordenação. [3] Eu gostei da dinâmica do minicurso, da interação com os "alunos".
  6. [1] Aprendi as definições de algoritmos. [2] Como funciona o processo de ingressar na pós-graduação do IME. RESP: veja
    https://www.ime.usp.br/pos
  7. [1] Algoritmos são métodos de organizações em um computador (lógica). Existem vários tipos de métodos. [2] Não tive. RESP: algoritmos descrevem em passos matematicamente bem definidos um procedimento de manipulação de símbolos formais ou de números, de modo que terminam para quaisquer dados que sejam usados (dados de entrada).
  8. [1] A definição de complexidade de um algoritmo e o algoritmo de maior eficiência para ordenação. [2] A análise de um algoritmo se baseia apenas em sua complexidade? Existem outros fatores? RESP: Sim, existem. A análise da complexidade (no tempo e no espaço de "memória" requeridos) é apenas uma parte da análise de algoritmos, a mais usada. Por exemplo, uma outra análise é derivar uma prova matemática de que um algoritmo faz exatamente o que se espera dele para quaisquer dados de entrada. Um simples teste de se dar dados de entrada para um algoritmo, executar os seus passos e obter resultados esperados não prova que o algoritmos está correto: prova que para aqueles dados ele está correto, mas pode não estar para outros dados.
  9. [1] O método de comparação de pares (computação) o mais eficiente é o método de Intercalação Binária, fórmula n log n - n +1. Como aplicar essa lógica do algoritmo do computador, programa C#. [3] Essa aula deveria ser dada como base no curso de análise e desenvolvimento de sistemas do IFSP, pois só temos aula de fluxograma e aula de linguagem C#. Na minha apresentação há uma implementação de um dos algoritmos quadráticos na linguagem Pascal; tanto faz qual a linguagem, o que muda é a sintaxe.
  10. [1] Desenvolver algoritmos de forma que seja o mais eficiente possível. Foi aprendido também origem da palavra "computador", além dos conceitos e significado de algoritmo que é extremamente importante para a ciência de computação. Além disto, foi aprendido que a matemática está muito interligada à ciência de computação. [3] Os comentários ficarão para uma próxima palestra.
  11. [1] Eu aprendi coisas essenciais sobre algoritmos, como o que é algoritmos, como deve ser feito, o que é um algoritmos ótimo etc. [2] Em relação a algoritmos de "machine learning" IA e big data, o Sr tem alguma palestra? [3] Esse comentário fica para uma outra palestra (he he he). RESP: Eu tenho uma palestra sobre Inteligência Artificial, mas há muito tempo que não a dou e portanto ainda não fazia menção a machine learning.
  12. [1] De tudo que aprendi aqui hoje o que julguei mais importante foi a noção de complexidade que me era desconhecida até então. [2] Não identifico nenhuma dúvida.
  13. [1] Aprendi de mais importantes nesta palestra não especialmente um assunto, mas sim vários assuntos principalmente a organizar um algoritmo. [2] Estava com uma dúvida a respeito a POO. Mas essa dúvida já foi respondida durante a apresentação. RESP: Curioso, não posso imaginar o que a programação orientada a objetos tem a ver com a palestra.
  14. [1] O que aprendi de mais importante é que para programar deve se pensar o programa e só depois passalo para o computador. [2] A maior duvida foi sobre a demonstração da complexidade dos algoritimos de ordenação. [3] Achei a palestra excelente. RESP: Baixe a apresentação e estude-a com calma. Espero que tudo se esclareça.
  15. [1] Que há uma diferença entre computação e programação. Não podemos ficar escravos da tecnologia (computador, celular). Temos que trabalhar também com nossos alunos em sala de aula, com o corpo, aulas expositivas. Ao realizar um trabalho no computador, devemos salvá-lo para que não venhamos a nos perder durante o processo de elaboração do mesmo. Algoritmo é totalmente matemática.
  16. [1] Conceitos como: o que é, de fato, um algoritmo. Relembrar métodos para organizar sequências e integrar novos métodos. [3] Me esclareceu algumas coisas que sempre tive dúvida quanto ao funcionamento de computadores: que eles interpretam símbolos.
  17. [1] A ideia científica da computação, os metodos e as formas matemáticas dos tratamentos de problemas. [3] Goedel, me refiro ao Teorema da Incompletude da matemática que de certo modo justifica a ideia que um programa de computador pode falhar! Seria interessante um resgate maior do ponto de vista da "História da Ciência" sobre a História da Computação. RESP: Cuidado, o teorema de Goedel vale para a lógica matemática clássica. Há outras lógicas, como as paraconsistentes, e aí o teorema pode não valer. Não o teorema de Goedel que justifica a ideia que um programa pode falhar. É ter sido mal programado e não fazer o que se espera dele! Há limites para o que um programa pode fazer, isso eu falo na palestra "A Máquina de Turing e o que os computadores podem e não podem fazer" (resumo, avaliações de participantes, apresentação), que considero uma palestra muito importante para todos os estudantes universitários.
  18. [1] A definição precisa e exemplificada de algoritmos. [2] Como saber quando um algoritmo é ótimo? [3] Palestra muito boa! RESP: É preciso provar formalmente que um algoritmo é ótimo de um certo ponto de vista de complexidade (tempo ou espaço requeridos).
  19. [1] Aprendi que a matematica esta amplamente envolvida com a Ciência da Computação. [2] Qual o limite que toca a questão do computador se tornar uma ajuda ou um problema para o homem? RESP: Qualquer máquina tem efeitos negativos para o ser humano. É preciso conhecer bem o funcionamento de uma máquina e como ela influencia o usuário e a sociedade, a fim de colocá-la a serviço da humanidade e não contra ela, como está acontecendo na maior parte do uso da internet.
  20. [1] Foi que, para ser um algoritimo precissa ser algo que não participe do mundo real. [2] Não tive, pois foi tudo muito bem explicado e abordado. [3] Muito boa a palestra!!! Adorei a parte que tinha interação com todos. RESP: Um castelo que você imagina flutuando no ar não participa do mundo real! Um algoritmo precisa poder ser descrito matematicamente, formalmente.
  21. [1] Aprendi que algoritmo é uma sequência matemática, com uma ação matematicamente bem definida. E que, a descrição a qual aprendi, por exemplo, de como trocar pneu, não é algoritmo, pois são ações físicas e não são matematicamente bem definidas. [2] Não ficou dúvida. [3] Parabéns pela palestra, obrigada!
  22. [1] Aprendi além das minhas espectativas: complexidade algoritmos, ordenação, metodologia de ensino ativa, comportamento. [2] Nenhuma, apenas vontade de aprender mais. [3] Fiquei emocionado quando você disse que o pensamento não vem apenas da cabeça e sim do corpo inteiro. Você é realmente é alguém que está no nível de excelência, vou te usar como modelo! RESP: Eu não disse que vem do corpo inteiro. Eu disse que o pensamento não é físico; para isso baseio-me em evidências muito fortes, como a capacidade que temos de determinar o próximo pensamento - se não pudéssemos fazer isso, seria impossível concentrar o pensamento e portanto nem mesmo fazer uma simples conta de somar dois números grandes. O pensamento iria vagar e a conta daria errada! O que ocorre é que ao se pensar e se fazer outras atividades interiores (por exemplo, o sentir e o querer) o cérebro participa do processo e é parte essencial dele para que tenhamos consciência do que estamos pensando. Isto é, o cérebro reflete o pensamento para a consciência. Se há uma lesão cerebral, pode-se perder alguma atividade interior. De modo algum pode-se afirmar, por causa dessa perda, que essa atividade é gerada pelo cérebro. O máximo que se deveria afirmar cientificamente é que o cérebro participa daquela atividade.
  23. [1] Métodos com calculos para descobrir mais rapidamente quantas comparações foram necessárias para a organização. [2] Não tive nenhuma duvida. [3] Uma ótima explicação de facil entendimento.
  24. [1] Pude aprende conceitos avançados sobre algoritmos e sua exemplificação, tal como um novo método para fazer o máximo multiplicador comum. [3] Parabéns pela ótima palestra e por conseguir prender tão bem a minha atenção. Nunca tinha assistido uma palestra tão dinâmica quanto a sua! Obrigado por dividir conosco um pouco de seu vasto conhecimento. RESP: O algoritmo de Euclides (de 300 a.C) calcula o máximo divisor comum.
  25. [1] Aprendi varios conceitos de algoritmo que o professor do meu curso "ensinou" errado... Exemplo: [trocar] pneu, acordar, etc. [2] O Sr. orienta em trabalhos além da área da computação? [3] Gostei muito da palestra do Sr.! Prende toda a atenção, explica muito bem. RESP: Sim, posso orientar, por exemplo em educação e em matemática.

[3] 20/9/17, na disciplina MAP-2003 "Panoramas da Matemática" do Instituto de Matemática e Estatística da USP, oferecida para alunos de toda a USP (não foram incluídas 12 avaliações)

  1. [1] Aprendi o que são algoritmos e como funcionam certos tipos de algoritmos de ordenação. [2] Fiquei meio confuso na parte algébrica no algoritmo n log n. [3] Essa palestra foi muito boa para ter uma introdução para computação no geral.
  2. [1] Já tinha conhecimentos sobre a área, mas na primeira vez que aprendi, a coisa mais importante foi como se faz a análise de algoritmos para compreender a eficiência dos algoritmos. Isso proporciona algoritmos corretos, melhor escritos e eficientes. [2] Nenhuma. [3] Aula didática com ensino de análise de algoritmo de forma simplificada, útil para entender de forma mais ampla que os algoritmos bem escritos são de extrema importância.
  3. [1] Que apesar da complexidade do algoritmo quando visto superficialmente, os algoritmos perpassam por conceitos e bases um tanto simplistas. E que a lógica por trás dos projetos, quando abstraída, envolvem a disciplinaridade [disciplina]. [2] Acredito que minhas dúvidas começaram a surgir a partir dos problemas propostos, como: "complexidade no tempo de O(n2)". [3] O palestrante é bem desenvolto, sabe entreter e dar fluxo à aula. Além de que, a temática chega a ser curiosa.
  4. [1] Definições de conceitos que muitas vezes são distorcidas pela coloquialidade, como o que é "algorítimo". "ciência da computação", etc. ... Aprendi/revisei também os diferentes algorítimos de ordenação. [2] Qual o melhor algorítimo de ordenação que existe? Há uma maneira de provar que ele é o melhor? [3] Adorei a palestra!
  5. [1] Do que se trata efetivamente a ciência da computação. A diferença entre informação e dado. O que é um algoritimo. [2] Como provar formalmente que n log n é a melhor complexidade de tempo. [3] Foi show! Muito bom mesmo.
  6. [1] Como funciona o computador. [2] Como ela se distribui em informações. [3] O professor com uma energia muito positiva e com muita experiência.
  7. [1] Que existem algoritimos não-intuitivos que são mais eficientes do que os intuitivos. [2] Como algoritmos mais eficientes são criados, e como calcular o tempo (O) dele para caso mais complexos. [3] Gostei da forma como o professor nos deixou livres para escrever nossos algoritmos, para que ele pudesse mostrar que estes eram algoritmos intuitivos, mas não ótimos.
  8. [1] A definição correta de ciência da computação e a diferença entre dados e informação. Além disso, a ordem do algoritmo de ordenação selection (n2); bubble (n2) e arvore n log2 n. [2] A dedução da ordem da ordenação por árvore foi confusa. Não entendi direito. [3] A palestra fica muito boa com dinâmicas interativas.
  9. [1] Aprendi que há algoritmos que podem ser mais eficientes que outros. Além disso, entendi que não podemos associar um algoritmo a receitas etc; pois os dados não estão bem definidos matematicamente. [2] Me perdi um pouco na explicação em que mostrava-se um algoritmo mais eficiente do que n2. [3] Gostei bastante da abordagem inicial, feita com o "algoritmo" de ordenação.
  10. [1] A descoberta de algoritmos eficientes, a prova de que algum algoritmo é ótimo e está correto. [2] Achei muito claro e didático. [3] A parte mais interessante foi tentar descobrir o erro.
  11. [1] Aprendi que a matemática está realmente presente em tudo, e que os algoritmos são essenciais para praticamente todas as tecnologias. [2] Eu possuo alguma dúvidas a respeito da programação e da otimização do algoritmo. [3] Foi uma aula interessante, o palestrante é descontraído e soube abordar o tema de uma boa forma, apesar de ser um pouco cansativo a partir de certo momento.
  12. [1] Aprendi o conceito e funcionamento dos algoritmos, que ciência da computação é resolução de problemas através de algoritmos e que o computador processa dados e não informações, o termo informática está incorreto. [2] Nenhuma. [3] Como aluno de contabilidade, gostei de ter noções de computação, e ter conhecimento do professor Setzer foi uma experiência muito interessante.
  13. [1] A parte que considerei mais importante foi a explanação conceitual acerca de algoritmos, já que na minha formação, onde tive algumas aulas de programação, aprendi algumas coisas de forma superficial e equivocada (como o exemplo da troca do pneu).
  14. [1] Não entendi muito bem o algoritmo ótimo apresentado. [3] Fiquei satisfeito com a aula, principalmente pelo fato do doscente possuir conhecimento vasto e ser pioneiro sobre o tema no país. Entretanto, dou ainda maior importância para o projeto "Embaixadores da matemática"; qualquer iniciativa que busque melhoras didática e no ensino nacional, merece meus parabéns!
  15. [1] Para mim, o mais importante foi aprender sobre os diferentes métodos: da seleção, da bolha e da inserção. Foi muito interessante ver como funcionam os algoritmos e como são os passos da ordenação por intercalação binária. [2] Não entendi muito bem como calcular o número de folhas da árvore binária. [3] Gostei muito do modo como o professor nos fez tentar descobrir como organizar os números no início da aula.
  16. [1] Por já ter trabalhado com algoritmos de ordenação, eficiência de códigos e suas melhorias, infelizmente houve pouco aprendizado novo nessa área. [2] Novamente, como já aprendi e escrevi programas de ordenação, não houve muitas dúvidas. [3] Porém, apesar de conhecer e já ter trabalhado com o assunto, a aula foi muito bem dada. A explicação do professor é muito boa e acredito que deixa poucas dúvidas.
  17. [1] Nessa aula, uma das coisas mais importantes foi desmistificar o conceito de computação (que, na verdade, é saber resolver questões por meio de algoritmos). Também foi importante compreender o conceito de algoritmo. [2] Minha maior dúvida foi sobre a melhoria da eficiência do algoritmo, por meio de coeficientes de comparação. [3] Gostei bastante de aula, pois não tinha conhecimentos prévios sobre algoritmos e computação e as informações adquiridas me ajudaram a compreender melhor tais conceitos. Fiquei bastante interessada nas implicações históricas citadas na aula, e acredito que o tema poderia se desdobrar em mais matérias/aulas.
  18. [1] Gostei muito da aula, achei muito interessante a diferença entre "informática" e "processamento de dados", e os métodos de otimizar algoritmos. Gosto das "histórias paralelas" que ilustram os assuntos. [2] Saber a história das raízes que quebram até pedras, como foram usadas na antiguidade para construir pirâmides. [3] O professor Setzer é um espetáculo. Infelizmente é muito pouco tempo, o professor deveria dar matérias obrigatórias a todos os alunos para passar seus conhecimentos. Nota-se que além de muito conhecimento aculmulado tem excelente didática, e vontade de ensinar. Pena que alguns alunos assinaram a lista e foram embora, perderam uma ótima aula.
  19. [1] O que aprendi de mais importante é a diferença entre a informática e a computação de dados. Enquanto aluno de Letras, perceber a linguagem interna à maquina, é crucial para saber que a máquina é pensada por humanos. [2] A maior dúvida foi sobre como a computação é explorada fora da programação comparativa apesar das explicações terem sido muito
    boas. [3] Prazer pela aula, professr Valdemar; não há maiores comentários. Recomendo os estudos da linguística e estudos do discurso num geral.
  20. [1] Acredito que tenha sido o que é ciência da computação e o que é um algoritmo, já que não tinha ideia do que se tratava. [2] Não ficou nenhuma "dúvida" exata, mas o processo de comparação com números muito grandes ainda é bastante abstrato para mim. [3] Gostei bastante da atividade com as fichas e da abordagem do tema, com explicações claras para quem não é da área de exatas.
  21. [1] Métodos divertidos e explicativos, para despertar o interesse do aluno para a ciência da computação. Um método mais eficiente para a ordenação. [3] Acho que as explicações foram bastante claras. Fiquei curiosa com as várias histórias citadas. Comentários e críticas interessantes.
  22. [1] Ampliei mais sobre noções de algoritmos e métodos de ordenação, e conheci hoje o método de intercalação binária. Claro que não entendi todos os aspectos apresentados na análise para calcular o número de comparações neste método, mas agora vou pesquisar mais sobre este método. O que também achei interessante é que a há termos de uso que gera equívocos, como ciência da computação, memória, e o próprio conceito de algoritmo, mas que nesta palestra muitas dessas coisas ficaram mais claras.

2. 1/4/17, para professores de matemática, no Centro de Aperfeiçoamento do Ensino de Matemática (CAEM) do Instituto de Matemática e Estatística da USP

  1. Ver a avalição feita pelo CAEM.
  2. [1] Computador não processa informações, processa dados. Não tem memória, armazena dados. [2] Acredito não ter ficado dúvida. [3] Deveria haver mais oficinas com o prof. Setzer.
  3. [1] Que os computadores são limitados e, como tais, só realizam processamento de dados de acordo com os parâmetros dados pelas pessoas; que reconhecer algoritmos ótimos e documentá-los maximiza [minimiza] o uso do tempo e do espaço e que a matemática é a melhor disciplina para se abordar a computação. [2] Como equilibrar o uso dos computadores na Educação Básica? [3] Parabéns professor, pela forma como apresentou o tema, evidenciando os avanços e as limitações do conhecimento humano.
  4. [1] Aprendi algumas diferenciações entre termos da computação; métodos de ordenação; comparações para ordenação. [2] É bem difícil acompanhar o raciocínio do professor, logo, a minha maior dúvida ficou em saber se sou capaz de fazer isso algum dia! [3] O tempo foi curto para absorver todas as informações.
  5. [1] É preciso darmos mais valor aos conceitos fundamentais para todas as áreas de nossas vidas. [2] Será que nossos computadores irão evoluir e possibilitar novas formas de criar os algoritmos?
  6. [1] Aprendi como os algoritmos estão presentes em um programa de computador, e que um computador processa dados, e não informações. [3] Esta oficina teve grande valor para meu crescimento profissional, pois me mostrou novos conhecimentos e formas de enxergar como as pessoas pensam e agem diante das novas tecnologias.
  7. [1] Relação entre algoritmos e ciências da computação. [2] Relação entra homem e computador. [3] Tentarei utilizar exemplos durante minhas aulas.
  8. [1] A noção geral do uso do computador e suas finalidades. [2] Uma fórmula mais rápida que o log. [3] Agradeço o empenho do professor ao transmitir o seu conhecimento.
  9. [1] Aula extremamente didática, aprendi uma ótima oficina sobre algoritmos, para aplicar aos meus alunos. Além de professor sou engenheiro de computação e fiquei maravilhado com as explicações e o conhecimento do professor Valdemar. [2] Não tive dúvidas. [3] Aguardo mais oficinas do professor Valdemar. Com certeza, estarei presente em todas.
  10. [1] Aprendi a definição de algoritmo e a diferença entre passo a passo [receita] de qualquer atividade. [2] Não tive maiores dúvidas a respeito do tema. [3] Aula muito interessante, e que pode ser adaptada para trabalhar na escola. Fiquei muito curioso para saber mais sobre os Embaixadores da Matemática e pegarei mais informações assim que possível
  11. [1] A definição exata de algoritmo. [2] Não diria dúvida, mas dificuldade na associativa das linguagens técnicas e específicas. [3] Apesar do pouco tempo de aula, a associação da teoria com a prática facilitou bastante para a compreensão do conteúdo.
  12. [1] Tanta coisa, mas o mais importante foi como o computador processa os dados (inteiros), como ele executa operações de comparação e como melhorar isso. [2] Vimos algoritmos de ordenação, embora não todos, acredito. [3] Consegui me mostrar várias referências da computação com a matemática, embora eu tenha a certeza que isso não é tudo. Sanar minha dúvida de onde utilizamos o log na computação.

1. 3/3/17, para professores e alunos na Escola Prof. Expedito Camargo Freire (EEECF) na R. Genko Sakane 10, Brancas Nuvens, Campos do Jordão, (12) 3662-3311, dentro do projeto Embaixadores da Matemática do IME; info: Benedito Mariano (diretor) <msditom@hotmail.com>

Alunos:
  1. [1] Diferenciar algoritmo de programação. [2] Se n log n é a forma mais rápida (mais eficiente), por que o programador escolheria outro caminho? [3] Fiquei com vontade de fazer um curso de ciência da computação.
  2. [1] Aprendi que informática é usar um computador e [ciência da] computação é programar um. [3] Não tive aulas interessantes no 1º ano, pois não tinha uma boa comunicação com meu professor de matemática, então não consegui aproveitar parte da informação.
  3. [1] O método da árvore e a aprendi que a ciência da computação não é aprender mexer no computador, e sim aprender a mexer com algoritimos. [2] Aprender a sequência. [3] Apesar da matéria não prender muito, com, certeza é útil na matemática e na ciência da computação.
  4. [1] Eu aprendi como que funcionam os métodos mais eficazes de algoritimos. [2] No começo, tive dúvida sobre os algoritimos mas depois consegui racioncinar.
  5. [1] Eu aprendi um pouco da tecnica que é usada nos programas de computador, que muitos programadores não usam mais é necessario de ser usado. [3] Foi uma otima aula e gostaria de assistir mais aulas. É um otimo assunto para aprofundar mais.
  6. [1] Eu já havia estudado isso alguns anos atrás, então eu relembrei a maioria das coisas. [2] Não tenho dúvidas, ou pelo menos não formulei nenhuma ainda. [3] Achei muito melhor do que estudar sozinha.
  7. [1] O que eu aprendi foi além das contas também analisar melhor o que eu estou fazendo no computador. [2] Não ficou nenhum duvida evidente.
  8. [1] O computador não pensa, só funciona através de comandos. Algoritmo tem que ser exato e não preciso. [2] Da complexidade para montar um programa.
  9. [1] Para você fazer um bom programa, você tem que aprender sobre os algoritimos. [2] Por que você consegue fazer um programa sem aprender algortimos.
Professores:
  1. [1] Que no método de comparações existem várias formas de comparações, e que existe uma melhor opção nessas comparações. [2] Pensei numa árvore trinária, usando o exemplo citado de 6 cartões, é mais rápido a comparação do que na árvore binária? [3] Achei ótima a aula, acrescentou muito na minha formação.
  2. [1] Contextualizações para aprendizagem da matemática. Orientações para o "projeto de vida" [aulas específicas nessa escola] dos alunos. [2] Todos temas abordados e questionamentos foram esclarecidos, portanto, não há dúvidas significativas. [3] Para o meu conhecimento pessoal e profissional foram de muito valor os temas abordados e a dinâmica do palestrante.
  3. [1] Como ordenar informações. [2] Não tive dúvidas. [3] A linguagem foi bem clara e a aula apresentou vários desafios para o cérebro.
  4. [1] A diferença entre [ciência da] computação e informática. [3] Muito interessante a aula e acredito que será também muito esclarecedora para os alunos.
  5. [1] Todo método de programação depende de algoritmos e dentro disso há etapas que, se consideradas, garantem maior eficiência na execução de um programa. [2] Quando saber qual algoritmo usar? [3] Bom preparo da aula, várias fontes que enriquecem a explicação até mesmo as fora do currículo, bem como as etapas organizadas e as informações e exemplos históricos bem utilizados.
  6. [1] Complexidade e as possibilidades de criação no algoritmo. [2] Compreender seu uso e aplicação prática na ciência da computação. [3] Ótima palestra e a dinâmica extremamente prática do conhecimento abordado.