O COMPUTADOR A PAPEL E OS PRINCÍPIOS BÁSICOS
DO FUNCIONAMENTO DE UM COMPUTADOR

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/5/18

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 [?]. Os originais estão à disposição para exame. As avaliações desta palestra começaram a ser coletadas e transcritas aqui a partir de 18/5/18. Ver na Internet o resumo da palestra (com material necessário etc.), o artigo (com mais detalhes do que a aula) e a apresentação em ppt. Respostas às dúvidas expressadas pelos alunos estão precedidas por RESP; infelizmente elas têm que ser breves.

1. 16/5/18 para 80 alunos dos 1º, 2º e 3º anos do ensino médio, no Colégio Albert Sabin, Parque dos Principes, São Paulo, SP, (11) 3712-0713, dentro do projeto Embaixadores da Matemática do IME, info: prof. Dalson Alves de Lima Graça dlima at.arro.ba.albertsabin.com.br

  1. [3] Achei a aula interessante, a dinâmica do teatrinho fez com que eu entendesse melhor o que foi passado. Muito obrigada pela sua presença.
  2. [1] O funcionamento dos computadores e suas linguagens foram as coisas mais importantes que aprendi. [2] Como o computador "entende/interpreta" uma frase e a "transforma" em um código de dois dígitos? [3] Gostei muito da palestra e de saber como funciona um computador. Parabéns. RESP.: Atenção, no teatrinho o Computador a Papel tinha instruções em forma de texto somente por motivos didáticos, para se entender o que cada instrução devia executar. Os computadores não usam esse tipo de instrução, mas codificadas numericamente, análogamente às do HIPO.
  3. [1] Aprendi o funcionamento de linguagens e comandos como o python. [2] Por que são utilizadas a linguagem binárias nos computadores modernos? [3] Foi um prazer participar, já utilizei programas simples e intuitivos como o RPG-maker para a criação de scripts e foi ótimo saber mais sobre. RESP.: O sistema numérico binário, que emprega apenas os símbolos 0 e 1, é usado na linguagem de máquina dos computadores por uma questão de simplicidade, eficácia (isto é, diminuir a possibilidade de alteração espontânea de dados) e velocidade dos circuitos que interpretam e executam as instruções da linguagem de máquina. Qualquer sistema numérico poderia ser usado. Na palestra "Sistemas numéricos. Por que os computadores usam os sistemas binário e hexadecimal?" explico isso em detalhe.
  4. [1] Eu aprendi como os computadores antigos interpretam as informações fornecidas. [2] Como programar em Python? [3] Achei a aula produtiva. RESP.: Cuidado, computadores processam dados, e não informações. Uma informação requer um ser humano que a recebe e a compreende; se ele não compreende, pode ter recebido apenas dados, como um texto em uma língua que não conhece: pode mudar o formato dos caracteres e dos parágrafos etc. Tudo isso é processamento de dados, e não de informações. Veja meu artigo "Dado, Informação, Conhecimento e Competência" em meu site.
  5. [1] Passo a passo da interpretação de dados e processamento de um computador. [2] Felizmente, todas as dúvidas foram respondidas no momento. [3] Aula irreverente e dinâmica e, mesmo com o curto período de apresentação, provou-se adequada. Mesmo assim, acredito que seria melhor que a aula fosse mais longa para haver maior demonstração e detalhamento.
  6. [1] O que eu aprendi de mais é como funciona um computador. [2] Como funciona o código binário. [3] Aula muito boa e interativa. RESP.: O funcionamento do sistema numérico binário é objeto de outra palestra, veja a avaliação 3 acima.
  7. [1] Unidade central de processamento -> todo computador tem. Capacidade do programa é 9999. Codigos numéricos mais #### [quadradinhos]. [3] Gostei muito do professor! Didatica 10. RESP.: O computador virtual HIPO tem "palavras" (isto é, a menor representação que forma uma unidade) de 4 dígitos decimais por uma questão de simplicidade. Ela permite que o código de uma instrução tenha mais do que 10 valores diferentes e que a unidade central de armazenamento tenha 100 palavras.
  8. [1] Aprendi que com um número contado de instruções, o computador é capaz de realizar qualquer tarefa. [2] Não seria mais fácil o comando das instruções ser dado diferente do dos dados? Se sim, por que é igual? [3] Muito boa a dinâmica utilizada para representar o computador e é incrível pensar como ele trabalha. RESP.: Eu contei que a ideia do famoso matemático Von Neumann de representar dados e instruções da linguagem de máquina exatamente da mesma forma deu um enorme avanço nos computadores; eu disse que dessa maneira pode-se ter naquela unidade mais instruções de um ou vários programas e menos dados ou, ao contrário, mais dados e menos programas. É uma questão de flexibilidade e simplicidade.
  9. [1] Processamento, linguagem e propriedades na interpretação de dados em um computador. [2] Ao final da apresentação, não restaram dúvidas sobre o tema. [3] O teatro como introdução foi de excelente contribuição para a compreensão da palestra como um todo.
  10. [1] Funcionamento do processamento de dados de um computador. [2] Como o computador sabe o que é instrução e o que é dado? [3] Bom teatro de funcionamento do computador. RESP.: Em primeiro lugar, o computador não "sabe" nada, pois não tem consciência. Em segundo, o computador usa o apontador de instruções para localizar a próxima instrução a ser executada; o conteúdo de qualquer posição de memória indicada por esse apontador, quando for a hora de decodificar uma nova instrução, será interpretado pelos circuitos como uma instrução. Por outro lado, uma instrução pode fazer referência a uma posição cujo conteúdo, durante a execução dessa instrução, não será interpretado como instrução, mas como dado.
  11. [1] De mais importante aprendi que qualquer computador tem e segue sempre uma linguagem e sempre interpreta os códigos. [3] Muito boa a explicação por meio do teatro.
  12. [1] Códigos são transformados em letras, dados e comandos específicos. Foi bom entender a causa de algumas falhas no PC. [2] As codificações se repetem, mas como são interpretadas desse modo? [3] Adorei a palestra! Informações muito bem comunicadas. RESP.: Cuidado, letras e outros símbolos são codificados numericamente para manipulação pelo computador. Vimos que com algumas instruções pode-se processar um número grande de dados diferentes, por meio do desvio para o início de uma sequência de instruções cujo processamento é então repetido.
  13. [1] Aprender como os dados e informações estão "escritos" dentro da CPU. Aprender a organização e funções de cada parte. [3] Engraçado e prático, simplifica bastante e isso ajuda (envolvente).
  14. [1] A lógica por trás de programas e computadores e onde são armazenadas as informações. [2] Ficou a curiosidade sobre como são armazenadas as instruções seguidas. [3] Foi muito interessante. RESP.: Em todos os computadores de hoje, s instruções são armazenadas em um código numérico binário. O Computador a Papel e o HIPO usam um código decimal só para ilustração mais simples dos conceitos básicos de como um computador funciona do ponto de vista da linguagem de máquina.
  15. [1] O computador só interpreta números e consegue diferenciar dados pela instrução anterior. [3] A dinâmica de grupo facilitou a compreensão da parte teórica.
  16. [1] Não sabemos como funciona a memória, computador não tem memória, apenas é programado por dados. [2] Quando um computador perde tudo e ele "recomeça" a partir do armazenado no back-up, como ele reinterpreta todos os dados? RESP.: Não sabemos como funciona a memória humana, de modo que não se devia chamar de "memória" a unidade central de armazenamento de dados de uma computador. Como eu disse, na computação usam-se muitas expressões antropomórficas (da natureza humana) indevidamente. Isso pode mistificar tanto o computador como denegrir a visão que se tem do ser humano, associando-se-o a uma máquina.
  17. [1] Aprendi a linguagem "correta" para o uso de programas! E o funcionamento básico de um computador! [2] Não tenho! Muito boa! [3] Não acredito que o "teatrinho" tenha sido muito claro, devia ter sido melhor organizado e preparado! RESP.: Infelizmente o tempo que foi dado foi muito curto, a execução do teatrinho podia ter sido mais vagarosa e com mais explicações.
  18. [1] Como saber programa, o basico do básico, como programa pode ajudar. [2] Como os "hackers" trabalham para buscar a falha e explorá-la? [3] Muito boa a interação, animada, deixando facil uma coisa que aparenta ser dificil. RESP.: Os hackers conseguem ter acesso aos sistemas que controlam os computadores e os programas que são interpretados pela máquina, modificando-os. Por exemplo, se eles descobrem a senha de acesso a um computador ou a uma rede, podem eventualmente modificar os programas existentes e introduzir novos.
  19. [1] O funcionamento e a complexidade de um computador. [2] Não restaram duvidas. [3] Gostei muito do teatro.
  20. [1] Funcionamento básico de um computador. [2] Não fiquei com nenhuma dúvida, o palestrante lecionou muito bem.
  21. [1] Computadores funcionam com diversos tipos de linguagem, como números e letras, e transcrevendo as linguagens em comandos. [2] Como funciona o código binário. RESP.: Costuma-se chamar de instruções os códigos da linguagem de máquina ou de montagem (assembler) interpretados pelo computador, e de comandos as expressões em linguagens de nível mais alto, como a Python que foi ilustrada, infelizmente muito rapidamente devido ao tempo.
  22. [1] A nossa concepção de memória de um computador é errada, o certo seria posições de armazenamento, já que não sabemos como nossa memória funciona.
  23. [1] Linguagem Python, linguagem de montagem, as nomeações incorretas utilizadas. [3] Gostei da palestra.
  24. [1] Computador é burro. [2] Por que a Microsoft é tão boa com computadores? [3] Bacana. RESP.: Computador é "burro" no sentido de executar cegamente as instruções; se um computador não seguisse estritamente essas instruções, não faria o que se espera que ele faça.
  25. [1] Como funciona o computador. [3] Dinâmica do computador físico ficou confusa.
  26. [1] Aprendi o basico da linguagem de programação e como ela era feita antigamente, aprendi um pouco de Python. [2] Um supercomputador pode fazer todas estas coisas mais rapido ou de pez [?] mais. [3] Foi uma aula legal. RESP.: Um supercomputador simplesmente executa os programas mais rapidamente.
  27. [1] O computador não tem memória, computador "le" dados e informações -> é burro. Unidade central de armazenamento é em número. [2] Não ficou duvida. RESP.: Atenção, computadores não leem, o ser humano é que lê. Um computador reconhece símbolos de acordo com o programa que está sendo interpretado.
  28. [1] A importância da codificação para um computador. [2] Como funcionam os computadores mais complexos. [3] Muito boa palestra. RESP.: Por exemplo, os computadores hoje em dia não têm apenas um acumulador, como os primeiros computadores que foram construídos, mas têm vários, chamados de "registradores". Mas no Windows "registry" tem outro sentido, contém dados sobre os programas.
  29. [1] O mais importante do que aprendi hoje foi como os processos lógicos ocorrem "dentro" dos computares. [2] Como ocorre o funcionamento de redes neurais e como isso está relacionado com as aula de hoje? [3] Muito interessante! RESP.: Redes neurais artificiais são dados organizados em forma de redes, com "nós" e "arestas" que os ligam. Cada nó tem algumas entradas pela quais passam dados, que são combinados matematicamente para dar uma saída do nó também em forma de dado. Assim combinam-se os dados fornecidos a uma dessas redes, transformando dados de entrada na rede em uma saída. Fornecendo-se muitos dados de entrada na rede e os dados de saída correspondentes, pode-se calcular quais são os parâmetros que devem entrar nos cálculos em cada nó, o que é chamado indevidamente de "aprendizado de máquina" ("machine learning"; indevidamente pois não se sabe como o ser humano aprende, isso é mais uma antropomorfização indevida). Depois de ajustados os parâmetros, dão-se dados de entrada e a rede calcula os de saída, por exemplo distinguindo um cachorro de um gato. A nomenclatura "rede neural" é indevida pois não se sabe como a rede de neurônios funciona no cérebro.
  30. [1] O mais importante foi aprender como o computador é organizado.
  31. [1] Aprendi um pouco melhor como a CPU trabalha. [2] Como funciona o python, foi a maior dúvida. RESP.: Em um curso de programação, sempre se aprende uma linguagem do nível da Python. Ela foi usada como exemplo pois é moderna e muito usada hoje em dia. Há cursos de Python na Internet, por exemplo a de meu colega Fábio Kon, em
    https://www.coursera.org/learn/ciencia-computacao-python-conceitos/home/welcome
    que é grátis se não se requer um certificado.
  32. [1] Como o computador funciona e como, mesmo sendo uma máquina, tem problemas no funcionamento.
  33. [1] Aprendi o básico do funcionamento dos computadores mais antigos e como interpretavam codigos. [2] Como funcionavam os computadores antigos em geral. [3] Achei a apresentação boa.
  34. [1] Funcionamento da estrutura do computador; representação de letras. [2] Qual o resultado da programação. RESP.: O resultado da programação é um programa escrito em alguma linguagem de programação, e que pode ser introduzido em um computador e os comandos serem interpretados da maneira como o programador desejava.
  35. [1] Acredito que compreendi como um computador funciona superficialmente (já que deve ser bem complicado). [2] A maior dúvida se apresenta em como exatamente com (exemplos variados do cotidiano) esses conceitos poderiam ser aplicados. [3] Obrigada pela palestra. RESP.: Sim, os circuitos eletrônicos são bem complicados. Os conceitos são aplicados em processamento de dados em um computador. A intenção principal foi mostrar como o computador interpreta um programa em linguagem de máquina.
  36. [1] Eu achei muito interessante a maneira com que o computador procura o código e realiza um comando. [2] Como dois sinais iguais são interpretados diferentes. RESP.: Desde a primeira linguagem de nível mais alto do que a linguagem de máquina, FORTRAN, quase todas as linguagens de programação usam o = para atribuição de um dado a uma posição de memória, por exemplo A = 5 produz uma cópia do 5 (na notação interna; no HIPO seria +0005) e coloca-a na posição associada à variável A. Outras linguagens usaram a notação, muito mais clara, A := 5, como ALGOL e PASCAL. Desde a linguagem C usam-se dois sinais == para teste de igualdade, por exemplo, depois de interpretar A = 5, A == 6 dá o valor convencionado como falso, e A == 5 dá verdadeiro. É uma lástima não se ter mudado o sinal de atribuição (=) em lugar de se ter mudado o sinal para teste de igualdade (==).
  37. [1] Unidade central de processamento recebe dados da unidade de entrada, capacidade do programa é 9999. [Desenho da estrutura apresentada.] Códigos numéricos +#### [quadradinhos]. [2] Não fiquei com nenhuma dúvida. [3] Professor muito bom e explica de forma que os alunos entendam!
  38. [1] A maneira como um computador recebe as informações e o que ele é. [2] Não ficou dúvida.
  39. [1] O que aprendi de mais importante foi a linguagem que o computador lê, muito impressionante. [2] Como que se implanta essa linguagem no computador. RESP.: Se um programa for escrito em uma linguagem de montagem (assembly language, ou assembler) ele tem que ser dado a um programa chamado "montador" (ou "assembler) para que cada instrução seja convertida em uma instrução da linguagem de máquina. Já nas linguagens de nível mais alto, como a Python que foi exemplificada, um programa tem que traduzir cada comando (como Soma = 0) para a linguagem de máquina; esse programa é chamado de "compilador" (compiler). A construção de compiladores é uma área específica da Ciência da Computação; eu tenho um velho livro sobre esse assunto; ele está na íntegra em meu site.
  40. [1] Afirmar que computadores possuem "memória" é errôneo, assim como dizer que são produzidas inteligências artificiais.
  41. [1] Aprendi o método de funcionamento de um sistema simples de um computador. [2] Não houve dúvidas. [3] Uma ótima palestra.
  42. [1] O método de envio e/ou recepção de informações dentro de uma máquina, no caso, computador. [2] Não houve dúvidas. [3] Ótima palestra!
  43. [1] O que eu mais aprendi foi a lógica essêncial do funcionamento dos computadores. [2] A única dúvida restante foi como os dados são transferidos pelo computador (por exemplo, como os dados passam da central para o instrutor e vice-versa). RESP.: Os dados circulam em um computador representados eletricamente. Por exemplo, se em um circuito passa corrente pode-se associar a ele o símbolo 1, se não passa corrente, o símbolo 0.
  44. [1] Como o computador interpreta dados e instrução, a partir da entrada. [2] Como o computador interpreta código binário, e como ele exibe letras e imagens a partir de números. [3] Muito divertida e interessante. RESP.: Ver a resposta à avaliação 3 acima.
  45. [1] O funcionamento interno de um computador para executar os comandos encaminhados pelo usuário, assim como a linguagem das máquinas foi o aspecto mais importante aprendido. [2] A principal dúvida foi a prática de todos os elementos do computador, uma vez que, pessoalmente, funciona de forma abstrata pela programação.
  46. [1] Conceitos básicos do PC. [3] Gostei muito da apresentação.
  47. [1] [Desenho da estrutura de um computador]. Expressões antropomorficas -> imitação de expressões humanas em objetos inanimados -> memória, inteligência artificial. Posições de memoria -> dados. Entrada -> "organiza" as posições de memória. UCP (central de processamento) -> interpretação; -> possui uma capacidade de armazenamento. Comandos de instruções -> indica qual dado deve ser analisado. [2] Linguagem de máquina x montagem. RESP.: A linguagem de montagem (assembler) é simplesmente uma associação de códigos mnemônicos, fáceis de lembrar, às instruções da linguagem de máquina, e a possibilidade de se dar nomes (chamados de "rótulos", labels) às posições de memória, como Zero no exemplo dado, para dar esse nome ao dado de valor +0000. Com isso não é necessário lembrar dos códigos das instruções (por exemplo, 21 para soma), e nem de endereços numéricos das posições da unidade central de armazenamento.
  48. [1] Para mim, o aprendizado mais importante foi entender como a lógica do computador difere da humana. [2] Como a linguagem do computador é traduzida para linguagens cujas estrutura e lógica diferem da Ocidental? RESP.: Excelente observação, que não foi tratada explicitamente na palestra. O computador faz escolhas lógico-matemáticas, o ser humano toma decisões, inclusive qualitativas, que se introduzidas em um computador têm que ser reduzidas a escolhas lógicas, e não é a mesma coisa! Tanto faz que símbolos o computador usa. Certamente os ideogramas orientais são considerados como símbolos quantificados, como nossas letras e sinais como o +.
  49. [1] Entender que muitas nomenclaturas utilizadas, tal como "ler" e "memória", são, na verdade, incorretas. [2] Para mim, a maior dúvida foi a respeito do simulador apresentado (seu funcionamento).
  50. [1] Aprendi o princípio lógico de processamento de um computador.