Você está na página 1de 17

LÓGICA E PROGRAMAÇÃO

DE COMPUTADORES

Marcelo Cohen - Aula 01


MAPA DA AULA
Neste material, você tem uma linha do tempo com os principais
acontecimentos das videoaulas, organizados nas seguintes seções:

Para lembrar Para ir além Para exercitar


Momentos importantes Curiosidades, Dinâmicas, exercícios
da disciplina. Conceitos e personalidades e interativos e infográficos.
termos relevantes para o entretenimento.
conteúdo da aula.

Esta é uma versão simplificada do Mapa da Aula, para impressão. Os recursos interativos
disponíveis no material não funcionarão nesta versão. Para uma experiência mais enriquecedora,
acesse a versão completa do Mapa da Aula na aba AULAS.

2
AULA 1 ● PARTE 1

Introdução à computação 01:52

Neste primeiro momento do encontro com o professor


Marcelo Cohen, é apresentada uma introdução à 06:55 Armazenamento
computação, em que os objetivos do conteúdo são:
• Entender o papel de um computador na solução de À medida em que ocorrem cálculos no computador, eles
problemas; têm que ser armazenados em algum lugar e deve-se saber o
• Aprender formas computacionais de pensar. quanto de armazenamento é necessário. Para compreender
isso, Marcelo explica sobre Bits e Bytes, em que 1 byte pode
Nesse sentido, é esclarecido que um computador,
armazenar 256 (28 ) valores diferentes: 0 a 255.
basicamente, realiza cálculos e lembra do resultado
desses cálculos. Segundo o professor, aprender formas Para se medir o armazenamento de um computador,
computacionais de pensar, seria desenvolver um existem dois sistemas: o Binário (IEC), que utiliza potências
pensamento computacional, ou seja: de 2, e o Decimal (SI) que utiliza potencias de 10, sendo
o sistema mais utilizado. Na sequência, dentro do sistema
decimal, Marcelo elucida sobre o que caberia em questões
de armazenamento em Kilobytes (kB), Megabytes (MB),
Nós temos que pensar, de certa maneira, Gigabytes (GB), Terabytes (TB), Petabytes (PB), Exabytes
como a máquina trabalha; não podemos tentar
(EB), Zettabytes (ZB) e Yottabytes (YB). Por exemplo:
resolver um problema como um ser humano,
nós temos que pensar como um computador • 1 kB = 1000 bytes: Documentos simples (300 kB);
para poder resolver. Planilhas (20-200 kB).
• 1 MB = 1000 kBytes: Obra completa de William
Shakespeare (5 MB); Fotos digitais (2-4 MB); 1 CD-ROM
Na sequência, é refletido sobre o quão rápido é um (700 MB).
computador. Usando como exemplo uma lâmpada a 30 cm • 1 GB = 1000 Mbytes: 300 músicas em formato MP3 (1
de uma mesa, quantas operações um computador faz no GB); 1 disco Blu-Ray (25 GB); 1 filme transmitido em alta
tempo em que a luz leva para chegar à mesa? Considerando definição (4 GB).
uma CPU moderna de alto desempenho:
• 4 bilhões de operações por segundo;
•Velocidade da luz: 300.000 m/s; Distância: 0,3 m (30 cm);
• D = VT → T =0,3/300000 = 0,000001s, ou seja 4000 Base 2 Calculator
operações.
Site que simula uma calculadora de base 2. Acesse o site aqui.

3
Data Unit Converter
Site que pode ser utilizado para comparar os dois
sistemas de armazenamento de um computador,
decimal (SI) e binário (IEC). Acesse o site aqui.
19:33 A internet em um minuto
Neste momento, é refletido sobre o motivo de, hoje em dia,
precisarmos de unidades de medida tão grandes, que seria
pelo alto volume de dados produzido pela humanidade,
que se torna cada vez maior. Nessa perspectiva, o professor
apresenta resumidamente o que acontece em um minuto na
Internet, segundo o site LocaliQ.
Vídeo: O que a maioria das
escolas não ensinam?

Vídeo: Representando
números e letras com binário

