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
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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.
- [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).
- [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.
- [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.
- [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.
- [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.
- [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.
- [1] O funcionamento e a complexidade de um computador. [2] Não
restaram duvidas. [3] Gostei muito do teatro.
- [1] Funcionamento básico de um computador. [2] Não fiquei
com nenhuma dúvida, o palestrante lecionou muito bem.
- [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.
- [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.
- [1] Linguagem Python, linguagem de montagem, as nomeações
incorretas utilizadas. [3] Gostei da palestra.
- [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.
- [1] Como funciona o computador. [3] Dinâmica do computador físico
ficou confusa.
- [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.
- [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.
- [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.
- [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.
- [1] O mais importante foi aprender como o computador é organizado.
- [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.
- [1] Como o computador funciona e como, mesmo sendo uma máquina,
tem problemas no funcionamento.
- [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.
- [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.
- [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.
- [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 (==).
- [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!
- [1] A maneira como um computador recebe as informações
e o que ele é. [2] Não ficou dúvida.
- [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.
- [1] Afirmar que computadores possuem "memória" é
errôneo, assim como dizer que são produzidas inteligências
artificiais.
- [1] Aprendi o método de funcionamento de um sistema simples
de um computador. [2] Não houve dúvidas. [3] Uma ótima
palestra.
- [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!
- [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.
- [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.
- [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.
- [1] Conceitos básicos do PC. [3] Gostei muito da apresentação.
- [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.
- [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 +.
- [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).
- [1] Aprendi o princípio lógico de processamento de um
computador.
|