Em que consiste a ciência, na computação? - dcc.ufrj.brcollier/Palestras/computacao.pdf ·...

Post on 08-Feb-2019

216 views 0 download

Transcript of Em que consiste a ciência, na computação? - dcc.ufrj.brcollier/Palestras/computacao.pdf ·...

Em que consiste a ciência, nacomputação?

S. C. Coutinho

Instituto de Matematica–UFRJ

Open House 2009 – p. 1/50

Algumas perguntas

Open House 2009 – p. 2/50

Algumas perguntas

O que é ciência da computação?

Open House 2009 – p. 2/50

Algumas perguntas

O que é ciência da computação?

O que é um computador ?

Open House 2009 – p. 2/50

Algumas perguntas

O que é ciência da computação?

O que é um computador ?

Existia ciência da computação antes do computador?

Open House 2009 – p. 2/50

Segundo a Wikipedia

Open House 2009 – p. 3/50

Segundo a Wikipedia

Um computador é uma máquina que manipula dadosde acordo com um conjunto de instruções.

Open House 2009 – p. 3/50

Segundo a Wikipedia

Um computador é uma máquina que manipula dadosde acordo com umconjunto de instruções.

Open House 2009 – p. 3/50

Segundo a Wikipedia

Um computador é uma máquina que manipula dadosde acordo com um programa.

Open House 2009 – p. 3/50

Computer

Open House 2009 – p. 4/50

Computer

Now it is manifest, and most men likewise know, thatthe Calenders of these computers, and the accountsof these days are very different (...)

Open House 2009 – p. 4/50

Computer

Now it is manifest, and most men likewise know, thatthe Calenders of thesecomputers, and the accountsof these days are very different (...)

Open House 2009 – p. 4/50

Computer

Now it is manifest, and most men likewise know, thatthe Calenders of thesecomputers, and the accountsof these days are very different (...)

Sir Thomas Browne

Open House 2009 – p. 4/50

Computer

Now it is manifest, and most men likewise know, thatthe Calenders of thesecomputers, and the accountsof these days are very different (...)

Sir Thomas BrownePseudodoxia Epidemica

Open House 2009 – p. 4/50

Computer

Now it is manifest, and most men likewise know, thatthe Calenders of thesecomputers, and the accountsof these days are very different (...)

Sir Thomas BrowneErros Vulgares

Open House 2009 – p. 4/50

Computer

Now it is manifest, and most men likewise know, thatthe Calenders of thesecomputers, and the accountsof these days are very different (...)

Sir Thomas BrowneErros Vulgares (1646)

Open House 2009 – p. 4/50

Computer

Now it is manifest, and most men likewise know, thatthe Calenders of thesecomputers, and the accountsof these days are very different (...)

Sir Thomas BrowneErros Vulgares (1646)

Portanto, naquela épocacomputerera umapessoaquefazia cálculos,

Open House 2009 – p. 4/50

Computer

Now it is manifest, and most men likewise know, thatthe Calenders of thesecomputers, and the accountsof these days are very different (...)

Sir Thomas BrowneErros Vulgares (1646)

Portanto, naquela épocacomputerera umapessoaquefazia cálculos, como os que são necessários para fazerum calendário.

Open House 2009 – p. 4/50

Duas conclusões

Open House 2009 – p. 5/50

Duas conclusões

No passado:

Open House 2009 – p. 5/50

Duas conclusões

No passado:

• um computador era umapessoanão umamáquina;

Open House 2009 – p. 5/50

Duas conclusões

No passado:

• um computador era umapessoanão umamáquina;

• os cálculos estavam frequentemente associados àastronomia:

Open House 2009 – p. 5/50

Duas conclusões

No passado:

• um computador era umapessoanão umamáquina;

• os cálculos estavam frequentemente associados àastronomia: calendário, eclipes, posição dosplanetas, etc.

Open House 2009 – p. 5/50

Duas conclusões

No passado:

• um computador era umapessoanão umamáquina;

• os cálculos estavam frequentemente associados àastronomia: calendário, eclipes, posição dosplanetas, etc.

• tais cálculos são geralmente muito laboriosos.

Open House 2009 – p. 5/50

Ideia perdida no tempo...

Open House 2009 – p. 6/50

Ideia perdida no tempo...

