1 - Introdução Aos Princípios Fundamentais Da Computação
1 - Introdução Aos Princípios Fundamentais Da Computação
1 - Introdução Aos Princípios Fundamentais Da Computação
Objetivos
Trata-se de entender que essas máquinas e seus componentes são nossos filhos;
elas reproduzem e aceleram o volume de cálculos, armazenamentos e
comunicações que nós idealizamos. Dessa forma, cada vez que precisamos de
algo a mais, a máquina trabalha para atender nossas demandas. Entender isso é
perceber que não estamos em uma maratona contra a tecnologia, com medo de
nos tornarmos obsoletos. Novas tecnologias surgirão, e isso é algo que nós
mesmos buscamos. Cada máquina, cada software, cada hardware tem o
propósito de atender, acelerar e realizar um desejo do coletivo. Algo que não tem
essa funcionalidade é abandonado, é esquecido.
Equação fundamental
Anotem a equação para não se esquecerem dela. O computador é igual a:
computer computer
close
Imensa capacidade de Terrível deficiência do pensar
processar
Vamos entender o que é isso. Este conteúdo trata dos recursos básicos do
funcionamento dos computadores. Isso é muito importante, pois, em pleno século XXI,
não é desejável que um profissional pense no computador como algum tipo de caixa
mágica com a qual todos interagem diariamente. De fato, no mercado de trabalho
atual, é cada vez mais importante que os profissionais saibam como o computador
faz o que faz.
É essencial perceber que o mercado de
trabalho não é um ente determinador,
mas, sem dúvida, a relação com a
empregabilidade é fundamental. Você
consegue perceber alguma função em
que o uso tecnológico não é necessário?
Pense bem: as salas de aula, os
treinamentos... Enfim, tudo, de alguma
forma, vivencia o uso da tecnologia.
Com isso, nós nos deparamos com um dilema: a adoção da tecnologia não é linear,
nem todos têm acesso a ela nem possuem a mesma experiência como usuários.
Atenção!
O desespero de diversas instituições gerou o processo mais absurdo: já que todos não podem dispor de
tecnologia, então vamos abrir mão dela. Isso só aumentou a segregação, a fragilidade de grupos sociais que
não têm acesso à tecnologia. Quando fazemos isso, negamos a vários profissionais a possibilidade de
diminuir essas diferenças.
Porém, o que pode ser feito? Se não aprendermos a usar a tecnologia do momento, se
renegarmos a tecnologia para garantir igualdade, qual a solução proposta? Uma ideia
é entender o funcionamento básico dos computadores, perceber como funcionam
essas máquinas e, independentemente da tecnologia atual, compreender qual o
sentido de sua atualização — os computadores estão sempre sendo atualizados, uma
vez que o homem precisa constantemente de novas respostas e possibilidades.
computer computer
Extremamente poderosos Profundamente tolos
Você provavelmente deve pensar “portanto, operações tão simples como essas não
são capazes de gerar discernimentos ou entendimentos mais elaborados, como, por
exemplo, identificar a impressão digital de uma pessoa, certo?”. Embora você pense
dessa forma, computadores fazem isso: identificam digitalmente um indivíduo.
Saiba mais
Estudos revelaram que os humanos possuem impressões digitais singulares. Com base nisso, foi elaborada
uma forma de retirar esses dados — primeiro, foi utilizada graxa para colher digitais; atualmente, usam-se luz
e calor —, criando um banco de dados com essas informações. Portanto, o trabalho de discernimento é
humano; o computador apenas cruza, de forma mais rápida e efetiva, os dados armazenados pelas pessoas.
Filmes
Na seção Explore+, indicaremos um vídeo da lendária cena do filme 2001: uma odisseia no espaço, e esperamos
que, ao ver esse trecho, você entenda como computadores são bem diferentes do que é mostrado em filmes
como esse.
A descrição de filmes que mostram isso é interessante, como Matrix, Exterminador do futuro e Eu, robô. Basta ler
uma sinopse para perceber como o senso comum olha para o desenvolvimento das máquinas.
Um dos principais movimentos intelectuais trabalhados pelos gregos foi perceber que,
no mundo, existe uma parte física, calculável, com possibilidades amplas, e que, sem
essa percepção, não é possível entendê-la — trata-se do mundo físico. Também temos
outra parte, que, embora seja proveniente das representações físicas do mundo, não
depende delas para a construção dos sujeitos.
Uma velha alegoria de Platão ajuda a explicar isso. Trata-se da alegoria da caverna, em
que é mostrado que todos nós vivemos em um mundo limitado, físico, de pedra, com
as representações nas paredes iluminadas por um fogo contínuo atrás de nós.
Quando libertos, o que encontramos é um mundo infinito, perfeito, é o mundo do
pensamento, da abstração. Nossa capacidade de abstração e de pensar é infinita, mas
nossa capacidade de materializar o que foi pensado é limitada. Esse é um dos
sentidos da alegoria. Buscamos ser mais eficientes, mais próximos das múltiplas
possibilidades de nossa mente.
Será mesmo? Claro que não! Essa disputa nunca foi entre a máquina e o homem, mas
sim entre o programador e o xadrezista.
Chave de respostaexpand_more
Vamos fazer o relato de uma experiência. No filme Eu, robô, ocorre o debate
filosófico que estamos propondo. Será que, pela inteligência artificial, o
algoritmo pode ser compreendido de forma equivocada? Repare que o filme é
perfeito no uso da equação primordial, pois, em momento algum, trata de uma
mente coletiva para as máquinas. Nem mesmo a Vick, pois tudo o que ela faz é
executar uma ordem humana, que não foi feita corretamente. O robô criado pelo
doutor segue regras de programação e acúmulo e não cria nada que vá além de
sua programação. Embora o detetive busque encontrar algo que comprove a
falha — essa nossa expectativa de que as máquinas têm alma, vida própria e são
uma ameaça —, isso não acontece. É utilizada a equação de formulação —
máquinas impressionantemente velozes e capazes de processar, mas
totalmente burras, incapazes de “pensar” ou agir fora de sua programação.
Estudamos sobre a equação essencial dos computadores. De acordo com o que foi
visto, os computadores
Questão 2
A I apenas.
B II apenas.
C III apenas.
D I e III.
E I, II e III.
Claro que não! Uma fórmula é uma simplificação, e cada um de seus elementos só
tem sentido se for observado dentro de um contexto. Demos o exemplo matemático,
porém a matemática é apenas uma leitura da vida.
Imagine um motorista que condicionou o seguinte: sinal (farol) amarelo é para parar.
Porém, no trânsito, nem todos pensam da mesma forma. Logo, se esse motorista vê
um sinal amarelo e para, pode ser que o condutor que vem atrás, por não pensar como
ele, não consiga frear. O resultado é a colisão. O ponto é que, para que um computador
execute o que você deseja, ele precisa de informações, padrões e leituras, pois só
assim ele será capaz de ampliar suas possibilidades de soluções.
Comentário
Os computadores, e incluímos aí o seu celular ou o PC que você usa, têm a mesma dinâmica. Todos
receberam informações — processos e procedimentos — para que pudessem executar o que se espera deles.
É isso que vamos estudar agora.
Código
Que tal, agora, pensarmos nos filtros para maquiagem? Mas isso serve para quê? Para
atender aos desejos do usuário. Diverte, faz rir, aumenta a autoestima. A programação
não julga, não cria a demanda; ela atende à demanda. Embora receba as instruções e
realize as tarefas, a utilidade é do usuário que precisava daquilo.
Sempre que você pensar em um código,
deve imaginar o seguinte: se ele foi
criado e, principalmente, se alcança um
grande número potencial de utilização,
não foi o computador que evoluiu, mas a
sociedade. Alguém captou uma demanda
e observou que a máquina, que a criação
de um código, poderia suprir essa
carência, nem que fosse fazer rir.
Definição
Para usar o e-mail, assistir a um vídeo,
conversar pelo WhatsApp, realizar
operações bancárias, ou qualquer outro
recurso útil via computador, smartphones
etc., foi preciso que, em algum momento,
uma pessoa ou uma equipe pensasse:
“Bem, deveríamos escrever um algoritmo
para isso”.
dvr account_tree
Código (definição simplificada) Algoritmo (definição
simplificada)
É um conjunto qualquer de É um termo que reflete uma
instruções simples escrito em close ideia mais completa, em que o
alguma linguagem padrão conjunto de instruções
compreensível para o possuem uma finalidade útil.
computador. Deve ser escrito Não precisa ser escrito em
em uma linguagem de linguagem de computador,
programação padrão, senão os podendo ser escrito, por
computadores não exemplo, em português.
conseguirão executá-lo.
Com a lei de Moore, os computadores têm ficado mais baratos, e isso ocorre há várias
décadas. Como resultado, eles podem ser mais difundidos e é possível embutir mais
pesquisa científica para desenvolvê-los, tornando-os ainda mais rápidos. Conheça
mais a seguir.
Lei de Moore
A previsão feita há mais de 50 anos por
Gordon Moore é fantástica. A tecnologia
está em evolução e desenvolvimento
contínuos. Afinal, cada vez mais,
sistemas dependem da tecnologia, em
virtude de sua interconexão, permitindo a
ampliação da tecnologia e dos produtos
e aumentando a velocidade de sua
substituição.
Relembrando
Um computador é apenas mais uma das históricas tentativas humanas de facilitar e resolver demandas que
surgem de forma recorrente. Na busca dessas demandas, cada inovação que aparece torna-se uma estrutura
— quer dizer, parte da sociedade, ao mesmo tempo, é estruturante e força novas buscas, transformando toda
a sociedade. Nós, humanos, temos essa característica, e as máquinas vivem para atender a demandas que
são pensadas e estruturadas por nós.
Depois que uma demanda é pensada, precisamos focar o processamento das informações e a capacidade
de armazená-las. Isso, aliás, é a origem de todo o processo da computação. Homens precisavam ampliar sua
capacidade de armazenamento, de reprodução, de execução.
Agora, pense sobre a questão. Em seguida, construa um texto que conte um pouco da
história de como a tecnologia (em suas fases de desenvolvimento) impactou sua vida
escolar, xsua casa etc.
Esse exercício é para você pensar em velocidade, mas é importante que também
perceba: continuamos desenhando códigos e executando algoritmos, permanecemos
como um operador de máquina da Revolução Industrial, ou como uma criança
aprendendo a ler e a escrever, que necessita entender a mecânica de funcionamento e
a busca de melhoria da execução.
Pense nisso!
Questão 1
A I e II.
B I e III.
C II e IV.
D I apenas.
E II apenas.
Códigos em execução
Preparação
Aqui queremos chegar ao ponto em que você possa escrever algum código de
computador, executá-lo e ver o que ele faz. No computador, tudo se resume realmente
a códigos em execução (rodando). É assim que as coisas acontecem. Assim, para que
a natureza dos computadores seja entendida, nada melhor do que rodar um pouco de
código e ver como ele funciona.
Atenção!
Não se preocupe, pois não veremos casos complexos com um milhão de linhas de código, mas apenas um
pouco de código. Somente o mínimo, para que você tenha o primeiro contato com o que é escrever código de
computador.
Assim como usamos alguma língua (português, inglês etc.) para conversar com as
pessoas, é necessário usar uma das linguagens disponíveis para escrever códigos que
o computador compreenda. Existem várias linguagens de computador diferentes para
informar ao computador o que fazer.
Aqui, utilizaremos uma das mais usadas na atualidade, uma versão simplificada da
linguagem Javascript, por exemplo, empregando instruções simplificadas para
impressão na tela e nas estruturas de repetição. Usaremos somente os principais
recursos, para que você possa escrever e manipular códigos bem simples e brincar
com a ideia-chave: compreender de fato como funcionam os computadores.
JavaScript
No mundo de computadores, alguns termos, como JavaScript, são nomes próprios e, por isso, não possuem
tradução. Não se preocupe, pois rapidamente você estará bem ambientado com esse termo. Situação
semelhante ocorre com as instruções reconhecidas por linguagens de programação. Por exemplo, a instrução
print é reconhecida pela linguagem JavaScript, e ambos os termos não possuem tradução.
Prática 1
Assista ao vídeo para o nosso primeiro exemplo prático.
Esse é apenas um segundo tipo de dados que seremos capazes de usar para informar ao computador como fazer as coisas.
Existem muitos outros tipos de dados, mas, por enquanto, nós nos limitaremos aos vistos até agora.
Prática 2
Clique em Executar e observe o resultado apresentado em Saída.
Código-Fonte Saída
print(6, "Teste");
print("Bom dia",2,"Tchau");
Rodar/Executar
O que temos de novidade aqui? O que fizemos foi usar a sintaxe padrão para informar
ao computador que o que está sendo impresso é um texto (string). Para isso,
cercamos as strings Teste, Bom dia e Tchau com aspas duplas.
Dica
Um comentário, em JavaScript, começa com duas barras. Em seguida, você pode escrever notas para você
mesmo, para lembrá-lo, no futuro, do que você pretendia ou do que está tentando fazer neste ponto do seu
código. O computador sabe ignorar comentários, então é apenas uma maneira de adicionar
decorações/lembretes ao código com pequenas observações.
Um exemplo intrigante que podemos citar aqui é colocar a palavra print no lugar de
Tchau. Isso é intrigante, pois print também é o nome da instrução de impressão
reconhecida pela linguagem de programação que estamos usando.
Código-Fonte Saída
print(6, "Teste");
print("Bom dia",2,"print");
Rodar/Executar
Como a string print está delimitada por aspas na terceira linha, o computador sabe que
se trata apenas de mais um texto a ser impresso, e não de outra instrução print.
Portanto, quando sequências de caracteres são colocadas entre aspas duplas, como
neste exemplo, o computador entende que se trata apenas de dados passivos, e lida
com eles conforme esperado.
Atenção!
Note que temos uma lição importante aqui sobre sintaxe. Nós já sabemos que ela é restrita e mecânica; no
entanto, é importante entender que você está seguindo um padrão/convenção ao escrever um código de
computador que envolve a sintaxe, o que é característico da linguagem de programação. Então, é muito
comum, mesmo para programadores muito profissionais, a ocorrência de pequenos erros de sintaxe.
A razão pela qual estamos discutindo isso é que, quando alguém está apenas
começando a aprender a escrever códigos (programar), será bastante comum se
deparar com erros de sintaxe. Então, jamais se permita ter a impressão de que você
não está entendendo como escrever código. Apenas entenda que todo mundo passa
por erros de sintaxe, inclusive programadores com décadas de experiência. Então,
quando se deparar com erros de sintaxe, apenas faça uma checagem rápida e
cuidadosa para corrigir os erros e seguir adiante.
Para promover a ideia de que o erro de sintaxe não é grande coisa, queremos mostrar
como consertar isso. Veremos alguns exemplos práticos a seguir. São apenas alguns
exemplos de código, todos com erros de sintaxe. Queremos que você treine o
processo de identificá-los e corrigi-los.
Prática 3
Como vimos, todo mundo passa por erros de sintaxe. Vamos aprender a identificá-los
e corrigi-los!
O resultado de cada um dos seis exemplos a seguir deve imprimir, em Saída, as letras
destacadas em verde. Você precisa corrigir a sintaxe de cada um dos seis exemplos.
Depois que você corrigir a sintaxe das instruções, cada um dos seis exemplos
imprimirá exatamente as três linhas indicadas em vermelho mais à frente.
Resultado da saída dos exemplos.
Código-Fonte Saída
print("A");
prlnt("B","B");
print("C","C","C");
Rodar/Executar
Código-Fonte Saída
print("A");
print("B","B);
print("C","C","C");
Rodar/Executar
Código-Fonte Saída
print("A");
print("B","B");
print("C","C","C";
Rodar/Executar
Código-Fonte Saída
print("A");
print("B""B");
print("C","C","C");
Rodar/Executar
Código-Fonte Saída
print("A");
print(,"B");
pront("C","C","C");
Rodar/Executar
Código-Fonte Saída
print"A");
print("B","B");
print("C","C","C";
Rodar/Executar
Solução expand_more
1. No primeiro exemplo, o segundo print está escrito errado. Há um l no
lugar do i.
2. No segundo exemplo, faltam aspas após o segundo B.
3. No terceiro exemplo, falta o parêntese direito na terceira instrução.
4. No quarto exemplo, falta vírgula entre as duas letras B.
5. No quinto exemplo, está faltando o primeiro B na segunda linha. Além
disso, o terceiro print está escrito errado (pront).
6. No sexto exemplo, está faltando o parêntese esquerdo na primeira linha e
o parêntese direito na última linha.
Por fim, precisamos abordar mais um conceito básico: variáveis. Uma variável no
computador é como uma caixa, ou seja, um local onde podemos armazenar valores
para uso futuro. Então, se tivermos um código em que atribuímos o valor 7 a uma
variável V, o que isso significa é que há uma caixa no computador chamada V,
conforme ilustrado na tabela a seguir, nós simplesmente podemos armazenar um
valor, como um 7, nessa caixa. Também poderíamos armazenar qualquer valor que
quiséssemos.
O que significa na prática?
"Caixa" ← 7
Na segunda linha, damos um comando para imprimir o valor da variável, que será
7 neste exemplo.
Código-Fonte Saída
V=7;
print(V);
Rodar/Executar
Prática 4
Observe o que acontece quando substituímos 7 por 1980 e clicamos em Executar.
Note que todos os locais em que V foi referenciado resultaram em 1980 na saída.
Código-Fonte Saída
V=1980;
print(V);
Rodar/Executar
Prática 5
Escreva, a seguir, um código que atribua a uma variável chamada N a string Guilherme,
e depois clique em Executar para obter a seguinte Saída:
Código-Fonte Saída
Rodar/Executar
Solução expand_more
Java
content_copy
Brinque à vontade com as práticas anteriores, até que fique à vontade para definir
mais do que uma variável e imprimir mais do que um valor, até estar confortável com a
ideia de que, para computadores, o uso do igual e de instruções significa atribuição.
Isso é importante, pois, em matemática, o sinal de igual possui um significado
diferente.
Questão 1
Para que um código reproduza a saída "13 35 Brasil", qual das alternativas estaria
correta?
A print("treze","trinta e cinco",Brasil)
B print(13,35,Brasil)
C print(13,35,"Brasil")
D print(13,35,"Brasil"
Na opção A, teríamos um erro informando que Brasil não está definido. Além disso,
os valores estão escritos por extenso. Na opção B, estão faltando aspas duplas
cercando a string Brasil, o que geraria uma mensagem de erro. Na opção D, falta o
parêntese direito ao final da instrução. Na opção E, os valores estão por extenso e
sem aspas duplas.
Questão 2
NOME="João"
print(NOME, "NOME", "NOME");
NOME="João" -> Esta instrução atribui o texto passivo (string) "João" à variável
NOME
Considerações finais
Pensamento computacional parece um tema futurístico. Inclusive, muitos alunos
devem ter se lembrado dos filmes de catástrofe, em que a tecnologia se levanta contra
o homem. Neste material, você foi tranquilizado sobre essas questões. Primeiro,
descobriu que máquinas são terrivelmente ignorantes e profundamente capazes.
Somente a partir da interação e da estruturação de um conjunto de linguagens
específicas, o grande potencial das máquinas — armazenamento e processamento —
pode ser efetivamente estruturado.
Sendo assim, pensamento computacional é um convite para que você entenda como
funciona essa relação entre máquinas e homens e, com isso, perceba que não é
preciso dominar tecnicamente uma ferramenta apenas em determinado momento,
pois, embora elas sejam atualizadas constantemente, a dinâmica e os fins
permanecem os mesmos.
Nesse sentido, o que você precisa conhecer, então, são as linguagens que compõem
esse novo universo: códigos e algoritmos. Se você entendeu que código são as
instruções que o ser humano dá à máquina — mostrando que computadores
executam nossas demandas — e que algoritmo é a linha desse comando estruturado
para que a máquina interprete e execute, você entendeu a essência da dinâmica
comando, forma de comando, execução, novas demandas, comandos e forma de
comando, sempre impulsionada pelas demandas humanas.
Para concluir, sugerimos que você faça inúmeros testes (em alguma das práticas
acima) a fim de perceber como se relacionou com o assunto, criou e executou a
dinâmica proposta. Como uma criança que aprende a engatinhar e a ficar em pé, daqui
por diante, busque dar os primeiros passos, entendendo a mecânica, e, em breve, você
estará correndo.
headset Podcast
Ouça um resumo sobre os principais assuntos abordados no tema.
Explore +
A literatura e o cinema de ficção contribuíram muito para discutir a percepção da
máquina (e do computador) como superior e possível inimiga da humanidade. Esta é
uma das funções da arte: provocar nossa reflexão! Assim, além das obras citadas ao
longo de nosso material, sugerimos algumas outras.
Assista:
Jornada nas estrelas: Picard, de Akiva Goldsman, Michael Chabon, Kirsten Beyer
e Alex Kurtzman (2020–atualmente)
Referências
CARVALHO, A.; LORENA, A. Introdução à computação: hardware, software e dados. Rio
de Janeiro: LTC, 2017.
DALE, N.; LEWIS, J. Ciência da computação. 4. ed. Rio de Janeiro: LTC, 2011.
GLENN, J. Ciência da computação: uma visão abrangente. 11. ed. Porto Alegre:
Bookman, 2013.