Vídeo que fala sobre a área de Ciência da computação a


partir de relatos da experiência de nomes como Bill Gates,
Mark Zuckerberg, Will.i.am, Chris Bosh, Jack Dorsey, Tony
Hsieh, Drew Houston, Gabe Newell, Rugal, Elena Silenok,
Vídeo que mostra como os computadores usam um fluxo
Vanessa Hurst, e Partovi. Dirigido por Lesley Chilcott,
de 1s e 0s para representar dados como de mensagens de
produtor executivo Hadu e Ali Partovi. Assista aqui.
texto e fotos a músicas e páginas da web. Acesse aqui.

4
Resumo I 23:53

Um breve resumo do que foi tratado na aula até o momento:


• Computadores modernos são muito rápidos.
• Preocupação com o armazenamento dos dados.
• Contexto do conteúdo cada vez mais relevante. Unidades de medida de dados
• Grande volume de dados produzido, armazenado e
transmitido todos os dias na Internet. Todas as unidades de medida de armazenamento de tecnologia
de computador são baseadas no byte, que é a quantidade de
armazenamento necessária para armazenar um único caractere
de texto. Para converter de uma unidade para outra, saiba que
para cada nível que você sobe, você multiplica por 1.000.

+ + + + + +

5
AULA 1 ● PARTE 2

O que é computação? 00:48

Marcelo esclarece que a computação vem do conhecimento,


sendo que existem dois tipos de conhecimentos neste
contexto:
• Conhecimento declarativo: definido por fatos
conhecidos. Por exemplo, a afirmação de o que é necessário
para fazer um bolo: “para fazer um bolo, é preciso misturar
açúcar, farinha, margarina, ovos, leite e fermento”.
• Conhecimento imperativo: são as “receitas”, o como 12:38 Algoritmos
fazer, contendo os passo a passos.
Após o embasamento dado pelo professor sobre
Para ilustrar mais este assunto, o professor traz um exemplo
conhecimento declarativo e imperativo, conclui-se
de conhecimento declarativo que envolve a seguinte
que as “receitas” mencionadas no conhecimento
questão: a raiz quadrada de um número x qualquer é um
imperativo seriam os algoritmos. Algoritmo é um
número y, tal que y ∙ y = x. Para fazer o cálculo, neste caso,
conjunto de passos para a solução de um problema,
o professor menciona o conhecimento imperativo com o
é expresso através de uma sequência lógica de
uso de uma “receita” para calcular a raiz quadrada, atribuída
instruções; as instruções devem ser claras e não
a Heron de Alexandria (Século I) e, na sequência, apresenta
ambíguas e um algoritmo deve ser finito.
uma planilha com esta equação que pode ser acessada
aqui.

Algoritmo nada mais é do que um conjunto de


Então, receitas são aquilo que nós chamamos passos que resolve um problema qualquer, um
de algoritmos. problema computacional.

6
Vídeo: O que são os algoritmos
e como eles aprendem com você

Resumo II 16:41

O professor traz um breve resumo do que foi tratado nesta


parte da aula:
• Conhecimento: dois tipos - declarativo x Imperativo.
• Solução computacional de problemas: baseada em
conhecimento imperativo, receitas, processos, sequência de
ações.
• Receita é um algoritmo: passos para a solução de um
problema, sem ambiguidade e finito. Vídeo da BBC News que fala sobre como algoritmos
funcionam e como eles fazem com que uma máquina
aprenda e tome decisões cada vez mais precisas.
Acesse aqui.

Tipos de conhecimentos
Associe as cadeias de suprimentos conforme os níveis de
atuação nos processos. Clique nas opções e identifique a
resposta correta de acordo com sua cor correspondente.

Representa as “receitas”, o como fazer,


Conhecimento declarativo contendo os passo a passos.

Definido por fatos conhecidos. Por


Conhecimento imperativo exemplo, a afirmação de o que é neces-
sário para fazer um bolo: “para fazer um
bolo, é preciso misturar açúcar, farinha,
margarina, ovos, leite e fermento”.