Que tal inventar uma máquina capaz de efetuarcálculos repetitivos e laboriosos?

Open House 2009 – p. 6/50

Alguns exemplos

Open House 2009 – p. 7/50

Antikhytera, 100 a.C.

Open House 2009 – p. 8/50

Antikhytera, 100 a.C.

Open House 2009 – p. 8/50

Pascal, 1652

Open House 2009 – p. 9/50

Pascal, 1652

Open House 2009 – p. 9/50

Jacquard, 1801

Open House 2009 – p. 10/50

Jacquard, 1801

Open House 2009 – p. 10/50

Babbage, 1822

Open House 2009 – p. 11/50

Babbage, 1822

Open House 2009 – p. 11/50

Babbage, 1837

Open House 2009 – p. 12/50

Babbage, 1837O analytical engine:

Open House 2009 – p. 12/50

Babbage, 1837O analytical engine:

• movido a vapor;

Open House 2009 – p. 12/50

Babbage, 1837O analytical engine:

• movido a vapor;• totalmente programável;

Open House 2009 – p. 12/50

Babbage, 1837O analytical engine:

• movido a vapor;• totalmente programável;• usava cartões perfurados como Jacquard;

Open House 2009 – p. 12/50

Babbage, 1837O analytical engine:

• movido a vapor;• totalmente programável;• usava cartões perfurados como Jacquard;• saída seria impressa;

Open House 2009 – p. 12/50

Babbage, 1837O analytical engine:

• movido a vapor;• totalmente programável;• usava cartões perfurados como Jacquard;• saída seria impressa;• linguagem semelhante a “assembler”;

Open House 2009 – p. 12/50

Babbage, 1837O analytical engine:

• movido a vapor;• totalmente programável;• usava cartões perfurados como Jacquard;• saída seria impressa;• linguagem semelhante a “assembler”;• nunca chegou a ser construído.

Open House 2009 – p. 12/50

Ada Lovelace, 1815-1852

Open House 2009 – p. 13/50

Ada Lovelace, 1815-1852

Open House 2009 – p. 13/50

Ada Lovelace, 1842

Open House 2009 – p. 14/50

Ada Lovelace, 1842

“Podemos dizer de maneira muito apta que oAnalytical Engine tece padrões algébricos exatamentecomo o tear de Jacquard tece flores e folhas.”

Open House 2009 – p. 14/50

Ada Lovelace, 1842

“Podemos dizer de maneira muito apta que oAnalytical Engine tece padrões algébricos exatamentecomo o tear de Jacquard tece flores e folhas.”

Escreveu programas para amáquina anlíticadeBabbage.

Open House 2009 – p. 14/50

Porém,

Open House 2009 – p. 15/50

Porém,

A ciência da computação é sobre computadores tantoquanto a astronomia é sobre telescópios.

Open House 2009 – p. 15/50

Porém,

A ciência da computação é sobre computadores tantoquanto a astronomia é sobre telescópios.

E. W. Dijkstra

Open House 2009 – p. 15/50

Edsger Dijkstra, 1930-2002

Open House 2009 – p. 16/50

Edsger Dijkstra, 1930-2002

Open House 2009 – p. 16/50

Quem foi Dijkstra?

Open House 2009 – p. 17/50

Quem foi Dijkstra?Pioneiro da computação,

Open House 2009 – p. 17/50

Quem foi Dijkstra?Pioneiro da computação,programadordaUniversidade de Amsterdam entre 1952 e 1962.

Open House 2009 – p. 17/50

Quem foi Dijkstra?Pioneiro da computação,programadordaUniversidade de Amsterdam entre 1952 e 1962.Contribuiu para:

Open House 2009 – p. 17/50

Quem foi Dijkstra?Pioneiro da computação,programadordaUniversidade de Amsterdam entre 1952 e 1962.Contribuiu para:

• linguagens de programação;

Open House 2009 – p. 17/50

Quem foi Dijkstra?Pioneiro da computação,programadordaUniversidade de Amsterdam entre 1952 e 1962.Contribuiu para:

• linguagens de programação;• sistemas operacionais;

Open House 2009 – p. 17/50

Quem foi Dijkstra?Pioneiro da computação,programadordaUniversidade de Amsterdam entre 1952 e 1962.Contribuiu para:

• linguagens de programação;• sistemas operacionais;• processamento distribuído;

Open House 2009 – p. 17/50

Quem foi Dijkstra?Pioneiro da computação,programadordaUniversidade de Amsterdam entre 1952 e 1962.Contribuiu para:

• linguagens de programação;• sistemas operacionais;• processamento distribuído;• especificação formal de programas;

Open House 2009 – p. 17/50

Quem foi Dijkstra?Pioneiro da computação,programadordaUniversidade de Amsterdam entre 1952 e 1962.Contribuiu para:

• linguagens de programação;• sistemas operacionais;• processamento distribuído;• especificação formal de programas;• desenvolvimento de algoritmos;

Open House 2009 – p. 17/50

Quem foi Dijkstra?Pioneiro da computação,programadordaUniversidade de Amsterdam entre 1952 e 1962.Contribuiu para:

• linguagens de programação;• sistemas operacionais;• processamento distribuído;• especificação formal de programas;• desenvolvimento de algoritmos;• desenvolvimento de programas;

Open House 2009 – p. 17/50

Quem foi Dijkstra?Pioneiro da computação,programadordaUniversidade de Amsterdam entre 1952 e 1962.Contribuiu para:

• linguagens de programação;• sistemas operacionais;• processamento distribuído;• especificação formal de programas;• desenvolvimento de algoritmos;• desenvolvimento de programas;• desenvolvimento de argumentos matemáticos.

Open House 2009 – p. 17/50

Quem foi Dijkstra?Pioneiro da computação,programadordaUniversidade de Amsterdam entre 1952 e 1962.Contribuiu para:

... quase tudo ...

Open House 2009 – p. 17/50

Definição

Open House 2009 – p. 18/50

Definição

A Ciência da Computação é sobre

Open House 2009 – p. 18/50

Definição

A Ciência da Computação é sobre computação;

Open House 2009 – p. 18/50

Definição

A Ciência da Computação é sobre computação; isto é:

Open House 2009 – p. 18/50

Definição

A Ciência da Computação é sobre computação; isto é:• o que deve ser uma computação;

Open House 2009 – p. 18/50

Definição

A Ciência da Computação é sobre computação; isto é:• o que deve ser uma computação;• o que pode e o que não pode ser computado;

Open House 2009 – p. 18/50

Definição

A Ciência da Computação é sobre computação; isto é:• o que deve ser uma computação;• o que pode e o que não pode ser computado;• como fazê-lo quando é possível;

Open House 2009 – p. 18/50

Definição

A Ciência da Computação é sobre computação; isto é:• o que deve ser uma computação;• o que pode e o que não pode ser computado;• como fazê-lo quando é possível;• qual o custo de uma computação;

Open House 2009 – p. 18/50

Definição

A Ciência da Computação é sobre computação; isto é:• o que deve ser uma computação;• o que pode e o que não pode ser computado;• como fazê-lo quando é possível;• qual o custo de uma computação;

e coisas do gênero.

Open House 2009 – p. 18/50

O que é uma computação?

Open House 2009 – p. 19/50

Alan Turing, 1912-1954

Open House 2009 – p. 20/50

Alan Turing, 1912-1954

Open House 2009 – p. 20/50

O que um computador faz?

Open House 2009 – p. 21/50

O que um computador faz?

Segundo Turing,

Open House 2009 – p. 21/50

O que um computador faz?

Segundo Turing, o que um “computador humano”efetuando cálculos segundo regras pré-estabelecidasfaz resume-se em:

Open House 2009 – p. 21/50

O que um computador faz?

Segundo Turing, o que um “computador humano”efetuando cálculos segundo regras pré-estabelecidasfaz resume-se em:

• ler uma instrução e guardá-la na memória;

Open House 2009 – p. 21/50

O que um computador faz?

Segundo Turing, o que um “computador humano”efetuando cálculos segundo regras pré-estabelecidasfaz resume-se em:

• ler uma instrução e guardá-la na memória;• escrever símbolos em um papel quadriculado;

Open House 2009 – p. 21/50

O que um computador faz?

Segundo Turing, o que um “computador humano”efetuando cálculos segundo regras pré-estabelecidasfaz resume-se em:

• ler uma instrução e guardá-la na memória;• escrever símbolos em um papel quadriculado;• manipular estes símbolos, escrevendo-os ou

