Pensamento Computacional
Pensamento Computacional
Pensamento Computacional
PROPÓSITO
Iniciar as bases do Pensamento Computacional demonstrando o seu
protagonismo no mercado de trabalho. Construir uma compreensão introdutória
dos conceitos primordiais que norteiam o mundo dos computadores.
OBJETIVOS
MÓDULO 1
MÓDULO 2
Reconhecer o processo de exploração do potencial dos computadores através
de códigos e algoritmos
MÓDULO 3
INTRODUÇÃO
VOCÊ SABE COMO OS
COMPUTADORES SURGIRAM?
Muitos pensarão em teorias da conspiração, grupos secretos, investimentos
maciços de governos em tecnologia. Outros se lembrarão dos mais velhos
comentando sobre os cartões perfurados e dos primeiros computadores, que
eram do tamanho de uma sala. Um grupo de apaixonados por tecnologia
comentará o uso dessa tecnologia durante as guerras do século XX, quando
essas máquinas estavam relacionadas a arquivo e trânsito de informações.
No entanto, o processo é, definitivamente, mais longo e mais complexo. Os
computadores não são chips, bits e afins. Computadores são o que as
máquinas sempre representaram: homens em busca de soluções. Ao longo
dos séculos, essa necessidade nos permitiu criar diques para contenção de
água, prédios e até estradas para tornar as grandes viagens mais rápidas.
NÃO ENTENDEU?
Significa a necessidade x tecnologia. Imagine que você tenha um biscoito
delicioso, e sua característica mais maravilhosa é que ele sempre parece que
saiu do forno neste exato momento. Será que o biscoito é assim pelo fato de
possuir uma fórmula que o faz parecer sempre fresquinho, ou faz muito
sucesso por estar sempre fresquinho nos pontos de venda?
POR EXEMPLO:
Os gregos, em um momento de crise – a fim de que os líderes das famílias
parassem de brigar –, decidem criar um conselho. Esse conselho administraria
por meio do voto, e os membros teriam o direito de falar e defender suas
ideias. Como essa medida deu certo, os pais passaram a querer que seus
filhos estudassem cada vez mais, para que tivessem mais força nesses
conselhos. Com isso, geração após geração, a Educação passou a ser cada
vez mais valorizada. É sempre assim: o homem busca soluções, que, uma vez
criadas, levarão a uma nova situação. Isso faz com que as proposições
estejam sempre em mudança.
A filosofia da ciência – e a palavra ciência é ótima, pois está relacionada a
tomar entendimento, entender – afirma que o seu desenvolvimento vem da
busca do homem por soluções. Assim, cada nova solução gera um novo
conjunto de buscas. Uma espada; um par de óculos; o desenvolvimento de
cirurgias, de um método de produção, de uma máquina a vapor, do trem, do
carro... Em todos os momentos, a tentativa é sempre a mesma: encontrar
soluções.
COMPUTADOR
=
A IMENSA CAPACIDADE DE
PROCESSAR
X
PELA TERRÍVEL DEFICIÊNCIA NO
PENSAR.
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 APRENDEREMOS A USAR A
TECNOLOGIA DO MOMENTO, SE NÃO
RENEGAREMOS 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.
Fonte: Shutterstock
ATENÇÃO
Felizmente, qualquer pessoa pode compreender, basicamente, como os
computadores funcionam. Nosso objetivo é explorar as qualidades essenciais
dos computadores, como eles funcionam, o que eles podem e o que não
podem fazer.
COMPUTADOR
=
PODEROSAMENTE RÁPIDOS, PORÉM
TOLOS.
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.
Isso ocorre porque discernimento e compreensão são qualidades humanas!
A realidade não poderia estar mais distante daquilo que é mostrado nos filmes.
O que temos é uma combinação engraçada, que une a poderosa capacidade
de executar instruções a um conjunto de instruções que, inicialmente, parecem
tolas. Então, é necessário compreender como é possível, mesmo assim, criar
recursos/soluções interessantes e poderosos.
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.
E a Inteligência Artificial?
E os robôs que podem ter sentimentos?
Enfrentar uma máquina em um jogo de xadrez era uma das maiores diversões
do século XX. Durante muito tempo, os grandes nomes do xadrez foram os
vencedores, mas, lenta e continuamente, o desempenho das máquinas foi
melhorando, e os jornais proclamavam:
Entretanto, tudo o que ela fez foi executar aquilo que o programador pediu, só
que com uma capacidade que o homem, de forma direta, jamais conseguiria.
VERIFICANDO O APRENDIZADO
ATENÇÃO!
Para desbloquear o próximo módulo, é necessário que responda corretamente
a uma das seguintes questões.
GABARITO
Módulo 2
ATENÇÃO
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.
Fonte: Shutterstock
CÓDIGO
Para compreendermos a essência do funcionamento de um computador,
precisamos entender o que é um código.
Então, dentro do computador, temos um corpo de códigos, e eles são apenas
uma série de instruções, como, por exemplo: adicione dias e medidas e
compare-os.
Que tal, agora, pensarmos nos filtros para maquiagem? Porém, 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, sim, 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.
Fonte: Shutterstock
Resumidamente:
ALGORITMO
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:
Fonte: Shutterstock
ALGORITMO
Por outro lado, um algoritmo é um termo que reflete uma ideia mais completa,
em que o conjunto de instruções possuem uma finalidade útil. Um algoritmo
não precisa ser escrito em uma linguagem de computador, podendo ser escrito,
por exemplo, em português.
A imagem a seguir pode ajudá-lo, caso você ainda esteja inseguro quanto à
diferença.
CÓDIGO
Definição simplificada
Linguagem
ALGORITMO
Definição simplificada
Sequência de passos simples e bem projetados para realizar uma tarefa ou
resolver um problema.
Linguagem
ATENÇÃO
Então, no que o computador é bom? Bem, o computador é bom em ser
rápido e barato.
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.
Dessa forma, a cada nova geração, um conjunto geracional antigo de
tecnologia passa a estar presente no mercado, sendo consumido por públicos
que não teriam acesso antes. Por outro lado, a cada evolução, a capacidade de
troca de dados e informações seriam maiores, e a necessidade de uso de
material, menor, permitindo um barateamento relativo. No limite, a evolução
tecnológica acaba barateando os computadores.
A popularização dos computadores é uma das maiores provas daquilo que foi
apontado por Moore:
Fonte: Shutterstock
Nos anos 1980, nos Estados Unidos (o que, no Brasil, só ocorreu a partir dos
1990).
A DINÂMICA.
REFLEXÃO
Você aprendeu a lógica do funcionamento do computador. Vamos revisar:
VERIFICANDO O APRENDIZADO
ATENÇÃO!
Para desbloquear o próximo módulo, é necessário que responda corretamente
a uma das seguintes questões.
I e II.
I e III.
II e IV.
Somente I.
GABARITO
Módulo 3
CÓDIGOS EM EXECUÇÃO
Neste módulo, queremos chegar ao ponto em que você possa escrever algum
código de computador, executá-lo e ver o que ele faz.
ATENÇÃO
Não se preocupe, pois não veremos casos complexos com um milhão de linhas
de código, mas, sim, apenas um pouco de código. Apenas 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, para escrever códigos que o computador compreenda, é
necessário usar uma das linguagens disponíveis. Existem várias linguagens de
computador diferentes para informar ao computador o que fazer.
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 este termo. O mesmo 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
A seguir, assista ao vídeo do nosso primeiro exemplo prático.
Para compreender como imprimir strings, veja a Prática 2 a seguir.
STRINGS
Strings e números são os dois tipos de dados muito comuns no código de
computador. Por exemplo, uma string é usada para lidar com nomes de
pessoas, endereços, endereços de páginas web, endereços de e-mail, ou até
mesmo um parágrafo, quando alguém está redigindo uma redação. Todos
esses exemplos de tipos de textos são armazenados na memória do
computador como strings.
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 Rodar e observe o resultado apresentado em Saída.
O QUE OCORRERÁ AO
SUBSTITUIRMOS TCHAU POR PRINT E
CLICARMOS E RODAR?
Se você mesmo fizer este teste na Prática 2, obterá o resultado ilustrado na
figura a seguir.
Figura 6: 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.
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 neste módulo é que, quando alguém
está apenas começando a aprender a escrever códigos (programar), será
bastante comum se deparar com erros de sintaxe, pois isso é realmente
comum. 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
1.
2.
3.
4.
5.
6.
MOSTRAR SOLUÇÃO
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 “,” 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.
"Caixa" V 7
PRÁTICA 4
Observe o que acontece quando substituímos 7 por 1980 e clicamos em
Rodar.
MOSTRAR SOLUÇÃO
É importante destacar que o sinal de igual “=” usado em código de
computador significa atribuição de valor.
Fonte: Shutterstock
VERIFICANDO O APRENDIZADO
ATENÇÃO!
Para desbloquear o próximo módulo, é necessário que responda
corretamente a uma das seguintes questões.
1. ALTERE, NO QUADRO CÓDIGO-FONTE A SEGUIR, O
CÓDIGO, PARA QUE O RESULTADO DA EXECUÇÃO EM
SAÍDA SEJA CONFORME O TEXTO EM VERMELHO A
SEGUIR. USE O BOTÃO RODAR/EXECUTAR PARA TESTAR
SE O SEU CÓDIGO ESTÁ CORRETO E A SAÍDA, CONFORME
O ESPERADO.
SAÍDA ESPERADA:
13 35 BRASIL
print(13,35,Brasil).
print(13,35,”Brasil”).
print(13,35,”Brasil”.
NOME=”JOÃO”
PRINT(NOME, “NOME”, “NOME”);
João João João.
GABARITO
Saída esperada:
13 35 Brasil
NOME=”João”
print(NOME, “NOME”, “NOME”);
Parabéns! A alternativa "D " está correta.
CONCLUSÃO
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 tema, 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.
AVALIAÇÃO DO TEMA:
REFERÊNCIAS
CARVALHO, A.; LORENA, A. Introdução à Computação:
hardware, software e dados. 1. ed. Rio de Janeiro: LTC, 2017.
DALE, N.; LEWIS J. Ciência da Computação. 4. ed. Rio de Janeiro:
LTC, 2011.
FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à
Ciência da Computação. 2. ed. São Paulo: Cengage, 2010.
FLANAGEN, D. Javascript: o guia definitivo. 6. ed. Porto Alegre:
Bookman, 2013.
GLENN, J. Ciência da Computação: uma visão abrangente. 11. ed.
Porto Alegre: Bookman, 2013.
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 tema, sugerimos algumas outras:
Livros
Filmes
Animatrix (2003)
Blade Runner (1982)
Ex-Machina (2015)
Gattaca (1997)
Wall-E (2008)
CONTEUDISTA
Guilherme Dutra Gonzaga Jaime
CURRÍCULO LATTES
DEFINIÇÃO
Conceitos básicos e primordiais sobre a execução de softwares. Apresentação
das formas como instruções escritas por programadores para serem
executadas
por CPUs.
PROPÓSITO
Compreender a lógica dos softwares, que são parte de nosso mundo e
permanecerão assim por muito tempo.
OBJETIVOS
✓ Reconhecer conceitos básicos sobre softwares
VÍDEO
Antes de iniciarmos nosso estudo sobre software, assista ao vídeo a seguir.
INTRODUÇÃO
Neste módulo, descreveremos os conceitos básicos sobre software de
computadores e responderemos, de forma introdutória, às seguintes perguntas:
O que é software?
O QUE É SOFTWARE?
Sempre que você baixa um programa ou vê um computador ligado, está
presenciando algum software sendo executado.
Porém, quem atua para que ela execute funções a partir do domínio de técnica
é o sujeito; a máquina mecânica é estruturada, e a mente humana é quem faz
a função.
Quando um sujeito decidiu que era possível programar a máquina para fazer
além da função repetida, para trançar uma estrutura, sucedendo e alcançando
a partir disso objetivos claros e novos, criou-se o software.
Embora não seja uma entidade física, ganha materialização em sua construção
virtual, independentemente da rede.
ESTAS INSTRUÇÕES
SÃO EXTREMAMENTE SIMPLES E
CONSTITUÍDAS APENAS DOS
NÚMEROS 0 (ZERO) E 1 (UM),
CONHECIDO COMO CÓDIGO BINÁRIO.
EXTREMAMENTE SIMPLES
Por exemplo, em uma instrução de código de máquina é possível adicionar
dois números; já em outra pode-se comparar dois números para ver qual deles
é maior.
HARDWARE
Hardware é o termo usado para se referir à parte física da coisa, o
equipamento.
Vamos a um exemplo:
pixel.setRed(255).
Esta instrução é muito mais complexa do que uma instrução de código de
máquina individual que CPUs são capazes de executar. Então, nós a
chamamos de uma instrução de alto nível.
ALTO NÍVEL
O termo “alto nível” designa a ideia de que as instruções são mais próximas de
nossa língua falada, se comparadas ao código de máquina, que é de “baixo
nível”.
IMPORTANTE
Trata-se de uma forma de distribuição, normalmente gratuita, de software
em que o programa compilado é fornecido, mas também há acesso ao
código-fonte original do programa.
Mas qual a diferença entre
CÓDIGO ABERTO
ATENÇÃO
Em geral, existem diversos tipos diferentes de termos de licença para
software de código aberto, mas, na maioria das vezes, eles exigem que,
se você fizer alterações no código-fonte e adicionar algum recurso, você
deve oferecer essas alterações à comunidade. Assim, da mesma maneira
que você se beneficiou dos outros ao obter o programa gratuito e seu
código-fonte, eles podem se beneficiar do seu trabalho.
VÍDEO
No vídeo a seguir, o professor Rodrigo Dias nos convida a refletir sobre
os impactos dos softwares de código aberto na sociedade.
O QUE É UM PROGRAMA?
Observe novamente o lado direito da Figura 1 e perceba que a CPU está
executando uma sequência de instruções presentes na memória RAM.
FIGURA 1
Tudo o que você pode ver o Firefox fazendo – como piscar o cursor,
conectar-se via rede a uma URL fornecida pelo usuário, desenhar
imagens na tela, obter páginas da Web, entre outros – ocorre graças à
CPU, que roda as instruções de forma tão inacreditavelmente rápida, que
você interage com o Firefox de forma fluida e natural.
FIREFOX
Em 2019, o projeto do navegador Firefox continha um total de 28.7
milhões de linhas de código/instruções.
Uma forma bastante simples de pensar sobre isso é usar uma analogia: o
relacionamento entre areia e escultura.
FIGURA 1
Em 2019, o projeto do navegador Firefox continha um total de 28.7
milhões de linhas de código/instruções.
Para executar as instruções de código de máquina,
as instruções usam um método chamado ciclo
busca-execução (fetch execute cycle).
No ciclo busca-execução, a CPU iniciará buscando a instrução 1 e
carregando-a para dentro de si (CPU), e a executará.
SAIBA MAIS
Quando dizemos que uma CPU opera a 4 GHz (giga-hertz), ou 4 bilhões de
operações por segundo, estamos nos referindo exatamente a essas
pequenas instruções.
Se a condição for verdadeira, diz, por exemplo, que ela avance para a
instrução 5.
GOTO
Goto é uma instrução na linguagem de informática e significa: vá para a
linha indicada e siga executando o código a partir desse local.
PASSO 1
Cópia dos bytes (ou seja, instruções) que compõem o arquivo do
dispositivo de armazenamento persistente (HD, por exemplo) para uma
área desocupada da memória RAM. Esta cópia é comumente chamada de
carregar (load) o programa.
PASSO 2
Após o carregamento (cópia do HD para a RAM), a CPU já é capaz de
realizar o ciclo busca-execução para rodar o programa Firefox. Então, o
passo dois consiste em apenas dizer à CPU “Aqui está a instrução 1 de
um programa. Você deve iniciar, a partir desta instrução, o ciclo busca-
execução para rodar este programa”.
PASSO 3
A CPU começa o processo de rodar/executar, de forma
inacreditavelmente rápida, as instruções. Pronto, nosso Firefox está
rodando, e o usuário já consegue navegar pela internet.
VERIFICANDO O APRENDIZADO
1. DEPOIS QUE UMA CPU EXECUTA UMA INSTRUÇÃO, O
QUE, GERALMENTE, FAZ A SEGUIR?
GABARITO
1. Depois que uma CPU executa uma instrução, o que, geralmente, faz a
seguir?
Quem lida com o duplo clique que usamos para ordenar que um
programa seja executado?
ARQUIVO WORD.EXE
Um arquivo .exe é essencialmente apenas um arquivo de
instruções de código de máquina. Quando você clica duas vezes
no programa, está ordenando que o SO “inicie” o programa,
executando as etapas de limpeza de alocação de uma área de
memória na RAM para o programa, carregando a primeira seção
do código de máquina do programa nessa memória e, finalmente,
direcionando a CPU para começar a executar esse código.
CÂMERA DIGITAL
Uma câmera digital também é um pequeno computador. Quando
é iniciado, ele não executa um programa de gerenciamento de
arquivos. Em vez disso, depois que a limpeza básica for
configurada, a câmera poderá executar um único programa que
desenha os menus, entre outros, na tela da câmera e responde a
cliques nos botões da câmera, e assim por diante.
Portanto, em particular, o SO gerencia vários programas e inicia e
finaliza programas. Dessa forma, um computador moderno pode
executar vários programas ao mesmo tempo; assim, o SO
trabalha (duro) para manter as coisas organizadas.
BOOT E REBOOT
O sistema operacional é, antes de qualquer programa do usuário,
a primeira coisa a ser executada quando seu computador é
ligado.
VÍDEO
É exatamente isso que nos apresentará o professor Rodrigo Dias,
no vídeo a seguir!
VERIFICANDO O APRENDIZADO
INTRODUÇÃO
Em sistemas computacionais contemporâneos, é extremamente
raro escrever códigos de máquina manualmente. Isso ocorre
porque eles são compostos por um número enorme de
instruções muito simples; assim, fica difícil para os humanos
fazerem esse processo.
ALTO NÍVEL
Como vimos no módulo 1, o termo “alto nível” designa a ideia de
que as instruções são mais próximas de nossa língua falada, se
comparadas ao código de máquina, que é de “baixo nível”.
TIPOS DE LINGUAGEM DE
PROGRAMAÇÃO
A classificação de linguagens de programação é mais detalhada e
abrangente do que a apresentada aqui, mas vamos nos limitar,
por questões de simplicidade, a agrupá-las nestas categorias.
1. LINGUAGEM COMPILADA
São aquelas em que o processo de tradução (compilação) é feito
com antecedência e o código é necessariamente executável.
Fonte: Lattes
EXEMPLO
No código a seguir, escrito na linguagem C++, na primeira linha, o
texto/string “Bom dia” está sendo atribuído à variável “a”, e, na
segunda linha, a variável “b” recebe o conteúdo da variável “a”
(ex.: “Bom dia”), e a exclamação é adicionada ao final da frase.
a = “Bom dia”;
b = a + “!”;
Então, o programador escreve o que é chamado de código-
fonte na linguagem de programação que escolher. Como vimos,
humanos preferem linguagens de alto nível pois são mais fáceis e
intuitivas.
Como a CPU consegue executar (rodar) instruções escritas em
linguagem de alto nível, se sabemos que a CPU só executa
código de máquina?
Uma das estratégias utilizadas é usar o compilador.
EXEMPLO
Talvez haja uma parte do código-fonte onde existe uma instrução
if (estrutura condicional), mas não há uma instrução específica
em um código de máquina para uma instrução if.
IMPORTANTE
A compilação só precisa ser feita pelo
desenvolvedor/programador uma vez.
2. LINGUAGENS DINÂMICAS OU
INTERPRETADAS
EXEMPLO
Java, JavaScripts e Python são linguagens de programação
dinâmicas/interpretadas.
//Código Javascript
a = 1;
b = a + 1;
Portanto, neste exemplo, o interpretador diria: “Acho que preciso
de um nome de variável ´a´, e preciso colocar o valor ‘1’ nela”.
Então, após executar essa linha, ele segue em frente e
interpreta/executa a próxima linha, e assim por diante.
PODCAST
TENDÊNCIAS
Falando de forma geral, atualmente, a tendência para a
programação de computadores caminha para o uso de
linguagens dinâmicas/interpretadas. Isso ocorre porque há um
consenso de que é bastante atraente poder programar de forma
mais simples e eficiente, mesmo sabendo que o programa final
rodará mais lentamente na CPU.
Para finalizar, vale a pena comentar sobre uma coisa chamada JIT
(Just in Time Compiler). O objetivo dos JITs é tentar obter o
melhor dos dois mundos: linguagens compiladas e linguagens
interpretadas.
VERIFICANDO O APRENDIZADO
CONCLUSÃO
CONSIDERAÇÕES FINAIS
Neste tema, você mergulhou na representação do que é um
software para computadores, reconhecendo alguns softwares
funcionais que fazem parte do seu cotidiano. No fim, aproximou-
se da linguagem de programação, podendo, com isso, perceber
como a linguagem e sua dinâmica são atualizadas
continuamente.
PODCAST
AVALIAÇÃO DO TEMA:
REFERÊNCIAS
CARVALHO, A.; LORENA, A. Introdução à
Computação: hardware, software e dados. 1. ed. Rio de Janeiro:
LTC, 2017.
DALE, N.; LEWIS J. Ciência da Computação. 4. ed. Rio de Janeiro:
LTC, 2011.
FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à
Ciência da Computação. 2. ed. São Paulo: Cengage, 2010.
FLANAGEN, D. Javascript: o guia definitivo. 6. ed. Porto Alegre:
Bookman, 2013.
GLENN, J. Ciência da Computação: uma visão abrangente. 11. ed.
Porto Alegre: Bookman, 2013.
INDRUSIAK, L. S. Linguagem Java. Consultado em meio
eletrônico em: 28 abr. 2020.
NET MARKETSHARE. Market Share Statistics for Internet
Technologies. Consultado em meio eletrônico em: 27 abr. 2020.
EXPLORE+
Pesquise e leia o texto Mercado de TI pode apresentar déficit de
290 mil profissionais em 2024.
Procure na Internet o artigo Proposta de integração da
engenharia de software nas estratégias empresariais, de
Adalberto Reis e Ivanir Costa, que apresenta uma reflexão sobre
essa importante área do pensamento computacional.
Pesquise também o livro Autonomia, liberdade e software livre,
de Doriedson de Almeida e Nicia Riccio, que traz importantes
reflexões a partir do tema “código aberto”.
Consulte o artigo A eficácia do software de educação ambiental
utilizado no ensino à distância, de Franklin Porto Jr., que
apresenta a importante articulação de três temas extremamente
atuais: pensamento computacional, meio ambiente e educação a
distância.
CONTEUDISTA
Guilherme Dutra Gonzaga Jaime
CURRÍCULO LATTES
EFINIÇÃO
Fundamentos do pensamento computacional. Conceitos fundamentais de
hardware de computadores. Componentes do hardware. Lei de Moore.
Unidades de armazenamento.
PROPÓSITO
Possuir iniciação consistente em Computação, na questão do desenvolvimento
contínuo do hardware, é uma das necessidades do mercado de trabalho. Deve-
se, então, construir uma compreensão introdutória sobre hardware de
computadores.
OBJETIVOS
MÓDULO 1
MÓDULO 2
Identificar os componentes básicos de hardware de computadores
MÓDULO 3
INTRODUÇÃO
HARDWARE É O QUE VOCÊ PODE CHUTAR,
JÁ SOFTWARE É O QUE VOCÊ SÓ PODE
XINGAR.
Autor desconhecido.
Quem nunca ouviu essa infame anedota? Caso não tenha ouvido, você
precisará ainda mais do que será visto aqui. Porém, se você conhece e achou
que tinha entendido, saiba que essa definição não o ajuda muito.
CPU
Memória
Disco rígido
Monitor
Pen drive
Celulares
Teclado
Cartão de memória
Disquete
CD
DVD
SSD
Instruções (programações).
ENTÃO, UM HARDWARE É A
ESTRUTURA FÍSICA QUE PERMITE
EXECUTAR AS FUNÇÕES QUE
DESEJAMOS.
Vamos a outro exemplo que nos permite sofisticar um pouco mais a visão
sobre o que é o hardware.
CHIPS
Um chip é feito de um pequeno pedaço de silício de poucos milímetros (20mm).
Diferentes componentes eletrônicos podem ser gravados no silício, o que
permite construir componentes de maneira muito barata. O silício é o principal
componente do vidro.
LEI DE MOORE
Uma das forças mais importantes do desenvolvimento do silício é a lei de
Moore, uma observação feita por Gordon Moore sobre como a fabricação de
chips vinha sendo capaz de inserir cada vez mais transistores dentro de um
chip. Essa lei diz que o número de transistores contidos em um chip dobra em
um período entre 18 e 24 meses.
GORDON MOORE
Engenheiro e empresário americano, um dos fundadores da Intel.
Gordon Moore
É importante entender que a lei de Moore não é uma lei da natureza, como a lei
da gravidade de Isaac Newton. Ao contrário, é apenas uma observação sobre
como a fabricação de transistores tende a funcionar. O comportamento
observado por Moore tem seguido firme desde 1965. Neste sentido, as
possibilidades do desenvolvimento de melhoria e aceleração da parte física
acabam por permitir o barateamento, transformando o hardware em uma
variável importante para o desenvolvimento das sociedades tecnológicas.
ISAAC NEWTON
Cientista inglês com importantes contribuições para a Física, Matemática e
Astronomia.
1969
O contexto de conflitos mundiais do século XX fomentou fortemente a
tecnologia. Durante a Guerra Fria, houve uma forte corrida espacial. Os
soviéticos conseguiram enviar o homem ao espaço, com Iuri Gagarin, em 1961.
Tal realização fez o presidente Kennedy prometer que os americanos
chegariam à Lua, o que ocorreu em 1969.
AGC
Fabricado em 1969
14,6 FLOPS
SMARTPHONE
Fabricado em 2019
Mais de 40 GFLOPS (Giga FLOPS)
Outro exemplo que você provavelmente observou em sua vida é que, a partir
de 2000, surgiram os pen drives, com, inicialmente, 8MB de capacidade de
armazenamento. Pelo mesmo preço, em 2019, já era possível comprar pen
drives de mais de 2000GB de capacidade. Ou seja, em menos de 20 anos,
houve um aumento de 250 mil vezes na capacidade de armazenamento dos
pen drives.
Pela lei de Moore, a fabricação dos chips que armazenam informação em pen
drives evoluiu de tal forma que é possível embutir mais transistores por,
praticamente, o mesmo preço. Então, eles podem oferecer mais e mais
capacidade de armazenamento.
VERIFICANDO O APRENDIZADO
ATENÇÃO!
Para desbloquear o próximo módulo, é necessário que responda corretamente
a uma das seguintes questões.
1. A DEFINIÇÃO DE HARDWARE É:
Termo que designa uma invenção do homem que utiliza sistemas mecânicos.
Nome que passou a ser convencionado para a parte física dos equipamentos
de computação.
GABARITO
1. A definição de hardware é:
Definiu hardware.
INTRODUÇÃO
Para falar sobre computadores, vamos tratar dos componentes fundamentais
que o constituem.
CPU
(Cérebro)
MEMÓRIA RAM
(Temporária)
MEMÓRIA DISCO/HD/PEN DRIVE
(Permanente)
CPU
Também chamada de processador, é uma espécie de cérebro. É a CPU quem,
de fato, processa instruções.
MEMÓRIA PERSISTENTE
Geralmente, é um disco, um HD (Hard-Disk) ou um pen drive. Os dados
armazenados neste tipo de memória permanecem ali mesmo quando o
computador é desligado e, por isso, é chamada de memória persistente.
CPU
A parte mais importante do computador é a CPU. Ela faz a computação, ou
seja, executa instruções. A CPU possui um rol padronizado de operações
bastante simples para executar. Então, quando dizemos que um computador
executa dois bilhões de operações por segundo, realmente estamos falando
sobre a CPU. Isso significa que ela pode fazer centenas de bilhões de coisas
muito simples por segundo.
As instruções executadas pela CPU são escritas por pessoas que desejam
usar o computador e seu incrível poder de processamento para alcançar algum
objetivo útil. As instruções escritas em linguagens de programação são
denominadas código de computador.
CPU (do inglês Central Processing Unit), em português, significa Unidade Central de
Processamento.
1
O valor 2 é armazenado em uma posição.
2
O valor 5 é armazenado em outra posição.
3
A instrução somar é armazenada em mais uma posição.
4
O espaço para a variável a é armazenado em mais um endereço.
A CPU lê/carrega os valores 2 e 5 da memória RAM e, depois, a instrução
soma. Então, a CPU realiza a operação e, depois, armazena o resultado na
posição da memória reservada para a variável a.
É importante observar que a CPU precisa da RAM para processar as
instruções de acordo com o código de computador escrito pelo programador. É
por isso que ela é chamada de memória principal.
Imagine que o computador desligue por acidente enquanto você está digitando
o texto de um trabalho no Word antes de apertar o botão salvar. Você
certamente ficará chateado, pois perderá as informações digitadas desde a
última vez em que salvou seu trabalho.
Isso ocorre porque esses caracteres ainda estavam somente na memória RAM,
que não é persistente. Assim, a versão que você possui é a última versão que
salvou.
MEMÓRIA PERSISTENTE
O nosso terceiro componente de hardware é a memória/armazenamento
persistente, também chamada de memória secundária. Vejamos como ela
funciona de forma diferente da memória RAM.
Este exemplo simples permite que você compreenda a noção do que significa
ser persistente, como um disco/HD/pen drive, ou volátil, como a RAM.
SAIBA MAIS
Para equipamentos atuais, as memórias RAM, em geral, possuem capacidade
de bilhões de bytes, enquanto discos/HDs/pen drives possuem capacidade de
armazenamento de trilhões de bytes. Todos esses dispositivos, mesmo quando
o fornecimento de energia elétrica é cortado, mantêm os dados, apesar de
serem muito mais lentos do que a memória RAM.
HARD DISK
Por muito tempo, o armazenamento persistente em computadores foi feito com
um disco rígido (HD – Hard Disk). No passado, o preço do armazenamento
em memórias flash, SSD, pen drives e cartões SD era muito mais caro que os
discos rígidos e, por isso, os discos rígidos eram usados para tudo.
Note que um HD possui um disco giratório, que é rígido! Além disso, há uma
pequena cabeça semelhante às agulhas dos toca-discos antigos que escreve e
lê padrões magnéticos no disco para armazenar e ler dados.
PEN DRIVE
Os pequenos pen drives USB utilizam tecnologia semelhante à do SSD. Seu
tamanho reduzido nos permite levar nossos arquivos conosco para qualquer
lugar. Desde o lançamento do seu primeiro modelo até hoje, a capacidade de
armazenamento dos pen drives cresceu consideravelmente e promete
aumentar ainda mais.
CARTÕES SD
Os cartões SD, usados em câmeras fotográficas digitais e celulares, conta com
a mesma tecnologia usada no Solid State Disk e nos pen drives. Apesar de seu
pequeno formato, já existem cartões SD com capacidade de armazenamento
acima de 500GB.
Para chegar a este ponto, precisamos apenas que a lei de Moore continue
ocorrendo e que os preços de SSD sigam caindo até alcançarem um valor
bastante convidativo, a ponto de as pessoas pensarem o seguinte: “Não
precisamos mais de HD. Podemos apenas usar esses chips, pois eles são
muito mais rápidos e confiáveis”.
MEMÓRIAS FLASH
Permite armazenar dados por longos períodos, sem precisar de alimentação
elétrica.
SISTEMAS DE ARQUIVOS
Quando você tem um dispositivo de armazenamento secundário e persistente,
há uma grande capacidade de armazenamento. Entretanto, por si só, estes
dispositivos não estão realmente prontos para o usuário.
PLACA-MÃE
Já estudamos CPU, memória RAM e diversos tipos de armazenamento
persistente (HD, SSD, M.2, pen drive), mas falta um componente fundamental
do computador, que é responsável por interligar CPU, RAM, discos etc.
MICROCONTROLADORES
Uma interessante consequência da lei de Moore é que os computadores se
tornaram tão pequenos e baratos, que você pode comprar versões cada vez
menores dessas máquinas por preços relativamente baixos. Eles podem se
encaixar em inúmeros lugares, o que antigamente era algo inimaginável.
TERMOSTATOS
CARROS
FORNOS DE MICRO-ONDAS
SAIBA MAIS
Um carro mais moderno possui microcontroladores espalhados pelo chassi,
realizando tarefas específicas para cada subsistema.
VERIFICANDO O APRENDIZADO
ATENÇÃO!
Para desbloquear o próximo módulo, é necessário que responda corretamente
a uma das seguintes questões.
INTRODUÇÃO
Você já perguntou a alguém se o computador ou o celular que você estava
querendo adquirir era bom?
Tenho certeza de que alguma coisa assim já aconteceu, e você foi orientado a
conferir qual era a memória RAM, a memória de armazenamento,
a velocidade do processador etc.
Com o tempo, ou você desistiu ou passou a aceitar o que as pessoas
recomendavam. Afinal, o mundo da informática lhe apresentou algumas
unidades de medidas novas. Certamente, você já teve um celular ou um
computador com uma memória medida em mega. Depois, você notou que
precisava de giga e, agora, muitos já dizem que você necessita de tera.
Porém, o que significa isso? Quem faz a conta do espaço que uma foto ou um
aplicativo ocupará no seu celular?
Não há nada de simples nessas nomenclaturas, mas, aos poucos, elas passam
a fazer parte de nosso cotidiano e acabam fazendo sentido.
BYTE
Um byte é a espécie de medida mais comum de armazenamento de
informações. Uma forma simples de pensar em um byte é imaginar uma letra
que você digita no teclado. Cada caractere, como um “a” ou um “G”, pode ser
internamente armazenado no computador como um byte.
A capacidade de armazenamento de memórias, como RAM e discos/HD/pen
drives, é medida em bytes. Podemos dizer que um megabyte é um termo que
a maior parte de nós está acostumada a ouvir. Cada megabyte equivale a um
milhão de bytes.
Um gigabyte equivale a cerca de um bilhão de bytes. Então, com isso em
mente, confira as unidades a seguir.
Os equipamentos atuais utilizam a seguinte escala:
PEN DRIVE
GB
HD
TB
RAM
GB
BITS E BYTES
Historicamente, computadores são construídos de forma que a unidade básica
de informação a ser processada seja uma unidade denominada bit, que pode
assumir apenas dois valores, 0 (zero) ou 1 (um). Provavelmente, você já ouviu
a expressão que diz que computadores são apenas capazes de lidar com
números 0 (zero) e 1 (um). Isso se refere a bits.
Tudo o que computadores são capazes de fazer é necessariamente construído
a partir dessa coleção de bits simples. Então, no hardware de computadores,
qualquer componente interno é capaz de assumir dois estados diferentes e,
quando assume um estado, ele pode ficar nele. Por exemplo, um transistor
pode estar no estado ligado (1) ou no estado desligado (0).
Em um disco rígido, os dois estados diferentes são feitos com uma pequena
área onde o fluxo magnético tem polaridade sul-norte (bit zero) ou polaridade
norte-sul (bit um).
Um bit, por si só, é pequeno demais para ser útil para qualquer coisa. Então, o
que podemos fazer é agrupar oito bits para criar um byte. Então, ao olhar
para um byte, você, na verdade, está olhando para um conjunto de oito dígitos
binários, ou seja, cada dígito só pode assumir os valores zero ou um, como no
exemplo a seguir.
Então, quanto de informação um byte pode conter exatamente? Em outras
palavras, quantos padrões e combinações diferentes um byte pode assumir?
1 BIT = 2 COMBINAÇÕES
0
2 BITS = 4 COMBINAÇÕES
0
3 BITS = 8 COMBINAÇÕES
0
0
0
1
1
Número 0
0
0
0
Número 1
0
Número 2
0
Número 3
0
...
Número 255
1
Não vamos entrar em mais detalhes sobre como eles são atribuídos, mas cada
número precisa de um padrão e não pode compartilhar seu padrão com outro
número.
Achou tudo muito confuso? Não se preocupe, pois, no vídeo a seguir, você
poderá sanar as dúvidas que restaram sobre bit e byte.
Neste vídeo, veremos como os computadores armazenam e representam
dados numéricos.
VERIFICANDO O APRENDIZADO
ATENÇÃO!
Para desbloquear o próximo módulo, é necessário que responda corretamente
a uma das seguintes questões.
AVALIAÇÃO DO TEMA:
REFERÊNCIAS
CARVALHO, A.; LORENA, A. Introdução à Computação: hardware, software
e dados. 1. ed. Rio de Janeiro: LTC, 2017.
DALE, N.; LEWIS J. Ciência da Computação. 4. ed. Rio de Janeiro: LTC,
2011.
FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à Ciência da
Computação. 2. ed. São Paulo: Cengage, 2010.
FLANAGEN, D. Javascript: o guia definitivo. 6. ed. Porto Alegre: Bookman,
2013.
GLENN, J. Ciência da Computação: uma visão abrangente. 11. ed. Porto
Alegre: Bookman, 2013.
EXPLORE+
Leia a matéria Cluster da Unicamp faz 4,5 trilhões de operações por segundo,
da revista Exame, para conhecer o projeto de um supercomputador.
CONTEUDISTA
Guilherme Dutra Gonzaga Jaime
CURRÍCULO LATTES
DEFINIÇÃO
Conceitos primordiais sobre a representação de imagens digitais pelo
computador. Reconhecimento da importância de esquemas padronizados para
esse processo. Possibilidade de representação digitalizada de imagens reais.
PROPÓSITO
Compreender a representação de imagens digitais para a construção do saber
de um profissional da sociedade digital.
PREPARAÇÃO
Para realizar este tema, será necessário usar o explorador RGB, a fim de
manipular os controles deslizantes deste código HTML.
OBJETIVOS
MÓDULO 1
INTRODUÇÃO
Para começar, vamos assistir ao vídeo que aborda a evolução histórica da
representação de imagens.
SERIA POSSÍVEL ABRIR MÃO DO
COMPUTADOR NO MUNDO ATUAL?
Com o tempo, passou-se a contestar cada vez mais a utilidade das “aulas” de
informática. Seria necessário que a computação estivesse, como no resto do
mundo, inserida no contexto das práticas diversas.
Como podemos lidar com uma tecnologia que será constantemente superada,
reinaugurada?
SÓ HÁ UM JEITO!
Inteirarmo-nos deste mundo, compreender como ele funciona,
desmitificar o entendimento de que isso é tarefa dos iniciados.
Neste tema, você será convidado a se atrever, a tentar, a compreender em um
nível mais avançado, para que possa ser um usuário mais competente e
entender a dinâmica de abstração na construção dos programas.
Para tal, escolhemos, como os seres humanos, há milênios, a primeira forma
de tentar entender o mundo: construir e representar suas imagens. Se já o
fizemos nas cavernas, com muito menos recursos, não serão algumas
máquinas que vão nos intimidar.
Boa reflexão!
ABSTRAÇÃO
Capacidade de desconsiderar características naturais ou orgânicas do mundo
real – temporais, espaciais e físicas – e concentrar a atenção nos atributos de
maior importância, para que a solução alcançada seja tratável por
computadores.
Na figura 2, você pode observar que há uma área azul no meio, uma parte
maior em preto à esquerda e uma parte branca à direita.
Quando olhamos para uma imagem digital como um todo, sequer percebemos
que ela é formada por esses pequenos quadrados. Isso ocorre porque os pixels
são tão pequenos que geram uma ilusão de ótica, assemelhando-se a uma
imagem natural e arredondada.
Fonte: Shutterstock
REPRESENTAR IMAGENS?
Fonte: thriftyfun
Fonte: Shutterstock
Fonte: Shutterstock
GRADE DE PIXEL
NOTAMOS QUE UMA IMAGEM DIGITAL É
REPRESENTADA PELO COMPUTADOR COMO UMA
GRADE DE PIXELS.
Cada pixel é um quadrado que só é capaz de assumir uma cor por vez. Além
disso, é necessário que haja um esquema de endereçamento para identificar
cada pixel na composição da imagem.
Fonte: Shutterstock
No exemplo da tabela 1, podemos ver três pixels indicados por setas. O pixel
(5,0), em azul, o pixel (1,1), em branco, e o pixel (2,4), em amarelo. É bem
comum dizer que esses valores são as coordenadas de um pixel, algo como o
endereço da posição do pixel em referência ao canto superior esquerdo.
Para reforçar o que você aprendeu até aqui, vamos ver mais detalhadamente
como as imagens digitais são representadas.
VERIFICANDO O APRENDIZADO
1. CONSIDERE A GRADE DE PIXELS A SEGUIR:
(3,4)
(4,3)
(2,3)
(3,2)
GABARITO
REPRESENTAÇÃO DE CORES EM
COMPUTADORES
Agora que sabemos como os computadores identificam pixels de uma imagem,
vamos descobrir como representam a cor de cada um deles.
Para entendermos como isso é feito, precisaremos recordar o lendário
físico Isaac Newton e seu experimento com o prisma de cores, que hoje
chamamos de prisma de Newton, ilustrado na figura.
ISAAC NEWTON (1643-1727)
Físico, astrônomo e matemático inglês, cujos trabalhos sobre a formulação das
três leis do movimento o levaram à Lei da Gravitação Universal. Além disso,
seus experimentos sobre a composição da luz branca o conduziram à moderna
Física Óptica. Na Matemática, lançou os fundamentos do cálculo infinitesimal.
Fonte: vignette.wikia
Figura 5: Prisma de Newton
Fonte: Shutterstock
Fonte: Shutterstock
Costuma-se utilizar essas três cores puras como constituintes para representar
qualquer outra cor que desejarmos.
CURIOSIDADE
Por trás deste “experimento de Newton ao contrário”, os pressupostos de
Física não são exatamente os mesmos que Newton observou no experimento
com o prisma de vidro. Contudo, é uma forma intuitiva de pensar como o
computador usa cores constituintes e as combina para gerar qualquer outra
cor.
Newton era adepto de convicções místicas, aquilo que acreditamos não ser
científico, e, na época, havia sete planetas conhecidos. Então, Newton pensou
que fazia sentido nomear sete cores conforme o número de planetas
conhecidos. É como se ele tivesse forçado o nome Anil/Índigo para uma cor
que poderia ser o azul apenas para potencializar o seu misticismo.
Fonte: Shutterstock
Fonte: Shutterstock
Se você escolher o valor 0 (zero) para o azul, significa que está ajustando o
“pixel grande” do centro para que não tenha absolutamente nenhuma
intensidade de azul.
SAIBA MAIS
Para saber mais sobre o assunto, pesquise na internet a Tabela de Códigos
RGB.
TEORIA NA PRÁTICA
COMO JÁ MENCIONAMOS, A BASE DE NOSSA
PRÁTICA SERÁ O EXPLORADOR RGB.
Para deixá-la mais interessante, vamos enumerar, logo abaixo dos controles
deslizantes, a intensidade que você vai escolher para cada uma das três cores.
Você perceberá essa enumeração assim: R: G: B:
EXPLORADOR RGB
Sem cor →→ Escuro →→ Mais claro →→ Saturação
Azul (B - Blue):
a) Neste ponto, anote em um papel o código RGB que representa o verde puro
em sua maior intensidade.
a) Neste ponto, anote em um papel o código RGB que representa o azul puro
em sua maior intensidade.
5. O que acontecerá se você deslizar os três controles RGB até a posição 50, e
o código RGB resultante for (50,50,50)?
9. Para este experimento, você vai manter o controle azul sempre em zero.
Manipularemos apenas os controles vermelho e verde, ambos até o 255, para
obtermos o código RGB (255,255,0). Observe que alcançamos um amarelo
bem saturado.
10. Para este experimento, você vai manter o controle azul sempre em 0 (zero).
Manipularemos apenas os controles vermelho e verde, ambos até o 125, para
obtermos o código RGB (125,125,0). Observe que alcançamos um amarelo
mais escuro.
11. Para este experimento, você vai manter o controle vermelho sempre em
zero. Manipularemos apenas os controles azul e verde, ambos até o 255, para
obtermos o código RGB (0,255,255). Observe que alcançamos um turquesa.
APLICAÇÃO NO DIAGRAMA
Fique à vontade para experimentar a ferramenta RGB até que estes conceitos
lhe pareçam naturais e intuitivos. Quando isso ocorrer, seu cérebro estará
pensando de forma bem mais próxima ao computador.
Fique tranquilo, pois não esperamos que você saiba de cor os três números
RGB para qualquer cor em particular. O importante é que você compreenda
que existe esse esquema básico para representar qualquer cor manipulando
apenas três cores constituintes básicas: vermelho, verde e azul.
Essencialmente, cada um desses pixels tem seus próprios três números, que
formam o código RGB de cores. Como já vimos, cada pixel possui uma única
cor por vez. Toda a informação necessária para representar a cor de um pixel
está nesses três números.
PENSAMENTO COMPUTACIONAL
Como humanos, estamos naturalmente acostumados a ver o
mundo, pensar e refletir a respeito dele sob a ótica de tudo o que é natural e
orgânico.
Fonte: Shutterstock
Fonte: Shutterstock
Fonte: Shutterstock
Por exemplo, se quiséssemos tirar uma foto e, talvez, torná-la um pouco mais
clara? No computador, vamos traduzir isso em alguma operação com números.
VERIFICANDO O APRENDIZADO
USE O EXPLORADOR RGB. DEPOIS, CLIQUE NO
MENU DO MÓDULO 2, EM VERIFICANDO O
APRENDIZADO, PARA RETORNAR ÀS QUESTÕES
DESTE TÓPICO.
1. SUPONHA QUE VOCÊ ESTEJA UTILIZANDO O ESQUEMA
DE CODIFICAÇÃO DE CORES RGB E QUE A IMAGEM VISTA
SEJA A REPRESENTADA A SEGUIR:
Azul-celeste
Amarelo
Verde-limão
Laranja
GABARITO
CONCLUSÃO
Com este estudo, você compreendeu como o computador é capaz de
representar digitalmente por meio de números uma imagem do mundo real ou
orgânico.
AVALIAÇÃO DO TEMA:
REFERÊNCIAS
CARVALHO, A.; LORENA, A. Introdução à Computação: hardware, software
e Dados. 1. ed. Rio de Janeiro: LTC, 2017.
DALE, N.; LEWIS, J. Ciência da Computação. 4. ed. Rio de Janeiro: LTC,
2011.
FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à Ciência da
Computação. 2. ed. São Paulo: Cengage, 2010.
FLANAGEN, D. Javascript: o guia definitivo. 6. ed. Porto Alegre: Bookman,
2013.
FRAZÃO, D. Isaac Newton - cientista inglês. [S. l.]: eBiografia, 2020.
GLENN, J. Ciência da Computação: uma visão abrangente. 11. ed. Porto
Alegre: Bookman, 2013.
EXPLORE+
Pesquise no YouTube o canal Nerdologia e assista ao vídeo: O computador
ou o cérebro – quem é o mais potente? (2016), com o biólogo e pesquisador
Atila Iamarino.
CONTEUDISTA
Guilherme Dutra Gonzaga Jaime
CURRÍCULO LATTES
DEFINIÇÃO
Conceito de códigos. Combinação de códigos e instruções para computadores.
Representação digital de imagens: noções básicas.
PROPÓSITO
Exercitar importantes habilidades do pensamento computacional, como
abstração, automação, reconhecimento de padrões, análise e avaliação, com
vistas à compreensão do significado da programação.
PREPARAÇÃO
Para realizar este tema, será necessário usar alguns códigos-fonte específicos
e o código RGB.
OBJETIVOS
MÓDULO 1
Definir instruções para manipulação simples de dados
MÓDULO 2
Distinguir a estrutura de repetição for
MÓDULO 3
Reconhecer expressões
MÓDULO 4
Distinguir a estrutura condicional if
MÓDULO 1
INTRODUÇÃO
Para ilustrar melhor nossa discussão, usaremos como exemplo imagens para
aplicação de nossos códigos/instruções. Como são instruções simples de
manipulação de dados, você notará que, nos exemplos, manipularemos
apenas um pixel de cada vez.
INSTRUÇÕES PARA MANIPULAÇÃO
SIMPLES DE DADOS
Para começar, veja a imagem da figura 1, cujo nome é circulo.bmp, composta
por uma grade de 10x10 pixels:
Figura 1: Pequena imagem de 10 pixels de largura por 10 pixels de altura com fundo
BMP
– Bitmap image file ou arquivo de imagem bitmap
COMENTÁRIO
Não se preocupe, pois o tamanho da figura 1 não é um erro. A imagem
realmente está muito pequena. Nosso primeiro impulso é realizar uma
ampliação ou zoom para vê-la melhor. Esse é o ímpeto que queríamos
provocar em você quando a colocamos com esse tamanho.
COMO ESCREVER UM CÓDIGO QUE
SOLICITA QUE O COMPUTADOR AMPLIFIQUE
A IMAGEM CIRCULO.BMP?
Para isso, usaremos três instruções que fazem parte do conjunto de funções da
linguagem de programação JavaScript, conforme resumido na tabela 1:
Passo Instrução
Vamos praticar?
MÃO NA MASSA
PRÁTICA 1
À esquerda, temos o Código-Fonte; à direita, a Saída resultante do
processamento das instruções fornecidas. Logo abaixo, o
botão Rodar/Executar, que é a forma como ordenamos ao computador que
executa as instruções fornecidas.
Clique no botão Rodar/Executar e observe o resultado em Saída.
SOLUÇÃO
PERCEBEU A DIFERENÇA?
Note que aparece um círculo de 20x20 pixels, maior do que o apresentado
na figura 1.
FIGURA 1
Figura 1: Pequena imagem de 10 pixels de largura por 10 pixels de altura com fundo
SOLUÇÃO
Note que a execução das instruções resulta em um círculo de 10x10 pixels,
agora menor que o anterior.
CONSIDERAÇÕES
Embora bastante simples, as instruções apresentadas na tabela 1 e na prática
que acabamos de realizar tornaram-nos capazes de instruir o computador a
realizar ampliação de imagens digitais ao nosso comando.
DICA
Fique à vontade: pratique e experimente com qualquer valor que deseje para a
instrução setZoom. Não tenha medo de errar!
img = new
1 Carrega a imagem circulo.bmp na memória e a
SimpleImage("circulo.bmp");
PRÁTICA 2
A seguir, assista a uma breve contextualização da Prática 1, seguida do nosso
segundo exemplo prático.
SOLUÇÃO
Note que o pixel (4,4), que fica mais ou menos no meio do círculo, ficou
vermelho.
SOLUÇÃO
CONSIDERAÇÕES
Fique à vontade para experimentar com a Prática 2. Você pode escolher
qualquer valor entre 0 e 9 para as coordenadas do pixel (lembre-se: é uma
imagem de 10 pixels por 10 pixels) e qualquer valor entre 0 e 255 para o nível
de saturação vermelho do pixel (conforme o esquema de cores RGB).
Assim como a função setRed() ajusta o nível de vermelho para o pixel, temos
duas outras funções análogas para manipular os níveis de azul e de verde de
um pixel. A tabela 3 apresenta as três funções possíveis para essa
manipulação:
Passo Instrução
PRÁTICA 3
Vamos realizar alguns experimentos simples com o código da tabela 3,
manipulando o código-fonte a seguir para observar o que acontece:
Durante essa prática observe com atenção a proposição em português feita no
enunciado, em que o efeito desejado é descrito.
Do português
O código fornecido ajusta o pixel (4,0) para vermelho. Ajuste o código para que
o pixel (4,0) fique verde.
SOLUÇÃO
SOLUÇÃO
Aqui, o pixel (4,0) estava originalmente preto, ou seja, código RGB (0,0,0).
Como sabemos que o amarelo é a combinação de verde e vermelho, a solução
é bem simples: basta adicionar o nível máximo (255) dessas cores
constituintes, conforme o código a seguir:
SOLUÇÃO
A solução aqui é muito simples: basta alterar o código da solução anterior para
que a instrução getPixel( 4,0 ) passe a ser getPixel( 5,0 ).
TEORIA NA PRÁTICA
Suponha que, em vez de manipular apenas um pixel por vez, conforme fizemos
neste módulo, desejássemos manipular todos os pixels de uma imagem,
digamos de 10x10 pixels (exemplo: circulo.bmp).
Se usássemos o código que aprendemos a escrever neste módulo, teríamos
de escrever 100 vezes a instrução pixel = img.getPixel(), em que, a cada vez,
passaríamos os valores x,y para cada um dos pixels da imagem.
VERIFICANDO O APRENDIZADO
1. CONSIDERE A IMAGEM A SEGUIR, CHAMADA
“CIRCULO.BMP”:
QUAL É O CÓDIGO DE COMPUTADOR NECESSÁRIO PARA
MANIPULAR O PIXEL DO CANTO SUPERIOR ESQUERDO
PARA QUE FIQUE VERMELHO?
2. CONSIDERANDO OS EXPERIMENTOS REALIZADOS NA
PRÁTICA 1, QUAL SERIA O CÓDIGO PARA QUE O
RESULTADO DO ZOOM FOSSE UM AFASTAMENTO DE 2 X
EM VEZ DE UMA APROXIMAÇÃO DE 2X?
MÓDULO 2
INTRODUÇÃO
Estruturas de repetição são extremamente importantes, pois representam um
grande aumento no poder de quem escreve códigos de computador em
comparação com códigos, que são capazes de manipular dados singulares.
ESTRUTURA DE REPETIÇÃO FOR
Observe a imagem de um pássaro apresentado na figura 2:
Figura 2: Imagem
Neste caso:
1
Observe a seta azul que liga o “}”, no final do loop for, no início da estrutura de
repetição. Quando o computador percebe que está na linha de instrução que
fecha a estrutura de repetição, acontece isso, conforme indicado pela seta azul:
o computador volta novamente para o início do loop.
3
Você perceberá que as três instruções em cinza que formam o corpo do loop
for estão descoladas para a direita. Isso não é obrigatório para que o
computador compreenda as instruções.
4
Neste exemplo, a condição para finalizar é que as três instruções sejam
executadas pelo computador para todos os pixels da imagem.
A técnica de recuar a linha de código para deixar claro à pessoa que o estiver
lendo que estas são instruções internas à estrutura de repetição é amplamente
chamada de indentação.
Vamos testar?
INDENTAÇÃO
Neologismo derivado da palavra indentation, em inglês.
MÃO NA MASSA
PRÁTICA 1
Vamos experimentar a estrutura for. Observe o código-fonte à baixo:
Lembre-se de que, ao clicar em Rodar/Executar, o computador realizará os
seguintes passos, conforme instruções:
INSTRUÇÃO 1
INSTRUÇÃO 2
Carregar a imagem “passaro.jpg” e armazená-la na variável img.
Para cada um dos 292 mil pixels da imagem “passaro.jpg”, executar as
instruções indicadas:
Note que o computador as executará para cada um dos 292 mil pixels da
imagem. Então, temos um total de 876 mil operações a serem realizadas pelo
computador.
SOLUÇÃO
A imagem preta deve aparecer na tela muito rapidamente:
Ao executar a Prática 1, você obteve um retângulo preto, o que não é muito útil.
Entretanto, não deixe de refletir sobre o quão rapidamente o computador foi
capaz de seguir suas instruções para manipular os quase 300 mil pixels da
imagem.
PRÁTICA 2
Vamos seguir assistindo a um vídeo com uma segunda prática.
É HORA DE PRATICAR!
Agora, vamos obter o canal alfa vermelho da imagem do pássaro apresentado
na figura 2 com base neste código-fonte:
SOLUÇÃO
O QUE VOCÊ NOTOU?
MOSTRAR COMPARAÇÃO
Assim como na Prática 1, observe o quão rapidamente o computador foi capaz
de remover os componentes azul e verde da imagem em questão. Lembre-se:
as instruções de dentro da estrutura for foram repetidas 876 mil vezes.
COMENTADA
Comentários de códigos são interessantes por duas razões. A primeira é
permitir que o autor do código-fonte documente seu código com frases que
esclarecem o que ele estava pensando quando escreveu aquele trecho. A
segunda é fazer com que o computador ignore uma ou mais instruções.
SOLUÇÃO
TEORIA NA PRÁTICA
AFINAL PARA QUE SERVE A
ESTRUTURA DE REPETIÇÃO FOR?
A estrutura de repetição for é um recurso muito poderoso, que nos
permite escrever algumas poucas linhas de código capazes de ordenar ao
computador que processe/manipule uma enorme quantidade de dados.
Neste módulo usamos exemplos de imagens para demonstrar o enorme
potencial das estruturas de repetição. Este foi apenas um exemplo.
COMENTÁRIO
Não queríamos gastar muito tempo fazendo-o compreender detalhes de
sintaxe. Este comentário é importante, pois, se você tentar aproveitar os
códigos de computador que escrevemos neste módulo, provavelmente, terá
problemas devido ao nosso uso simplificado da estrutura de repetição for.
MÓDULO 3
Reconhecer expressões
INTRODUÇÃO
Neste módulo, estudaremos o uso de expressões em código de computador.
EXPRESSÕES
Se analisarmos o código/instrução a seguir, veremos um tipo bem simples de
passagem de valor (51):
print(51);
EXEMPLO
print(40+11);
Tabela 4: Dado um pixel da imagem, como saber qual é o valor atual para os
1
O primeiro passo do computador será avaliar qual é o resultado da
expressão ultimo*2. Se imaginarmos que o último valor para o pixel é 60, a
expressão multiplicará esse valor por 2, o que resultará em 120.
3
Com efeito, o resultado das duas linhas de código é, de fato, duplicar a
intensidade de vermelho do pixel atual.
Agora que entendemos os princípios do uso de expressões em códigos de
computadores, vamos analisar o mesmo exemplo de duplicação do valor atual
da intensidade de vermelho de um pixel, porém com uma solução muito mais
comum no mundo real.
pixel.setRed( pixel.getRed()*2 );
Vamos supor que o pixel em questão esteja com os valores RGB (50,20,30).
Então, o componente vermelho possui o valor 50. O computador fará o
seguinte:
Com isso, o novo valor RGB para o pixel em questão será: RGB (100,20,30).
Se fizermos o mesmo para todos os pixels de uma imagem, o usuário
perceberá essa alteração como uma imagem com os tons de vermelho mais
destacados.
pixel.setRed( pixel.getRed()/2 );
Note que, em vez de usarmos o asterisco, que denota multiplicação, utilizamos
o “/”, que denota divisão.
Outra forma de escrever a mesma solução seria multiplicar o pixel atual por
0.5, o que é o mesmo que dividir por 2. Então, nesse caso, teríamos:
pixel.setRed( pixel.getRed()*0.5 );
MÃO NA MASSA
PRÁTICA 1
Vamos ajustar a tonalidade de cores de uma imagem por meio de instruções
simples. Comecemos por esta:
Figura 4: Imagem de flores em amarelo com 587x330 pixels, totalizando quase 194 mil
pixels.
a) Observe a imagem de flores amarelas apresentada na figura 4.
Suponha que desejemos ajustar esta imagem para obtermos tonalidades
mais para o laranja.
pixel.setGreen( pixel.getGreen()*0.7 );
Aqui, vemos lindas flores de cor laranja! Experimente reduzir ainda mais o
componente de verde da figura. Observe que, quanto menor o componente de
verde, mais as cores das flores se aproximarão do vermelho.
CONSIDERAÇÕES
Reflita sobre a quantidade de operações realizada em um piscar de olhos pelo
computador, dado o código-fonte que geramos.
Para cada um dos 194 mil pixels da imagem da figura 4, o computador fez as
seguintes operações:
anteriores.
Reflita sobre como esse objetivo foi traduzido do português para o código
de computador que usamos ao realizarmos a operação.
A capacidade de fazer essa tradução e escrever uma solução que
computadores são capazes de executar rapidamente é para nós uma
habilidade chave para o chamado pensamento computacional.
b) Voltando à imagem da figura 4, suponha, agora, que desejamos
convertê-la em uma imagem de escala de cinza.
Recorde, na tabela 5, que uma imagem em escala de cinza possui, para cada
pixel, exatamente o mesmo valor para os componentes RGB (vermelho,
verde e azul):
Branco 255
Azul 0
Vermelho 255
Verde 0
Amarelo 255
Magenta 255
Ciano 0
Preto 0
Azul (B - Blue):
Veja o trecho de código a seguir, que calcula a média dos três componentes
(R, G e B) para um dado pixel, depois, atribui esse valor médio aos três
componentes de cor do pixel:
soma=(pixel.getGreen()+pixel.getGreen()+pixel.getGreen());
media= soma/3;
pixel.setRed( media );
pixel.setGreen( media );
pixel.setBlue( media );
SOLUÇÃO
DICA
Fique à vontade para experimentar com o código-fonte, obter diferentes
resultados e refletir sobre o resultado obtido com as instruções que você
testou. Por exemplo, você pode multiplicar a média por 1.1, 1.5 ou 2 e observar
como a imagem vai ficando mais clara. Não tenha medo de errar!
PRÁTICA 2
Assista ao vídeo com uma segunda prática.
Esta imagem foi modificada, dividindo, para cada pixel, os valores dos
componentes RGB (vermelho, verde e azul) por 5, 2 ou 10. O resultado é
apresentado na figura 6:
Figura 6: Imagem da figura 5, mas com os componentes RGB manipulados.
Note que a imagem está mais escura, além de ter suas cores distorcidas.
Vamos praticar!
RECOMENDAÇÃO
Para diminuir o número de combinações que você tentará, tenha em mente
que, quando a imagem foi modificada, os valores 5, 10 e 2 foram usados
apenas uma vez cada.
SOLUÇÃO
COMO VOCÊ SE SAIU?
MOSTRAR SOLUÇÃO
Possibilidade Tentativa de t
pixel.setRed( pixel.getRed()*5);
1 pixel.setGreen( pixel.getGreen()*10);
pixel.setBlue( pixel.getBlue()*2);
pixel.setRed( pixel.getRed()*5 );
2 pixel.setGreen( pixel.getGreen()*2 );
pixel.setBlue( pixel.getBlue()*10 );
pixel.setRed( pixel.getRed()*2 );
3 pixel.setGreen( pixel.getGreen()*5 );
pixel.setBlue( pixel.getBlue()*10 );
pixel.setRed( pixel.getRed()*2 );
4 pixel.setGreen( pixel.getGreen()*10 );
pixel.setBlue( pixel.getBlue()*5 );
pixel.setRed( pixel.getRed()*10 );
5 pixel.setGreen( pixel.getGreen()*5 );
pixel.setBlue( pixel.getBlue()*2 );
pixel.setRed( pixel.getRed()*10 );
6 pixel.setGreen( pixel.getGreen()*2 );
pixel.setBlue( pixel.getBlue()*5 );
TEORIA NA PRÁTICA
Como você deve ter percebido neste módulo, é muito importante perceber que
estamos o tempo todo falando de comunicação. Claro que, tratando-se da
máquina, não podemos nos comunicar com ela da mesma forma que eu me
comunico com você.
Como você viu, o simples comando “torne a imagem um pouco mais laranja”
não poderia ser realizado apenas com estas palavras. Foi necessário traduzir
essa mensagem para código de computador, de forma que o comando fosse
obedecido.
Nesse sentido, apenas com a realização de tentativas, com a identificação de
erros nos comandos e sua correção, é que podemos nos aprimorar. E, pouco a
pouco, dar embasamento ao nosso pensamento computacional.
MÓDULO 4
INTRODUÇÃO
ESTRUTURA CONDICIONAL
A seguir, vemos a sintaxe de uma declaração if conforme a linguagem de
programação JavaScript:
Pense nessa instrução como uma forma de selecionar os pixels que serão
afetados pelas instruções das linhas 3, 4 e 5.
1
Por exemplo, ainda na instrução 1, se o valor do componente vermelho do pixel
em questão for 140, então, as instruções 2,3 e 4 não serão executadas pelo
computador, pois o teste if( 140> 160) retornará, é claro, falso.
3
A execução das instruções 2, 3 e 4 só ocorrerá, por exemplo, se o valor do
componente vermelho do pixel em questão, obtido pela função pixel.getRed(),
for 161 ou qualquer valor maior do que este.
Optamos por usar exemplos com imagens digitais, pois esta é uma forma muito
simples, intuitiva e rápida para você observar os efeitos da execução de
algumas linhas de código de computador. Isso ocorre porque estamos
acostumados a observar imagens do mundo real desde que nascemos. Então,
este é um processo altamente intuitivo para todos.
MÃO NA MASSA
PRÁTICA 1
Considere a imagem apresentada na figura 7:
Figura 7:
Branco 255
Azul 0
Vermelho 255
Verde 0
Amarelo 255
Magenta 255
Ciano 0
Preto 0
SOLUÇÃO
Repare que não só a região vermelha foi transformada em cinza, mas também
as regiões amarelo, branco e magenta. Colorimos mais do que a região
proposta pelo exercício.
SOLUÇÃO
Observe que, com essa ação, você programou para que a região somente
vermelha fosse ajustada para cinza, mas, ao mesmo tempo, permitiu que as
regiões de interseção entre as três cores se apresentassem sem alteração.
PRÁTICA 2
Preparamos um vídeo abordando uma segunda prática.
Imagine que desejamos ajustar a imagem para que o meio-fio fique cinza em
vez de amarelo.
TABELA 7
Esquema RGB R - Vermelho
Branco 255
Azul 0
Vermelho 255
Verde 0
Amarelo 255
Magenta 255
Ciano 0
Preto 0
SOLUÇÃO
Repare nesta imagem que, de fato, boa parte do meio-fio amarelo foi pintado
de preto. Porém, analisando melhor, podemos detectar um problema: parte
importante da calçada e do asfalto foram pintados de preto. Isso ocorre pois
essas são áreas da imagem original em que os pixels são mais
iluminados/claros.
SOLUÇÃO
Observe que ainda falta nitidez nas cores, como se a tinta do meio-fio estivesse
se espalha do também para a calçada. É necessário que façamos mais ajustes.
c) Ajuste a estrutura if, a fim de selecionar apenas pixels ainda mais claros e
em tom de amarelo. Clique em Rodar/Experimentar e observe o resultado.
SOLUÇÃO
Azul (B - Blue):
SOLUÇÃO
Então, vamos usar essa observação para construir uma solução mais
inteligente para a instrução if e observar se, desse modo, selecionamos os
pixels em amarelo do meio-fio de forma mais satisfatória.
SOLUÇÃO
Agora, confirmamos que a nossa estrutura if é capaz de selecionar, de forma
bem satisfatória, os pixels que desejamos ajustar para a tonalidade cinza.
g) Já pensamos em uma forma de escrever a instrução if, de modo que os
pixels do meio-fio sejam corretamente selecionados para modificação de cor. O
último passo para alcançarmos nosso objetivo é ajustar as instruções internas
à estrutura if, em que, de fato, as cores dos pixels selecionados são ajustadas.
Durante os passos anteriores deixamos as instruções alterando o valor dos
componentes RGB para 0 (zero), para que pudéssemos observar o que ficou
em preto e refletir se a nossa estrutura if estava correta.
Agora, pense um pouco: queremos que o meio-fio, que era amarelo,
apareça em escala de cinza.
Pela tabela 7 já sabemos que a escala de cinza equivale a dizer que os três
componentes R, G e B possuem o mesmo valor. Ora, nós já ordenamos que o
computador calcule automaticamente a média dos três componentes do pixel.
TABELA 7
Esquema RGB R - Vermelho
Branco 255
Azul 0
Vermelho 255
Verde 0
Amarelo 255
Magenta 255
Ciano 0
Preto 0
SOLUÇÃO
TEORIA NA PRÁTICA
O pensamento computacional já é considerado em vários países do mundo
como a competência fundamental usada por todas as pessoas nas próximas
décadas. Assim como a leitura, a escrita e a aritmética, essa competência será
imprescindível para o mercado de trabalho.
1
Quantos pixels usaremos para representá-la;
PASSO 1
PASSO 2
PASSO 3
PASSO 4
PASSO 5
Carregar a imagem na memória para que fosse trabalhada – escrevemos uma
linha de código que carrega a imagem;
Automaticamente processar, um a um, todos os pixels (centenas de milhares)
de uma imagem – usamos a estrutura for para instruir o computador a repetir
as instruções para cada pixel da imagem;
Selecionar em quais pixels desejamos realizar ajuste de cores – escrevemos a
estrutura if para que o computador realizasse testes e, conforme o resultado
(verdadeiro ou falso), executasse ou não as instruções de manipulação de
cores do pixel;
Azul (B - Blue):
VERIFICANDO O APRENDIZADO
CONCLUSÃO
CONSIDERAÇÕES FINAIS
Praticamos aqui conceitos primordiais de pensamento computacional ao
exercitarmos noções de programação de computadores com exemplos de
manipulação de imagem.
PODCAST
AVALIAÇÃO DO TEMA:
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.
FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à Ciência da
Computação. 2. ed. São Paulo: Cengage, 2010.
FLANAGEN, D. JavaScript: o guia definitivo. 6. ed. Porto Alegre: Bookman,
2013.
GLENN, J. Ciência da Computação: uma visão abrangente. 11. ed. Porto
Alegre: Bookman, 2013.
EXPLORE+
Pesquise na internet e leia o seguinte artigo:
ANDRADE, D. et al. Proposta de atividades para o desenvolvimento do
pensamento computacional no ensino fundamental. In: Anais [...].
Campinas: Unicamp, 2013. p. 169-178.
CONTEUDISTA
Guilherme Dutra Gonzaga Jaime
CURRÍCULO LATTES
DEFINIÇÃO
Apresentação do conceito de pensamento computacional e sua importância
para profissionais de diversas áreas, como Economia Criativa, Negócios,
Ciências Jurídicas, Educação e Engenharia.
PROPÓSITO
Discutir o pensamento computacional com base nos pilares de abstração,
decomposição, reconhecimento de padrões e automação de tarefas por meio
de algoritmos, destacando sua relevância para quaisquer profissionais do
século XXI.
OBJETIVOS
MÓDULO 1
Definir o pensamento computacional e sua importância para o profissional do
século XXI
MÓDULO 2
Identificar as aplicações do pensamento computacional na Economia Criativa,
nos Negócios e nas Ciências Jurídicas
MÓDULO 3
Reconhecer a relevância do pensamento computacional nas áreas de
Educação e Engenharia
INTRODUÇÃO
Há muitos anos, a sociedade utiliza computadores como ferramentas capazes
de resolver as mais diversas dificuldades em todas a áreas do conhecimento
como:
SAÚDE
EDUCAÇÃO
ENGENHARIA
ECONOMIA CRIATIVA
CIÊNCIAS JURÍDICAS
TECNOLOGIA DA INFORMAÇÃO
Antes de qualquer problema ser solucionado, é necessário compreendê-lo,
bem como as maneiras pelas quais ele pode ser resolvido. O pensamento
computacional é o nome dado a um conjunto de habilidades que nos permite
fazer isso.
MÓDULO 1
O QUE É PENSAMENTO
COMPUTACIONAL?
A velocidade com a qual a sociedade está mudando nunca foi tão acelerada. A
evolução, nas primeiras décadas do século XXI, equivale a centenas de anos
da história humana. Nesse tempo, vimos tecnologias inovadoras serem
lançadas e, alguns anos depois, serem substituídas por outras ainda
mais disruptivas.
DISRUPTIVAS
Se entendemos disrupção como a interrupção de uma sequência normal de
qualquer processo, podemos entender como tecnologias disruptivas aquelas
que provocam uma mesma interrupção – ou transformação – no modo como
determinado procedimento acontece. Além da atração natural que uma
inovação como essa pode trazer, tais tecnologias também auxiliam na
mudança de toda uma concepção acerca do processo em questão.
A tecnologia veio suprir essa lacuna seja com a criação da imprensa no século
XVI, seja com os computadores ultramodernos. Hoje, o conhecimento gerado
em qualquer parte do mundo pode ser consultado em segundos por outra
pessoa do outro lado do globo. Isso permite melhor cooperação e,
consequentemente, uma evolução mais rápida e efetiva de tudo ao nosso
redor. O avanço da ciência e da tecnologia continua a progredir de forma cada
vez mais rápida, tendo como uma das consequências desse processo uma
sociedade largamente dependente da computação.
PILARES DO PENSAMENTO
COMPUTACIONAL
De forma geral, há quatro pilares ou habilidades necessárias para que
possamos exercer o pensamento computacional, conforme ilustração a seguir:
Uma companhia aérea precisa levar pessoas e bagagens de uma cidade até a
outra, usando aviões.
Por fim, você gastaria algum tempo expondo os procedimentos realizados pelo
piloto e pelo controle de tráfego aéreo para que a aeronave consiga decolar,
voar até a cidade destino e pousar. Essa parte, por si só, é tão complicada, que
você poderia decompô-la novamente em pedaços menores para facilitar suas
explicações.
COMENTÁRIO
No mundo da computação, o processo de decomposição ocorre de forma
frequente, já que os computadores são inacreditavelmente rápidos, mas
desprovidos de qualquer inteligência. Então, para que tenham utilidade,
precisamos indicar quais instruções simples devem realizar, uma após a outra,
até que o problema seja resolvido por completo.
DIFERENTES CARACTERÍSTICAS
Nome;
Documento de identificação;
Altura;
Peso;
Cor do cabelo;
Fonte:Freepik / Freepik
MERCADO DE TRABALHO E
PENSAMENTO COMPUTACIONAL
(CALIL, 2019)
ATENÇÃO
Usar o pensamento computacional não é saber utilizar as ferramentas criadas
pela tecnologia. É saber usar a tecnologia para criar novas ferramentas.
Somente I
Somente II
Somente III
I e II
GABARITO
MÓDULO 2
ECONOMIA CRIATIVA
Agora que você já sabe o que é pensamento computacional, vamos entender
como ele se aplica às mais variadas áreas do conhecimento e como ele vem
transformando o mundo a nosso redor.
SÉC. XVIII
Desde a primeira Revolução Industrial (séc. XVIII), a sociedade tem pautado
sua economia em bens tangíveis de consumo.
SÉC. XXI
No século XXI, com o advento do pensamento computacional, essa situação
começou a mudar.
2001
O jornalista australiano Peter Coy publicou um artigo na revista americana
Businessweek sobre uma nova modalidade econômica, que estaria se
formando a partir de empresas com foco em conhecimento e inventividade.
Assim, surgiu a expressão Economia Criativa.O governo local passou a
incorporar, em sua estratégia política e macroeconômica, segmentos que
tinham como base o capital intelectual e a criatividade, para impulsionar o
desenvolvimento local, regional e nacional.
Ao mesmo tempo, o Reino Unido incluiu pela primeira vez em sua balança
comercial alguns itens, como: artes performáticas, artesanato, arquitetura,
design, design de moda, editoração, editoração eletrônica, música,
publicidade, rádio, TV, software, games, vídeo, cinema e fotografia.
2007
Em 2007, a Organização das Nações Unidas (ONU) se articulou, por meio da
Organização das Nações Unidas para a Educação, a Ciência e a Cultura
(UNESCO) com a Conferência das Nações Unidas para o Comércio e o
Desenvolvimento (UNCTAD), difundindo conceitos de economia da Cultura e
Economia Criativa em escala global. Foram desenvolvidas pesquisas sobre o
setor cultural, sendo criada a coordenação da Rede de Cidades
Criativas. Isso abriu possibilidades de desenvolvimento local com base em
vocações criativas, conectando várias cidades do mundo que, a partir da
obtenção do selo Cidade Criativa, passaram a compartilhar suas experiências e
entrar em contato direto com um amplo repertório de práticas bem-sucedidas
de desenvolvimento local.
PETER COY
Peter Coy é editor de economia da Bloomberg Businessweek, onde está desde
1989. Embora com formação original em História, Coy é quase uma
celebridade quando o tema envolve questões econômicas, sendo
frequentemente consultado e entrevistado por programas de TV, nos principais
canais jornalísticos dos EUA.
Bloomberg.
(BRASIL, 2019)
Artes performáticas
Artes visuais
Audiovisual
Edição e impressão
Design
Novas mídias
Patrimônio cultural
Serviços criativos
Mas a Economia Criativa não acontece sozinha. Para que seja possível, é
necessário um ambiente propício com infraestrutura, política de incentivo e
suporte tecnológico. O pensamento computacional é peça fundamental nessa
nova área da Economia, pois é por meio dele que novas mídias podem ser
desenvolvidas, como softwares, games e outros conteúdos digitais.
Vejamos!
Freepik / Freepik
Você deve conhecer alguns casos clássicos de empresas que, por terem sua
posição muito bem estabelecida no mercado, esqueceram da importância da
inovação e não conseguiram mais acompanhar as mudanças no consumo.
país parava e torcia para que um acordo fosse realizado o mais rápido possível, para
As transações financeiras por cartões de crédito, cada vez mais seguras, também
estão mais populares e acessíveis. 2017 foi o primeiro ano em que estas operações
mundo.
Além da forma tradicional, os cartões de crédito vêm apresentando variações por meio
QR CODES
“Evolução do código de barras [...] consiste em um gráfico 2D [...] que pode ser
lido pelas câmeras da maioria dos celulares, encaminhando o usuário a um
texto, a um endereço ou a uma imagem.”
(ANDRION, 2019 )
COMENTÁRIO
O futuro de nossas relações econômicas ainda é incerto, mas podemos afirmar que a
COMPUTAÇÃO NO DIREITO
A tecnologia evolui de forma crescente e avança sobre as mais diversas áreas
de conhecimento.
EXEMPLO
Telemedicina: um médico que, auxiliado por tecnologia, pode ter exames de imagem
mais detalhados, diagnósticos facilitados, inúmeros robôs para dar mais precisão a
seus movimentos. Mesmo com todas essas ferramentas, quem será responsável por
para dominar toda essa tecnologia, a chance de sucesso será muito maior.
Departamentos jurídicos das empresas: No Brasil, em um passado muito recente,
processos e outras informações relevantes para sua atividade. Todo esse trabalho
Hoje em dia, sistemas computacionais fazem essa verificação em minutos e com alta
PARALEGAL
“Alguém que, não sendo advogado, auxilia e assessora advogados, realizando
funções paralelas e de grande importância para o sucesso do escritório de
advocacia. Como é evidente, (esse profissional) não pode exercer atividades
típicas de um advogado, como dar consultas ou assinar petições junto aos
tribunais.”
(FREITAS, 2010)
VOCÊ SABIA
Certas funções relacionadas ao Direito, como assistente jurídico e paralegal , foram
classificadas como de alto risco. Porém outras funções, que envolvem inteligência
EXEMPLO
Um escritório de advocacia americano anunciou, em 2016, que havia contratado um
ROSS INTELLIGENCE
“Em 2016, a mídia especializada mostrou grande alvoroço ao noticiar a
primeira contratação de ROSS, o “robô advogado”, pela banca de advocacia
nova-iorquina Baker & Hostetler. A notícia levou o público, sobretudo os
advogados ao redor do globo, a cogitar que a advocacia estaria prestes a
sofrer mudanças decisivas... O principal atributo que diferencia o Watson dos
demais computadores é sua capacidade de trabalhar diretamente com a
linguagem humana, dispensando assim que seu interlocutor tenha
conhecimentos de programação”
(AB2L, 2017)
EXEMPLO
No estado americano de Wisconsin, outro algoritmo, denominado Correctional
Offender Management Profiling for Alternative Sanctions (COMPAS), também
ganhou muito destaque. Ele é utilizado para calcular a probabilidade de
reincidência de um réu, baseado apenas em fatos e comportamentos, evitando,
assim, erros humanos. Esse sistema funciona por meio de um formulário que,
após preenchido e processado, gera um valor entre 1 e 10. Quanto maior é o
valor, maior é considerada a periculosidade do indivíduo.
CRITÉRIOS DO A
O grau de escolaridade
A situação financeira
Outro modelo que ganhou muita atenção foi o de Daniel Martin Katz,
(machine learning) com métodos estatísticos, ele conseguiu prever 70% das
Site do danielmartinkatz
Em seu artigo, Katz afirma que chegou o momento em que softwares passarão
a desenvolver tarefas próprias de advogados, inclusive algumas consideradas
não triviais. Dessa maneira, uma vez criadas as soluções computacionais, a
pressão pela redução de despesas forçaria escritórios e clientes a utilizarem a
tecnologia para funções antes realizadas por equipes de operadores jurídicos.
O resultado seria tão impactante, que seria necessário repensar a própria
prática do Direito.
Somente I
I e III
I e II
I, II e III
Somente I
II e III
Somente II
I e III
GABARITO
1. A Economia Criativa é uma área que, cada vez mais, vem utilizando o
pensamento computacional em seu estudo e desenvolvimento. Podemos
identificar como Economia Criativa:
MÓDULO 3
Contudo, isso não significa, de forma alguma, que a teoria esteja afastada da
prática. Ao contrário, a educação contemporânea está cada vez mais vinculada
à prática e as tecnologias educacionais são ferramentas fundamentais na
construção desse processo, o que transforma a aprendizagem em algo
tangível, estimulando o interesse do aluno.
As aulas de Matemática, muitas vezes, podem ser o terror dos estudantes, pois
alguns deles não compreendem a importância de aprender a calcular uma
equação de 2º grau, por exemplo. Muito do que aprendemos pode ser utilizado
em situações cotidianas, enquanto outros conhecimentos servem para
desenvolver nosso raciocínio e nos tornar capazes de resolver problemas
complexos de diversas naturezas. O desenvolvimento do pensamento crítico e
de competências emocionais prepara os alunos para o sucesso a longo prazo.
O aprendizado do pensamento computacional ajuda os jovens a desenvolver
habilidades importantes não apenas para as disciplinas da área de exatas, mas
também de Ciências Sociais, Artes e Linguagem. Assim, eles serão mais
capazes de articular um problema e de pensar logicamente.
VOCÊ SABIA
O governo dos Estados Unidos possui uma iniciativa para preparar as crianças desde
cedo para o “emprego do futuro”. Isso não significa simplesmente saber utilizar
computadores, mas agir e tomar decisões com base nos quatro pilares do pensamento
computacional.
Por meio do programa Ciência da Computação para Todos, o governo dos Estados
Unidos leva essa iniciativa a centenas de escolas por todo o país, oferecendo a
crianças, principalmente a meninas e minorias, a oportunidade de criar suas próprias
Para que isso seja possível, os professores, formados em uma geração anterior,
A INSERÇÃO DO PENSAMENTO
COMPUTACIONAL NA ESCOLA NÃO VISA
TÃO SOMENTE À EMPREGABILIDADE, À
COMPETITIVIDADE E À ASCENSÃO
ECONÔMICA, MAS PRINCIPALMENTE À
CONSTRUÇÃO DE COMPETÊNCIAS E
HABILIDADES FUNDAMENTAIS AOS SERES
HUMANOS PARA O EFETIVO EXERCÍCIO DA
CIDADANIA EM UMA SOCIEDADE DIGITAL.
(BLIKSTEIN, 2008)
ATENÇÃO
Nesse aspecto, o pensamento computacional atua como ferramenta importante para
a infância.
EXEMPLO
Construir gráficos a partir do domínio das planilhas eletrônicas é importante para
VOCÊ SABIA
A tendência é que tal cenário mude em breve: professores de todas as áreas poderão
APLICAÇÃO DO PENSAMENTO
COMPUTACIONAL
Vamos conhecer agora algumas ferramentas utilizadas para tornar
possível a aplicação do pensamento computacional na área educacional.
Bell, Witten e Fellows (2011) propõem uma técnica para ensinar Ciência
da Computação por meio de atividades de entretenimento, sem a
necessidade do uso do computador. Além de ser de fácil aplicação, essa
técnica favorece países e lugares menos desenvolvidos, onde não há fácil
acesso a tecnologias, fazendo, assim, um papel social.
Utilizando jogos, atividades interativas e desenvolvimento colaborativo, essa
técnica ensina pequenos conceitos de computação, conforme mostra a tabela a
seguir:
Jogos
OUTRAS FERRAMENTAS
PLATAFORMA SCRATCH
É uma organização sem fins lucrativos, com maior destaque e apoio direto de
governos e das principais empresas de tecnologia (Amazon, Microsoft,
Facebook, Google etc.). Seu objetivo é alcançar todas as crianças em todas as
escolas do mundo, para que possam ter a oportunidade de aprender o
pensamento computacional.
HORA DO CÓDIGO
Voluptate consequat amet nostrud ullamco. Ut consectetur deserunt ea Lorem
deserunt in aliqua nulla. Ullamco ut sint aliqua id eiusmod ipsum ex pariatur
amet nulla. Do sit excepteur fugiat deserunt do occaecat ullamco.
fonte.com.br
CODE.ORG
“Organização sem fins lucrativos dedicada a expandir o acesso à Ciência da
Computação em escolas e aumentar a participação das mulheres e das
minorias não representadas. Nossa visão é de que todo estudante em toda
escola tenha a oportunidade de aprender Ciência da Computação, assim como
aprende Biologia, Química ou Álgebra.”
Fonte:code.org
GAMIFICAÇÃO
Expressão criada em 2002 para representar técnicas que utilizam dinâmicas de
jogos, cujo objetivo é facilitar o entendimento de determinado assunto por meio
da interatividade e da motivação.
PENSAMENTO COMPUTACIONAL E
ENSINO DA ENGENHARIA
Fonte: ThisisEngineering RAEng / unsplash
ENGENHARIA
Fonte: jcomp / Freepik
MATEMÁTICA
Fonte: Pim Chu / unsplash
VIVENCIAS PRÁTICAS
Um segundo desafio está relacionado à crescente complexidade dos sistemas
que os engenheiros recém-qualificados deverão analisar, projetar e testar em
sua carreira. Não é mais adequado apenas compreender os princípios
subjacentes. Um engenheiro graduado deve agora ter um conhecimento de
trabalho muito mais profundo dos processos envolvidos no projeto desses
sistemas complexos.
COMENTÁRIO
As experiências de várias instituições acadêmicas líderes dos Estados Unidos e da
MODAL
Do inglês Matrix Laboratory, é um software (programa) voltado para cálculos
numéricos. Por ser interativo e possuir alto desempenho, é muito utilizado
quando se busca exatidão e velocidade na solução desses cálculos.
Fonte:wikpediaUma superfície criada no Matlab .
COMENTÁRIO
À medida que o nível de conforto dos alunos com programação aumenta e a
VERIFICANDO O APRENDIZADO
1. QUAL É O OBJETIVO DE INCLUIR O PENSAMENTO
COMPUTACIONAL NO CURRÍCULO DA EDUCAÇÃO
BÁSICA?
GABARITO
CONCLUSÃO
CONSIDERAÇÕES FINAIS
Como você deve ter percebido, há inúmeras possibilidades de utilização do
pensamento computacional, seja nas áreas que lhe foram apresentadas, seja
em tantas outras que você já identificou ou que identificará ao longo de sua
profissão.
É muito importante que você busque conhecer cada uma das ferramentas
indicadas, explorando possibilidades, identificando aquelas que melhor se
aproximam de sua área de conhecimento e interesse. Afinal, como você
também já sabe, as habilidades são aprimoradas na atuação prática.
REFERÊNCIAS
AB2L. Associação Brasileira de LawTechs e LegalTechs. Better call ROSS.
Artigos: Inteligência Artificial. 01.10.2017
ANDRION, R. Você sabe o que é QR Code? – A gente explica. [S. l.]: Olhar
Digital, 2019.
FREITAS, V. P. de. Bacharel sem OAB poderia trabalhar como paralegal. [S.
l.]: Consultor Jurídico, 2010.
EXPLORE+
Como vimos, o pensamento computacional vem mudando o mundo a nosso
na internet este material, cujo original está em inglês, mas você pode usar o
CONTEUDISTA
Rafael José do Nascimento Silva
CURRÍCULO LATTES
Guilherme Dutra Gonzaga Jaime
CURRÍCULO LATTES