SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
O que é programação de
computadores?
Flávio Gomes da Silva Lisboa (www.fgsl.eti.br)
Marque os programadores:
Stanley Jobson
A Senha (2001)
Kate Libby
Piratas de Computador (1995)
Felicity Smoak
Arrow (2012)
Dennis Nedry
Jurassic Park (1993)
Nicholas Hathaway
Hacker (2015)
Neo
Matrix (1999)
hacker = programador?
Elliot Alderson
Mr. Robot (2015)
0
Doutor Zimsky
“Rato”
Fala 6 línguas
Fala 2 línguas
2003
0
Doutor Zimsky
“Rato”
I am the man
01001001001000
00011000010110
11010010000001
11010001101000
01100101001000
00011011010110
000101101110
I am the best
Ich bin
der
Beste
Yo soy el
mejor
Io soi il
migliore
Watashi
wa
saik desuō
Je suis le
meilleur
Bastam dois sinais para que
haja comunicação
Código Morse
Palavras são traduzidas em sinais
Sinais são traduzidos em palavras
https://pt.slideshare.net/ALevy/teorias-da-comunicacao-communication-theories
Comunicação
E o programador?
Codificador
Programador e Computador
Dois conceitos distintos
Existem de forma independente
O que é um computador?
O que é calcular?
Do latim calculus “pedrinha, seixo, calhau”
Calculadores = Computadores
matemáticos mesopotâmicos
Calculadores = Computadores
matemáticos egípcios
Bill Waterson
Máquinas de calcular
Ábaco (~1500 a.C.)
Pascaline (1642)
Stepped Reckoner (1694)
Blaise Pascal
(1623-1662)
Gottfried Wilhelm Leibniz
(1646-1716)
Máquinas de calcular
máquina analítica (1833)
Charles Babbage
(1791-1871)
Máquinas de calcular
Babbage criou o conceito de uma
máquina de calcular que poderia ser
programada (instruída).
A primeira programadora
Augusta Ada King
Condessa de Lovelace
(1815-1852)
100 anos* mais tarde...
Em 1942, quando computadores eram seres
humanos, um grupo de matemáticas foi
recrutada para completar uma pesquisa secreta
para o exército dos Estados Unidos
100 anos* mais tarde...
* 1943-1946
3 toneladas, consumia 50 kW de potência, tendo um custo de
U$200.000,00. Uma máquina destas podia realizar 50 multiplicações por
segundo.
100 anos* mais tarde...
AS PRIMEIRAS PROGRAMADORAS DE COMPUTADOR REAIS
Mas.. cadê o teclado?
Programadoras programando o ENIAC
Como se escreve números nisso?
Voltando ao século XIX...
Alice Liddell e Lewis Caroll
(1832-1898)(1852-1934)
O amigo de Lewis
George Boole (1815-1864)
Verdade ou Mentira
Bastam dois sinais para que
haja comunicação
válvula
10
Sistema binário
Que doido, quem inventou isso?
Essa aí você liga...
A PROGRAMAÇÃO EM PARES JÁ EXISTE HÁ MAIS DE MEIO SÉCULO!
Mas máquinas de calcular eram caras...
Pessoas de calcular eram mais baratas...
O ENIAC custou cerca de US$ 487.000,00,
equivalente a US$ 6.740.000,00 em 2016.
Calculadoras = Computadoras
As “Rocket Girls” da NASA em 1953
Mas o tamanho e o preço
foram diminuindo...
MARK 1 - 1944
WHIRLWIND - 1953
válvula
transistor1947
http://ghztecnologia.blogspot.com.br/2014/07/como-surgiu-o-computador.html
Mas o tamanho e o preço
foram diminuindo...
TRADIC - 1955
TEM TECLADO!
http://ghztecnologia.blogspot.com.br/2014/07/como-surgiu-o-computador.html
Mas o tamanho e o preço
foram diminuindo...
CIRCUITO INTEGRADO - 1958
http://ghztecnologia.blogspot.com.br/2014/07/como-surgiu-o-computador.html
Mas o tamanho e o preço
foram diminuindo...
VÁLVULA
TRANSISTOR
CIRCUITO
INTEGRADO
Mas o tamanho e o preço
foram diminuindo...
HOMEM DE FERRO (1963)
O “NOVO” HOMEM DE FERRO (1963)
Mas o tamanho e o preço
foram diminuindo...
PDP-8 - 1965
CABIA
NUMA
MESA!
http://ghztecnologia.blogspot.com.br/2014/07/como-surgiu-o-computador.html
Mas o tamanho e o preço
foram diminuindo...
IBM-PC - 1981Apple II - 1977
http://ghztecnologia.blogspot.com.br/2014/07/como-surgiu-o-computador.html
Até chegar nisto
(pra encurtar a história)
E elas fazem mais que
calcular...
Elas controlam!
E ao longo dessa história a
programação mudou...
JOHN VON NEUMANN(1903-1957)
Modelo de Von Neumann
(1946)
https://pt.slideshare.net/vitorhugod3/aula-4-histria-e-evoluo-dos-computadores
Qual destes é o programa?
Programar é...
[ ] Fazer a panqueca
[ ] Ensinar a máquina a fazer panqueca
Como se ensina a máquina?
Como se ensina a máquina?
01001000011001010110110001101100011011110010000001100011011
01111011011010111000001110101011101000110010101110010
Um pouco monótono...
Tradução
Tradução envolve dicionário
Linguagem próxima da máquina
Linguagem próxima da máquina
https://www.slideshare.net/JohnCutajar/assembly-language-8086-intermediate
Linguagem próxima do ser humano
(que entende inglês)
Programar é escrever
● Escrever instruções;
● Escrever instruções claras e objetivas;
● Escrever instruções claras e objetivas em uma
sequência lógica que seguida sempre garanta o
mesmo resultado;
● Escrever instruções claras e objetivas em uma
sequência lógica que seguida sempre garanta o
mesmo resultado considerando caminhos
alternativos e exceções.
Precisão de linguagem
Precisão de linguagem
https://pt.slideshare.net/aislan/programador-como-me-tornar-um
Linguagens de alto nível
Compilação
Em suma...
Programar em alto nível é descrever em uma
linguagem humana uma receita de panquecas
para uma máquina que só entende uma
linguagem baseada em dois sinais.
O que pode ser programado?
Programadores têm vida social
(por incrível que pareça)
Programadores têm vida social
(por incrível que pareça)
Programadores memoráveis
Edsger Dijkstra
(1930-2002)
Dennis Ritchie
(1941-2011)
Ken Thompson
(1943)
Niklaus Wirth
(1934)
Andrew Tanenbaum
(1944)
Alan Turing
(1912-1954)
Donald Knuth
(1938)
Grace Hopper
(1906-1992)
Perguntas?