apagando-os.

Open House 2009 – p. 21/50

O que um computador faz?

Open House 2009 – p. 22/50

O que um computador faz?

Portanto,

Open House 2009 – p. 22/50

O que um computador faz?

Portanto, uma máquina que imita um “computadorhumano” precisa de:

Open House 2009 – p. 22/50

O que um computador faz?

Portanto, uma máquina que imita um “computadorhumano” precisa de:

• um “estado mental” onde lembrar as instruções;

Open House 2009 – p. 22/50

O que um computador faz?

Portanto, uma máquina que imita um “computadorhumano” precisa de:

• um “estado mental” onde lembrar as instruções;• uma memória equivalente ao papel quadriculado;

Open House 2009 – p. 22/50

O que um computador faz?

Portanto, uma máquina que imita um “computadorhumano” precisa de:

• um “estado mental” onde lembrar as instruções;• uma memória equivalente ao papel quadriculado;• capacidade de escrever e apagar da memória e de

mudar seu “estado mental”.

Open House 2009 – p. 22/50

Ideia-chave do Turing

Open House 2009 – p. 23/50

Ideia-chave do Turing

Existe uma máquina capaz de executar qualquerprograma que se possa fazer.

Open House 2009 – p. 23/50

Ideia-chave do Turing

Existe uma máquina capaz de executar qualquerprograma que se possa fazer.

Isto não é óbvio:

Open House 2009 – p. 23/50

Ideia-chave do Turing

Existe uma máquina capaz de executar qualquerprograma que se possa fazer.

Isto não é óbvio: a demonstração é dada ao final docurso de linguagens formais.

Open House 2009 – p. 23/50

Ideia-chave do Turing

Existe uma máquina capaz de executar qualquerprograma que se possa fazer.

Em sua versão abstrata, tais máquinas são conhecidascomoMáquinas de Turing Universais.

Open House 2009 – p. 23/50

Ideia-chave do Turing

Existe uma máquina capaz de executar qualquerprograma que se possa fazer.

Em sua versão abstrata, tais máquinas são conhecidascomoMáquinas de Turing Universais. Sua versãoconcreta é chamada simplesmente

Open House 2009 – p. 23/50

Ideia-chave do Turing

Existe uma máquina capaz de executar qualquerprograma que se possa fazer.

Em sua versão abstrata, tais máquinas são conhecidascomoMáquinas de Turing Universais. Sua versãoconcreta é chamada simplesmente computador.

Open House 2009 – p. 23/50

Tese de Church-Turing

Open House 2009 – p. 24/50

Tese de Church-Turing

Um problema admite umasolução computacionalseexiste um programa que resolve este problema e quepode ser implementado em

Open House 2009 – p. 24/50

Tese de Church-Turing

Um problema admite umasolução computacionalseexiste um programa que resolve este problema e quepode ser implementado em uma máquina de Turing

Open House 2009 – p. 24/50

Tese de Church-Turing

Um problema admite umasolução computacionalseexiste um programa que resolve este problema e quepode ser implementado em um computador.

Open House 2009 – p. 24/50

Existe algum problema que nãopossa ser resolvido

computacionalmente?

Open House 2009 – p. 25/50

Alan Turing, 1936

Open House 2009 – p. 26/50

Alan Turing, 1936

SIM!

Open House 2009 – p. 26/50

Problema da parada

Open House 2009 – p. 27/50

Problema da parada

Existe um programaH capaz de decidir

Open House 2009 – p. 27/50

Problema da parada

Existe um programaH capaz de decidir

dado um programa qualquerP e uma entradaE deP

Open House 2009 – p. 27/50

Problema da parada

Existe um programaH capaz de decidir

dado um programa qualquerP e uma entradaE deP

seP para ou não com entradaE?

Open House 2009 – p. 27/50

Problema da parada

Existe um programaH capaz de decidir

dado um programa qualquerP e uma entradaE deP

seP para ou não com entradaE?

Este não foi o problema original tratado pelo Turing,

Open House 2009 – p. 27/50

Problema da parada

Existe um programaH capaz de decidir

dado um programa qualquerP e uma entradaE deP

seP para ou não com entradaE?

Este não foi o problema original tratado pelo Turing,o problema original chama-se