7
AULA 1 ● PARTE 3

Análise de Links 01:52

Neste momento, a temática dos algoritmos é mais desenvolvida,


sendo tratado sobre os algoritmos no mundo real, em que o
professor começa trazendo alguns exemplos disso.

Os algoritmos estão presentes no nosso dia a


06:59 Compressão de dados
dia e a gente não enxerga isso.
Um dos algoritmos mais importantes na atualidade é a
compressão de dados. Representam algoritmos essenciais
O primeiro tipo de algoritmo que o professor apresenta para o uso diário da Internet, utilizado em serviços
é Análise de Links, também chamado de algoritmo de de streaming de vídeo, música, e-mail e mensagens
“recomendação”, que é utilizado por plataformas como instantâneas, por exemplo. Basicamente, há dois tipos de
Amazon, Facebook, NetFlix, YouTube, etc. Este tipo sugere compressão de dados:
recomendações com base em interesses comuns dos usuários.
• Compressão sem perda (lossless): usada
geralmente para arquivos de texto.
• Compressão com perda (lossy): usada geralmente
Criptografia (RSA) 15:07
com imagens e vídeos.

A Criptografia representa um algoritmo essencial para garantir


a segurança de comunicações. Marcelo mostra o algoritmo de
criptografia de chave assimétrica (ou criptografia de chave
pública), enfatizando sua importância e como ele funciona. Por
exemplo, um usuário X pode gerar uma chave pública em que
pode ser distribuída para qualquer pessoa se comunicar com ele;
assim que outro usuário, Y, por exemplo, desejar se comunicar
com o X, essa chave pública gerada passa por um algoritmo de
codificação que produz uma chave privada em que apenas o
usuário X poderá acessar.

A criptografia é um dos algoritmos que move


o mundo hoje. É essencial em qualquer sistema
de comunicação.

8
Hashing Seguro 18:24

Outro algoritmo mostrado é o Hashing Seguro, também


chamado de Certificação Digital, que é utilizado toda vez
em que um site é acessado, com conexão segura, utilizado
em navegadores, e-mails, lojas de aplicativos e software
antivírus por exemplo. Para ilustrar este algoritmo, o
21:09 Proporcional-Integral-Derivada (PID)
professor apresenta este site como exemplo, Coding Horror,
mostrando que o cadeado que aparece no lado esquerdo Proporcional-Integral-Derivada (PID), em português
da digitação do site em um navegador, indica que é uma Proporcional Derival Integrada, é um tipo de
conexão segura, garantida e certificada. algoritmo que pouca gente conhece, que pode ser
utilizado em qualquer sistema de controle industrial,
piloto automático em veículos e turbinas de avião,
Quem garante que um certificado é valido? por exemplo. Nesse caso, pode ser usado em
Existem algumas organizações no mundo qualquer aplicação que exija controle continuamente
chamadas de entidades certificadoras, que são modulado. Para ilustrar, Marcelo apresenta um
capazes de certificar alguém. exemplo de forno industrial a gás que apenas com
o algoritmo PID consegue ter a capacidade manter
temperatuas estáveis. Saiba mais sobre o exemplo
dado em aula acessando este site.

Vídeo: Encriptação
Assimétrica

Site INTI
Site do Instituto Nacional de Tecnologia da Informação (INTI).
Acesse aqui.

Vídeo que explica sobre a Encriptação Assimétrica de


forma simples, também sobre como funciona a criptografia
de chave pública e o significado de uma chave privada e
uma chave pública, por exemplo. Acesse o vídeo aqui.

9
Certificado Digital
Segundo o site do Instituto Nacional de Tecnologia
da Informação, “o certificado digital ICP-Brasil é um
documento eletrônico que tem como principal função
comprovar a identidade do cidadão ou empresa em
meios eletrônicos e proporcionar uma forma legal 28:13 Resumo III
e segura de assinar digitalmente documentos e
transações realizadas nesses ambientes.” Diversos algoritmos são usados no dia a dia. Por
exemplo: Análise de Links, Criptografia, Compressão
de dados, Hashing seguro e PID (proporcional-
integral-derivada).