Más contenido relacionado

Más de Flávio Lisboa

Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoFlávio Lisboa
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHPFlávio Lisboa
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework LaminasFlávio Lisboa
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?Flávio Lisboa
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Flávio Lisboa
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHPFlávio Lisboa
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoFlávio Lisboa
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPFlávio Lisboa
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamFlávio Lisboa
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosFlávio Lisboa
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosFlávio Lisboa
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosFlávio Lisboa
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasFlávio Lisboa
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)Flávio Lisboa
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Flávio Lisboa
 
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Flávio Lisboa
 
API PHP para blockchain
API PHP para blockchainAPI PHP para blockchain
API PHP para blockchainFlávio Lisboa
 
Criação ideológica e dialogismo
Criação ideológica e dialogismoCriação ideológica e dialogismo
Criação ideológica e dialogismoFlávio Lisboa
 
Zend Framework 3 - porque só o que existe pode ser aprimorado
Zend Framework 3 - porque só o que existe pode ser aprimoradoZend Framework 3 - porque só o que existe pode ser aprimorado
Zend Framework 3 - porque só o que existe pode ser aprimoradoFlávio Lisboa
 

Más de Flávio Lisboa (20)

Ciência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com métodoCiência e software livre: desenvolvendo com método
Ciência e software livre: desenvolvendo com método
 
Turbinando microsserviços em PHP
Turbinando microsserviços em PHPTurbinando microsserviços em PHP
Turbinando microsserviços em PHP
 
O que esperar do framework Laminas
O que esperar do framework LaminasO que esperar do framework Laminas
O que esperar do framework Laminas
 
PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?PHP Conference Brazil - What can we expect about framework Laminas?
PHP Conference Brazil - What can we expect about framework Laminas?
 
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019
 
Criando microsserviços em PHP
Criando microsserviços em PHPCriando microsserviços em PHP
Criando microsserviços em PHP
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundo
 
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPA demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHP
 
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperamComunicação e padrões em código aberto: quando convergente e divergente cooperam
Comunicação e padrões em código aberto: quando convergente e divergente cooperam
 
Criação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dadosCriação de robôs em PHP para raspagem de dados
Criação de robôs em PHP para raspagem de dados
 
Amanhecer esmeralda
Amanhecer esmeraldaAmanhecer esmeralda
Amanhecer esmeralda
 
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosEstudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de Dados
 
Arquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviçosArquitetura PHP para um mundo orientado a microsserviços
Arquitetura PHP para um mundo orientado a microsserviços
 
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasSemeando Liberdade: Como (e onde) o software livre inclui as pessoas
Semeando Liberdade: Como (e onde) o software livre inclui as pessoas
 
Economia em rede (comunidade)
Economia em rede (comunidade)Economia em rede (comunidade)
Economia em rede (comunidade)
 
Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)Aplicações Corporativas em PHP (CRM e ERP)
Aplicações Corporativas em PHP (CRM e ERP)
 
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)Desenvolvimento Orientado a API (e extraindo existentes com PHP)
Desenvolvimento Orientado a API (e extraindo existentes com PHP)
 
API PHP para blockchain
API PHP para blockchainAPI PHP para blockchain
API PHP para blockchain
 
Criação ideológica e dialogismo
Criação ideológica e dialogismoCriação ideológica e dialogismo
Criação ideológica e dialogismo
 
Zend Framework 3 - porque só o que existe pode ser aprimorado
Zend Framework 3 - porque só o que existe pode ser aprimoradoZend Framework 3 - porque só o que existe pode ser aprimorado
Zend Framework 3 - porque só o que existe pode ser aprimorado
 

O que é programação de computadores