Open House 2009 – p. 27/50

Problema da parada

Existe um programaH capaz de decidir

dado um programa qualquerP e uma entradaE deP

seP para ou não com entradaE?

Este não foi o problema original tratado pelo Turing,o problema original chama-se Entscheidungsproblem

Open House 2009 – p. 27/50

Problema da parada

Existe um programaH capaz de decidir

dado um programa qualquerP e uma entradaE deP

seP para ou não com entradaE?

Este não foi o problema original tratado pelo Turing,o problema original chama-se Problema da decisão.

Open House 2009 – p. 27/50

Problema da parada

Existe um programaH capaz de decidir

dado um programa qualquerP e uma entradaE deP

seP para ou não com entradaE?

Este não foi o problema original tratado pelo Turing,o problema original chama-se Problema da decisão.O problema da paradadata de 1952.

Open House 2009 – p. 27/50

Problema da parada

Existe um programaH capaz de decidir

dado um programa qualquerP e uma entradaE deP

seP para ou não com entradaE?

Usando ideias do Turing podemos provar que:

Open House 2009 – p. 27/50

Problema da parada

Existe um programaH capaz de decidir

dado um programa qualquerP e uma entradaE deP

seP para ou não com entradaE?

Usando ideias do Turing podemos provar que:

não existe um programaH que resolva oproblema da parada!

Open House 2009 – p. 27/50

Problema da parada

Open House 2009 – p. 28/50

Problema da parada

Ideia fundamental:

Open House 2009 – p. 28/50

Problema da parada

Ideia fundamental:

reduzir o problema a um paradoxo deauto-referência.

Open House 2009 – p. 28/50

Paradoxo

Open House 2009 – p. 29/50

Paradoxo

Segundo a Wikipedia:

Open House 2009 – p. 29/50

Paradoxo

Segundo a Wikipedia:

paradoxo é uma declaração aparentementeverdadeira que leva a uma contradiçãológica, ou a uma situação que contradiz aintuição comum.

Open House 2009 – p. 29/50

Alguns exemplos

Open House 2009 – p. 30/50

Paradoxo de Zeno

Open House 2009 – p. 31/50

Paradoxo de Zeno

Aquiles vai correr contra uma tartaruga.

Open House 2009 – p. 31/50

Paradoxo de Zeno

Como a tartaruga tem a metade da sua velocidade,Aquiles deixa que parta 100 m à sua frente.

A T

Open House 2009 – p. 31/50

Paradoxo de Zeno

Quando Aquiles percorrer os 100 m a tartarugapercorreu 50m e continua à sua frente.

A T

A T

Open House 2009 – p. 31/50

Paradoxo de Zeno

Quando Aquiles percorrer os 50 m a tartarugapercorreu 25m e continua à sua frente.

A T

A T

A T

Open House 2009 – p. 31/50

Paradoxo de Zeno

Continuando assim, Aquiles nunca alcançará atartaruga!

A T

A T

A T

Open House 2009 – p. 31/50

Paradoxo de Zeno

Continuando assim, Aquiles nunca alcançará atartaruga!

Conclusão do Zeno:

Open House 2009 – p. 31/50

Paradoxo de Zeno

Continuando assim, Aquiles nunca alcançará atartaruga!

Conclusão do Zeno: não existe movimento!

Open House 2009 – p. 31/50

M. C. Escher

Open House 2009 – p. 32/50

M. C. Escher

Uma imagem paradoxal.

Open House 2009 – p. 32/50

M. C. Escher

Uma imagem paradoxal.

Open House 2009 – p. 32/50

M. C. Escher

Open House 2009 – p. 33/50

M. C. Escher

Uma imagem paradoxal, com auto-referência.

Open House 2009 – p. 33/50

M. C. Escher

Uma imagem paradoxal, com auto-referência.

Open House 2009 – p. 33/50

O Problema da Parada

Open House 2009 – p. 34/50

O Problema da Parada

Suponha que o programaH existe.

Open House 2009 – p. 34/50

O Problema da Parada

Suponha que o programaH existe.

(P,E) // H //SIM

��

NÃO

Open House 2009 – p. 34/50

O Problema da Parada

Suponha que o programaH existe.

(P,E) // H //SIM

��

NÃOSIM = P para com entrada E.