Tipos de algoritmos
A compressão de dados é um dos algoritmos mais
importantes atualmente, que representa algoritmos
essenciais para o uso diário da Internet. A compreensão
de dados é utilizada em serviços de streaming de vídeo,
música, e-mail e mensagens instantâneas.

Verdadeiro. Falso.

10
AULA 1 ● PARTE 4

Técnicas para Resolução de 02:32


Problemas: exemplo 1
O professor reforça que, para começar a se trabalhar
computacionalmente, deve-se pensar computacionalmente.
Nessa perspectiva, ele diz que problemas reais podem nos
mostrar formas computacionais de pensar (pensamento Dinâmica: A Raposa,o bode e a cenoura
computacional). Em outras palavras seria: como usar um
computador para resolver problemas? Acesse este site para tentar resolver o problema clássico de
“travessia de rio” da raposa, o bode e a cenoura.
Na sequência, o professor mostra o exemplo do problema
clássico de “travessia de rio” da raposa, o bode e a cenoura.
Basicamente, o problema consiste em atravessar um rio
com objetos e seres vivos, respeitando regras e restrições
diversas, em que um barco transporta apenas um fazendeiro Técnicas para Resolução de
e outro item; a raposa e o bode não podem ficar sozinhos; 11:16
o bode e a cenoura não podem ficar sozinhos. A partir da Problemas: exemplo 2
explicação, Marcelo reflete sobre quais são as operações Marcelo apresenta um outro exemplo sobre Ordenação de
possíveis para resolver este problema e pede aos alunos fichas: suponha que desejamos ordenar alfabeticamente
para tentarem jogar online e resolverem o problema, 100 fichas de um cadastro de clientes. Como fazer? Assim,
acessando este site. sugere-se que se dividida isso em problemas menores,
como:
Após apresentar a resolução do problema, o professor
conclui que é importante formalizar corretamente o • Separar as fichas pela letra inicial do nome.
problema e que pensar sobre o problema pode ser tão • Ordenar cada letra separadamente.
produtivo quanto pensar sobre a solução. • Juntar todas as letras no final.
A partir deste problema apresentado, conclui-se que se um
problema é complexo demais, dividi-lo em partes menores
pode nos levar à solução - técnica usualmente denominada
divisão e conquista.

11
Técnicas para Resolução de 15:28
Problemas: exemplo 3
O próximo exemplo trazido pelo professor é o Sudoku, um
quebra-cabeça numérico que tem como objetivo preencher
a grade 9x9 com dígitos. Cada coluna, linha e área 3x3 em
destaque não pode ter dígitos repetidos.
19:53
Técnicas para Resolução de
Problemas: exemplo 4
Na sequência, é apresentado o exemplo da fechadura
alienígena, que tem a seguinte descrição:
“você foi capturado por alienígenas, e a fechadura tem
travas que precisam ser deslocadas da direita para a
esquerda. Há cristais nas travas, que quando alinhados em
pares, disparam um alarme. De cada lado da fechadura, há
um botão que, pressionado, suprime o alarme. Porém, há
um problema: a distância do lado direito ao esquerdo é de
3 metros – você não consegue ficar pressionando o botão e
mover as travas ao mesmo tempo!”
Após a resolução deste outro exemplo, observa-se que o
problema parecia completamente novo, mas sua solução
é idêntica à outro já resolvido. Assim, é fundamental saber
reconhecer analogias.

Com a explicação deste problema, conclui-se


que devemos procurar pela parte mais restrita do
problema e que as restrições eliminam escolhas.
Também, é visto que deve-se sempre começar pelo
que for óbvio.

12
Técnicas gerais 26:10

Marcelo Cohen lista 7 técnicas gerais que podem ajudar na


resolução de problemas:
• Sempre tenha um plano;
• Reveja o problema;
• Divida o problema;
• Reduza o problema; Pensamento Computacional
• Procure por semelhanças;
• Comece com o que você sabe;
• Experimente.

Resumo IV 33:41

Resumo do que foi tratado nesta parte da aula:


