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] 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.
- [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.
- [1] Aprendi o básico da computação e porque o
algoritmo de log é o melhor.
- [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
- [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.
- [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.
- [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!!!
- [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.
- [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.
- [1] Algoritmos eficientes, a importância da matemática.
[2] Nenhuma. [3] Palestra bem elaborada.
- [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.
- [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).
- [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.
- [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.
- [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.
- [1] Eu aprendi bastante coisa legal relacionado aos algarismos. [2]
Não tenho duvidas [3] Adorei a palestra.
- [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
- [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.
- [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.
- [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.
- [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
- [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.
- [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.
- [1] Combinações binárias e introdução
às logicas dos algoritimos. [3] Ótima palestra. Explicação
simples porém concreta.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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] 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.
- [1] Eu não sabia exatamente o que era algoritimo e como funciona.
[2] Nenhuma dúvida. [3] Gostei muito das dinâmicas.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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
- [1] Aprendi que um algoritmo precisa se comprovar matematicamente.
[2] Nenhuma, explicou bem tudo. [3] Gostei dos exemplos que deu.
- [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.
- [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.
- [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.
- [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.
- [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...
- [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] 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
- [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!).
- [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.
- [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.
- [1] Qual o melhor algoritmo por comparação? [2] Não
tive dúvidas.
- [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.
- [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!
- [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.
- [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.
- [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".
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [1] Os diferentes métodos de ordenação e suas
complexidades. [2] Nenhuma dúvida. [3] Muito legal a dinâmica
em grupos.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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...
- [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.
- [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.
- [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...
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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] 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.
- [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.
- [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...
- [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.
- [1] Pude rever os conceitos de ordenação. [3] Eu gostei
da dinâmica do minicurso, da interação com os "alunos".
- [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
- [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).
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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).
- [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.
- [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.
- [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!
- [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.
- [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.
- [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.
- [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] 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.
- [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.
- [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.
- [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!
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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).
- [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!
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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
- Ver a avalição
feita pelo CAEM.
- [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.
- [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.
- [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.
- [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?
- [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.
- [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.
- [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.
- [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.
- [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
- [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.
- [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] 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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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] 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.
- [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.
- [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.
- [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.
- [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.
- [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.
|