Open House 2009 – p. 34/50

O Problema da Parada

Suponha que o programaH existe.

(P,E) // H //SIM

��

NÃOSIM = P para com entrada E.NÃO = P não para com entrada E.

Open House 2009 – p. 34/50

O Problema da Parada

Suponha que o programaH existe.

P //(P,P) // H //SIM

��

NÃO

Open House 2009 – p. 35/50

O Problema da Parada

Suponha que o programaH existe.

P //(P,P) // H //LOOP

��

NÃO

Open House 2009 – p. 36/50

O Problema da Parada

Suponha que o programaH existe.

P //(P,P) // H //LOOP

��

NÃOLOOP = o programa entra em loop infinito e não para

Open House 2009 – p. 36/50

O Problema da Parada

SeH existe entãoH também existe.

P //H

//LOOP

��

NÃO

Open House 2009 – p. 37/50

O que obtemos se dermos aH aentrada H?

Open House 2009 – p. 38/50

O Problema da Parada

Open House 2009 – p. 39/50

O Problema da Parada

H(P ) =

{

NÃO seP nãopara com entradaP .LOOP seP para com entradaP .

Open House 2009 – p. 39/50

O Problema da Parada

H(P ) =

{

NÃO seP nãopara com entradaP .LOOP seP para com entradaP .

SuponhamosH(H) = NÃO

Open House 2009 – p. 39/50

O Problema da Parada

H(P ) =

{

NÃO seP nãopara com entradaP .LOOP seP para com entradaP .

SuponhamosH(H) = NÃO⇒ H(H, H) = SIM

Open House 2009 – p. 39/50

O Problema da Parada

H(P ) =

{

NÃO seP nãopara com entradaP .LOOP seP para com entradaP .

SuponhamosH(H) = NÃO⇒ H(H, H) = SIM⇒ H entra em LOOP com entradaH.

Open House 2009 – p. 39/50

O Problema da Parada

H(P ) =

{

NÃO seP nãopara com entradaP .LOOP seP para com entradaP .

SuponhamosH(H) = NÃO⇒ H(H, H) = SIM⇒ H entra em LOOP com entradaH.Contradição.

Open House 2009 – p. 39/50

O Problema da Parada

H(P ) =

{

NÃO seP nãopara com entradaP .LOOP seP para com entradaP .

SuponhamosH(H) = LOOP.

Open House 2009 – p. 39/50

O Problema da Parada

H(P ) =

{

NÃO seP nãopara com entradaP .LOOP seP para com entradaP .

SuponhamosH(H) = LOOP.⇒ H(H, H) = NÃO.

Open House 2009 – p. 39/50

O Problema da Parada

H(P ) =

{

NÃO seP nãopara com entradaP .LOOP seP para com entradaP .

SuponhamosH(H) = LOOP.⇒ H(H, H) = NÃO.⇒ H para com entradaH e tem saída NÃO.

Open House 2009 – p. 39/50

O Problema da Parada

H(P ) =

{

NÃO seP nãopara com entradaP .LOOP seP para com entradaP .

SuponhamosH(H) = LOOP.⇒ H(H, H) = NÃO.⇒ H para com entradaH e tem saída NÃO.Contradição.

Open House 2009 – p. 39/50

O Problema da Parada

H(P ) =

{

NÃO seP nãopara com entradaP .LOOP seP para com entradaP .

Portanto:

Open House 2009 – p. 39/50

O Problema da Parada

H(P ) =

{

NÃO seP nãopara com entradaP .LOOP seP para com entradaP .

Portanto:

não importa o que aconteça, obtemos umacontradição.

Open House 2009 – p. 39/50

Não computabilidade

Outros problemas não computáveis incluem:

Open House 2009 – p. 40/50

Não computabilidade

Outros problemas não computáveis incluem:

• antivírus universal;

Open House 2009 – p. 40/50

Não computabilidade

Outros problemas não computáveis incluem:

• antivírus universal;

• descompilação;

Open House 2009 – p. 40/50

Não computabilidade

Outros problemas não computáveis incluem:

• antivírus universal;

• descompilação;

• soluções de equações diofantinas.

Open House 2009 – p. 40/50

Contribuições do Turing

Open House 2009 – p. 41/50

Contribuições do Turing

• modelo de computação;

Open House 2009 – p. 41/50

Contribuições do Turing

• modelo de computação;• problemas não computáveis;

Open House 2009 – p. 41/50

Contribuições do Turing

• modelo de computação;• problemas não computáveis;• o Bombe;

Open House 2009 – p. 41/50

Contribuições do Turing

• modelo de computação;• problemas não computáveis;• o Bombe;• Manchester Mark 1;

Open House 2009 – p. 41/50

Contribuições do Turing

• modelo de computação;• problemas não computáveis;• o Bombe;• Manchester Mark 1;• as bases químicas da morfogênese;

Open House 2009 – p. 41/50

Contribuições do Turing

• modelo de computação;• problemas não computáveis;• o Bombe;• Manchester Mark 1;• as bases químicas da morfogênese;• primeiras simulações em computador;

Open House 2009 – p. 41/50

Contribuições do Turing

• modelo de computação;• problemas não computáveis;• o Bombe;• Manchester Mark 1;• as bases químicas da morfogênese;• primeiras simulações em computador;• teste de Turing.

Open House 2009 – p. 41/50

O Manchester Mark 1, 1949

Open House 2009 – p. 42/50

O Manchester Mark 1, 1949

Open House 2009 – p. 42/50

Porém,

Open House 2009 – p. 43/50

Porém,

Perguntar se uma máquina pode pensar...é tãorelevante quanto perguntar se um submarino podenadar...

Open House 2009 – p. 43/50

Porém,

Perguntar se uma máquina pode pensar...é tãorelevante quanto perguntar se um submarino podenadar...

E. Dijkstra

Open House 2009 – p. 43/50

Como resolver um problemacomputacionalmente quando é

possível?

Open House 2009 – p. 44/50

Solução computacional

Open House 2009 – p. 45/50

Solução computacional

Não existe receita universal,

Open House 2009 – p. 45/50

Solução computacional

Não existe receita universal, nem existe métodouniversal para encontrá-las

Open House 2009 – p. 45/50

Solução computacional

Não existe receita universal, nem existe métodouniversal para encontrá-las

Cada caso é um caso!

Open House 2009 – p. 45/50

Alguns exemplos

Open House 2009 – p. 46/50

Alguns exemplos

• busca binária: combinatória;

Open House 2009 – p. 46/50

Alguns exemplos

• busca binária: combinatória;

• fatoração: teoria de números;

Open House 2009 – p. 46/50

Alguns exemplos

• busca binária: combinatória;

• fatoração: teoria de números;

• fractais: cálculo;

Open House 2009 – p. 46/50

Alguns exemplos

• busca binária: combinatória;

• fatoração: teoria de números;

• fractais: cálculo;

• “ray tracing”: óptica;

Open House 2009 – p. 46/50

Alguns exemplos

• busca binária: combinatória;

• fatoração: teoria de números;

• fractais: cálculo;

• “ray tracing”: óptica;

• criptografia quântica: mecânica quântica;

Open House 2009 – p. 46/50

Alguns exemplos

• busca binária: combinatória;

• fatoração: teoria de números;

• fractais: cálculo;

• “ray tracing”: óptica;

• criptografia quântica: mecânica quântica;

• movimento de líquidos e gases: mecânica dosfluidos.

Open House 2009 – p. 46/50

Computação segundo o Dijkstra

Open House 2009 – p. 47/50

Computação segundo o Dijkstra

...isto nos dá uma indicação clara de onde localizar aciência da computação no mapa-mundi das disciplinasintelectuais:

Open House 2009 – p. 47/50

Computação segundo o Dijkstra

...isto nos dá uma indicação clara de onde localizar aciência da computação no mapa-mundi das disciplinasintelectuais: na direção da matemática formal e dalógica aplicada,

Open House 2009 – p. 47/50

Computação segundo o Dijkstra

...isto nos dá uma indicação clara de onde localizar aciência da computação no mapa-mundi das disciplinasintelectuais: na direção da matemática formal e dalógica aplicada, mas, em última análise, muito alémde onde estas se encontram atualmente,

Open House 2009 – p. 47/50

Computação segundo o Dijkstra

...isto nos dá uma indicação clara de onde localizar aciência da computação no mapa-mundi das disciplinasintelectuais: na direção da matemática formal e dalógica aplicada, mas, em última análise, muito alémde onde estas se encontram atualmente, porque aciência da computação está interessada no uso efetivode métodos formais e em escala muito, muito maiordo que testemunhamos até agora.

Open House 2009 – p. 47/50

Mais opiniões do Dijkstra

Open House 2009 – p. 48/50

Quatro conselhos impopulares

Open House 2009 – p. 49/50

Quatro conselhos impopularesTestar um programa pode ser usado para indicar apresença de bugs,

Open House 2009 – p. 49/50

Quatro conselhos impopularesTestar um programa pode ser usado para indicar apresença de bugs, mas nunca a sua ausência!

Open House 2009 – p. 49/50

Quatro conselhos impopularesTestar um programa pode ser usado para indicar apresença de bugs, mas nunca a sua ausência!

A exploração efetiva de seus próprios poderes deabstração deve ser considerada como uma dasatividades mais vitais de um programador competente.

Open House 2009 – p. 49/50

Quatro conselhos impopularesTestar um programa pode ser usado para indicar apresença de bugs, mas nunca a sua ausência!

A exploração efetiva de seus próprios poderes deabstraçãodeve ser considerada como uma dasatividades mais vitais de um programador competente.

Open House 2009 – p. 49/50

Quatro conselhos impopularesTestar um programa pode ser usado para indicar apresença de bugs, mas nunca a sua ausência!

A exploração efetiva de seus próprios poderes deabstraçãodeve ser considerada como uma dasatividades mais vitais de um programador competente.

Além de inclinação para a matemática,

Open House 2009 – p. 49/50

Quatro conselhos impopularesTestar um programa pode ser usado para indicar apresença de bugs, mas nunca a sua ausência!

A exploração efetiva de seus próprios poderes deabstraçãodeve ser considerada como uma dasatividades mais vitais de um programador competente.

Além de inclinação para a matemática, um domínioexcepcionalmente bom de sua língua nativa é um dosrecursos mais vitais de um programador competente.

Open House 2009 – p. 49/50

Quatro conselhos impopularesTestar um programa pode ser usado para indicar apresença de bugs, mas nunca a sua ausência!

A exploração efetiva de seus próprios poderes deabstraçãodeve ser considerada como uma dasatividades mais vitais de um programador competente.

Além de inclinação para a matemática, um domínioexcepcionalmente bom de sua língua nativa é um dosrecursos mais vitais de um programador competente.

Como convencer as pessoas de que, em programação,simplicidade e clareza

Open House 2009 – p. 49/50

Quatro conselhos impopularesTestar um programa pode ser usado para indicar apresença de bugs, mas nunca a sua ausência!

A exploração efetiva de seus próprios poderes deabstraçãodeve ser considerada como uma dasatividades mais vitais de um programador competente.

Além de inclinação para a matemática, um domínioexcepcionalmente bom de sua língua nativa é um dosrecursos mais vitais de um programador competente.

Como convencer as pessoas de que, em programação,simplicidade e clareza – o que os matemáticoschaman “elegância” –

Open House 2009 – p. 49/50

Quatro conselhos impopularesTestar um programa pode ser usado para indicar apresença de bugs, mas nunca a sua ausência!

A exploração efetiva de seus próprios poderes deabstraçãodeve ser considerada como uma dasatividades mais vitais de um programador competente.

Além de inclinação para a matemática, um domínioexcepcionalmente bom de sua língua nativa é um dosrecursos mais vitais de um programador competente.

Como convencer as pessoas de que, em programação,simplicidade e clareza – o que os matemáticos chaman“elegância” – não são luxos dispensáveis, but questõescruciais, que decidem entre sucesso e fracasso?

Open House 2009 – p. 49/50

Um pensamento final

Open House 2009 – p. 50/50

Um pensamento final

Não é tarefa da universidade oferecer o que asociedade pede,

Open House 2009 – p. 50/50

Um pensamento final

Não é tarefa da universidade oferecer o que asociedade pede, mas sim aquilo que a sociedadeprecisa.

Open House 2009 – p. 50/50

Um pensamento final

Não é tarefa da universidade oferecer o que asociedade pede, mas sim aquilo que a sociedadeprecisa.

E. Dijkstra

Open House 2009 – p. 50/50