Vídeo sobre pensamento computacional, sendo uma
• Divisão e conquista; introdução ao tema, explicado pela professora Maria da
• Começar pela parte restrita; Graça Pimentel, produzido pela Univesp (Universidade
Virtual do Estado de São Paulo)
• Analogias;
Clique aqui para assistir.
• Técnicas Gerais: Formalização, Rever problemas,
Dividir, Reduzir, Analogias, Começar com o que sabe e
Experimentação.

13
AULA 1 ● PARTE 5

Programação 02:10

Marcelo Cohen começa a introduzir o assunto sobre


programação explicando a diferença entre um programa
fixo e um programa armazenado:
• Computador de programa fixo: realiza um conjunto fixo
de tarefas. Exemplos: computador para calcular raízes
quadradas; calculadora; computador de Atanasoff e Berry
(1941) – resolvia sistemas de equações; “The Bombe” – Alan
Turing, decáda de 1940 (decodificação do Enigma).
• Computador de programa armazenado: uma máquina que
Filme: Jogo da imitação
armazena e manipula instruções; sequência de instruções
é o que chamamos de programa; armazenada na memória
do computador (e em meio externo); um programa especial Filme de 2014, dirigido por Morten
(interpretador) executa cada instrução em ordem. Tyldum, que foi baseado no livro
biográfico “Alan Turing: The Enigma,
O professor também explica que um programa é um de Andrew Hodges”, inspirado na
algoritmo escrito em uma linguagem de programação, vida do criptoanalista britânico Alan
que é interpretado e executado por um computador. Turing.
Computadores têm capacidade de interpretação limitada,
com isso, linguagens de programação têm regras e Saiba mais sobre o filme aqui.
restrições bem definidas.

14
Aspectos de Linguagens de 06:40
Programação
Em qualquer linguagem de programação, alguns aspectos
devem ser cuidados, como: 12:49 Nossos objetivos
• Construções primitivas: são equivalentes as palavras na
língua portuguesa, que na linguagem de programação Os objetivos desta parte da aula são:
representam os números, texto, operadores simples, etc. • Aprender a sintaxe e semântica de uma linguagem
de programação.
• Sintaxe: são as combinações de palavras ou símbolos
que são aceitas pela linguagem. Assim como no português • Aprender como usar esses elementos para traduzir
se tem regras de sintaxe, na linguagem de programação “receitas” que resolvem um problema em uma forma
também, por exemplo 3.2 + 5 é uma expressão válida que o computador possa entender.
(adição de dois números). • Formas computacionais de pensar nos permitem
usar um variedade de métodos para resolver
• Semântica estática: representa quais expressões problemas.
sintaticamente válidas realmente possuem um significado.
Assim, na linguagem de programação, “a”+“b” é
semanticamente válido, mas “abc”-3 não é.
13:44 A linguagem Python
• Semântica dinâmica: é o que acontece na prática ao
executarmos o programa (i.e., quando o computador A linguagem Python é uma linguagem de programação
interpretar as instruções. muito utilizada, sendo simples e acessível, de alto nível, de
tipagem dinâmica, multiplataforma e orientada a objetos.
Foi criada em 1991 por Guido van Rossum. Esta linguagem é
utilizada amplamente em análise de dados, bancos de dados,
Executar o programa significa que o
computador vai interpretar aquelas instruções interfaces com o usuário, aprendizado de máquina, redes,
sequencialmente. computação científica, sistemas web, entre outras aplicações.
Na sequência, Marcelo apresenta meios de fazer a instalação
do ambiente de desenvolvimento no computador ou utilizar
O computador não vai corrigir os algoritmos online, como:
de vocês, se vocês errarem o algoritmo, ele vai
fazer cegamente o que vocês mandaram.
• Instalação do ambiente local: Acesse este site.
• Ambiente de desenvolvimento: Visual Studio Code.
• Usar um ambiente online: Google Colaboratory.

O programa nada mais é do que uma


sequência de instruções.

15
Documentação Python
Este site mostra a documentação oficial da linguagem
Python 3.11.0.

16

Você também pode gostar