Introdução à Computação
Conceitos Fundamentais de ComputaçãoPaulo Henrique Ribeiro Gabriel phrg@ufu.br
Faculdade de Computação Universidade Federal de Uberlândia
Conteúdo
1 Conceitos Fundamentais
2 Breve História da Informática
Dados, Informação e Processamento de Dados (1/4)
Durante nosso dia-a-dia, executamos diversas operações que envolvem um processamento de dados:
I Ler um jornal
I Fazer um bolo a partir de uma receita I Resolver um problema matemático
Em todos esses casos, transformandodados existentes eminformações
Em outras palavras: entidades existentes, após convenientemente tratadas, são transformadas em novas entidades
Dados, Informação e Processamento de Dados (2/4)
Processamento
Conjunto de atividades que, atuando sobre entidades iniciais (entrada), geram outras entidades como resultado (ou as mesmos, sob outra forma), chamadas saída.
Dados, Informação e Processamento de Dados (3/4)
As entidades de entrada são chamadasdados e correspondem ao elementos conhecidos do problema
A entidade de saída é chamadainformaçãoe corresponde ao conjunto estruturado de dados
A informação pode ser totalmente nova ou pode ser apenas uma nova forma de representação dos dados
Dados, Informação e Processamento de Dados (4/4)
Processamento de Dados
Conjunto de operações que são aplicadas sobre determinadas dados para transformá-los em informação
Informática e Computadores (1/4)
Informática
Ciência que estuda métodos para o tratamento da informação por meios computacionais
Informática e Computadores (2/4)
Áreas da Informáticaa
a
Fonte: “Computing Curricula 2005: The Overview Report” (ACM)
1 Ciência da Computação 2 Engenharia da Computação 3 Sistemas de Informação 4 Tecnologia de Informação 5 Engenharia de Softwares
Informática e Computadores (3/4)
Computador
Computadores são dispositivos desenvolvidos para executar um conjunto de instruçõeslógicase aritméticas de maneira automática
Um conjunto (ou sequência) de instruções recebe o nome programa
Computadores podem ser mecânicos (analógicos) ou eletrônicos (digitais)
Informática e Computadores (4/4)
Usos do Computador 1 Processar dados 2 Realizar computação
Conteúdo
1 Conceitos Fundamentais
2 Breve História da Informática
Antes de 1800 (1/5)
A palavra “computação” vem do latim, computatìo,ónis
I Ato ou efeito de computar, fazer cálculos
Primeiros instrumentos de cálculo: dedos, pedras, nós Ábaco: cerca de 3000 a.C. (Babilônia)
Antes de 1800 (2/5)
Máquina de Anticítera
Desenvolvida na Grécia (cerca de 80 a.C.)
Conjunto de engrenagens e ponteiros
Permite calcular posição de corpos celestes
Antes de 1800 (3/5)
John Napier (1550–1617):
Matemático, físico e astrônimo escocês
Principal desenvolvedor dos logaritmos
Inventor dos Ossos de Napier: uma as primeiras calculadoras
I Aritmética decimal I Multiplicações
Antes de 1800 (4/5)
Blaise Pascal (1623–1662): Matemático, físico, inventor, escritor e teólogo francês Defensor do método científico Desenvolveu diversas
calculadoras mecânicas (Pascalinas)
Antes de 1800 (5/5)
Trabalhos semelhantes foram desenvolvidos por Gottfried Wilhelm Leibniz (1646–1716), filósofo, cientista, matemático, diplomata e bibliotecário alemão
I Leibniz também incentivou o uso do sistema binário para desenvolver cálculos
Mais recentemente, descobrou-se que Wilhelm Schickard
(1592–1635), professor e astrônomo alemão, construiu um máquinas antes de Pascal e Leibniz
Século XIX (1/3)
Joseph-Marie Jacquard (1752–1834), Mecânico e inventor francês Desenvolveu o tear mecânico Programado por uma série de cartões perfurados, cada um deles controlando um único movimento da lançadeira
Século XIX (2/3)
Charles Babbage (1791–1871): Cientista, matemático, filósofo, engenheiro britânico
Considerado o “pai dos computadores”
Trabalhou em dois mecanismos: 1 Máquina Diferencial:
resolução de equações polinômicas por meio de diferenças entre números
2 Máquina Analítica: projeto de
Século XIX (3/3)
Ada Augusta Byron, a Condessa de Lovelace (1815–1852):
I Matemática britânica, amiga de Babbage I Conhecida como a primeira programadora
I Escreveu um trabalho sobre a máquina de Babbage
William Stanley Jevons (1835–1882):
I Economista e lógico britânico
I Construiu uma máquina em para resolver problemas lógicos
I É considerada a primeira máquina desse tipo com poder suficiente para resolver um problema complicado mais rápido do que ele seria resolvido sem ela
Herman Hollerith (1860–1929):
De 1900 a 1939 (1/4)
Em 1919, E. O. Carissan (1880–1925), um tenente da infantaria francesa, projetou e construiu um mecanismo para fatorar inteiros e testar se eles são primos
O espanhol Spaniard Leonardo Torres y Quevedo (1852–1936) construiu alguns mecanismos de calcular eletromecânicos, incluindo um que jogava finais simples de jogos de xadrez
De 1900 a 1939 (2/4)
Em 1900, o matemático alemão David Hilbert (1862-1943) participou do Congresso Internacional de Matemáticos (International Congress of Mathematicians)
Propôs uma famosa lista de 23 problemas, dentre eles:
1 A matemática é completa, isto é, toda sentença matemática pode ser
provada ou refutada?
2 A matemática é consistente, isto é, é verdade que sentenças como
“0 = 1” não podem ser provadas por métodos válidos?
3 A matemática é decidível, isto é, existe um método mecânico que pode
ser aplicado a qualquer sentença matemática que é capaz de dizer se esta sentença é verdadeira ou não?
De 1900 a 1939 (3/4)
Em 1931, Kurt Gödel (1906–1978) respondeu a duas das questões de Hilbert
Ele mostrou que todo sistema formal suficientemente rico é ou inconsistente ou incompleto
Além disso, se um sistema axiomático é consistente, essa consistência não pode ser provada pelo sistema
De 1900 a 1939 (4/4)
Em 1936, Alan Turing (1912–1954) respondeu à terceira pergunta de Hilbert construindo um modelo formal de um computador (chamado de Máquina de Turing) e mostrando que há problemas que esta máquina não pode resolver
Um destes problemas é o conhecido “Problema da Parada”: dado um programa escrito em uma linguagem de programação, ele pára para todas as entradas?
Década de 1940 (1/5)
Cálculos de balística necessários durante a Segunda Guerra Mundial aceleraram o
desenvolvimento do computador eletrônico digital para uso geral Em Harvard, Howard H. Aiken (1900–1973) construiu, com o apoio da IBM, o computador eletromecânico Mark I em 1944
Década de 1940 (2/5)
A quebra de códigos também gerou projetos computacionais Alan Turing se envolveu na quebra de código da máquina alemã Enigma
O britânico construiu um computador para auxiliar na quebra de código, chamado de
Década de 1940 (3/5)
Após discussões com John Vincent Atanasoff (1904–1995), John William Mauchly
(1907–1980) e J. Presper Eckert Jr. (1919–1995) projetaram e construíram o ENIAC
Computador eletrônico de uso geral inicialmente pensado para auxiliar em cálculos para artilharia
Década de 1940 (4/5)
Em 1944, Mauchly, Eckert, and John von Neumann (1903–1957) já estavam trabalhando no desenvolvimento de um
computador eletrônico capaz de armazenar programas, o EDVAC O relatório de von Neumann, chamado “First Draft of a Report on the EDVAC” contém muitas das ideias ainda usadas por diversos computadores
Década de 1940 (5/5)
Enquanto isso, na Alemanha, Konrad Zuse (1910–1995) construiu, em 1941, a primeira calculadora para uso geral, o Z3 Controlada por um programa e operacional
Década de 1950
Grace Murray Hopper (1906–1992) criou a noção decompilador em 1951
John Backus e seus colaboradores desenvolveram o primeiro compilador de FORTRAN em 1957
Jack Kilby (1923–2005) e Robert Noyce (1927–1990) inventaram o circuito integrado em 1959
Edsger Dijkstra (1930–2002) criou um algoritmo eficiente para resolver o problema do caminho mínimo
Alan Turing introduziu, em 1952, o Teste de Turing, um dos primeiros esforços na área de Inteligência Artificial
Década de 1960 (1/2)
Na década de 1960, a Ciência da Computação se tornou uma disciplina por si só
No final dessa década, a ARPAnet, a precursora da Internet, começou a ser construída
Diversas novas linguagens de programação foram criadas, como BASIC
Década de 1960 (2/2)
A prova de corretude de programas usando métodos formais passou a ser mais importante durante essa década
Ted Hoff (1937– ) e Federico Faggin (1941– ), da Intel, projetaram o primeiro microprocessador (computador em um chip) entre 1969 e 1971
Uma base matemática rigorosa para análise de algoritmos se iniciou com o trabalho de Donald Knuth (1938– )
Década de 1970 (1/2)
O sistema operacional Unix foi desenvolvido nos laboratórios da Bell (EUA) por Ken Thompson (1943– ) e Dennis Ritchie (1941–2011)
I Base para diversos outros sistemas operacionais
Brian Kernighan (1942–) e Ritchie desenvolveram a linguagem de programação C
Outras linguagens de programação, como Pascal e Ada, foram desenvolvidas em seguida
Década de 1970 (2/2)
Houve um grande avanço em algoritmos e complexidade computacional
I Em 1971, Stephen Cook (1941– ) e Leonid Levin (1948–) publicaram um importante estudo sobre o assunto
Pouco tempo depois, Richard Karp (1931– ) mostrou que diversos problemas não podem ser resolvidos computacionalmente em tempo hábil
Whit Diffie (1944–) e Martin Hellman (1945–) publicaram um artigo que introduziu a teoria de criptografia de chave pública
Década de 1980 (1/2)
Finalmente, viu-se o crescimento do computador pessoal, em grande parte graças a Stephen Wozniak (1950– ) e Steven Jobs (1955–2011), fundadores da Apple Inc.
Em 1981, o primeiro
computador verdadeiramente portátil de sucesso entrou para o mercado, o Osborne I
Década de 1980 (2/2)
Ainda em 1980, a IBM planeja lançar seu computador pessoal
Faz um acordo com a Microsoft Corporation, que faz um contrato de licenciamento com a IBM e procura a Seattle Computers para comprar o seu sistema Q-DOS
I Posteriormente, rebatizado como MS-DOS
I Em 1985 Microsoft e IBM assinam acordo para desenvolvimento do Microsoft Windows 1.0
Em 1987, US National Science Foundation lança o NSFnet, outro precursor da Internet
Década de 1990 (1/2)
Em 1991, Guido van Rossum (1956– ) publica a primeira versão da linguagem Python
Surgimento do sistema operacional GNU/Linux
Sistemas distribuídos e computadores paralelos começam a se ternar comuns
Computação pessoal e Internet se consolidam Surge o primeiro Website (pode ser visto em:
https://www.w3.org/History/19921103-hypertext/ hypertext/WWW/TheProject.html)
Década de 1990 (2/2)
Leonard Adleman (1945– ) descreve trabalhos experimentais de computação utilizando DNA
Peter Shor (1955– ) desenvolve modelos teóricos de computação quântica
Década de 2000 em diante
Surgimento de redes sociais Advento da “computação móvel”
I Smartphones e Tablets
Consolidação dos sistemas distribuídos
I “Computação na nuvem”
Filmes Recomendados
Pirates of Silicon Valley (1999): Mostra o surgimento das empresas Apple e Microsoft
I http://www.imdb.com/title/tt0168122/
Revolution OS (2001): Documentário sobre sistemas operacionais e software livre
I http://www.imdb.com/title/tt0308808/
The Social Network (2010): História do Facebook
I http://www.imdb.com/title/tt1285016/
Codebreaker (2011): Biografia de Alan Turing
I http://www.imdb.com/title/tt2119396/
Conteúdo
1 Conceitos Fundamentais
2 Breve História da Informática
Exercício
Escreva um documento de 3 a 5 páginas sobre o seguinte tema: como a Informática pode auxiliar na área deFísica de Materiais?
O documento deve ser digital (feitos no Word, por exemplo) e entregues pelo Sistema Moodle até o dia da primeira avaliação Formatação do texto:
I Fonte: Arial, tamanho 12
I Margens: superior e esquerda de 3cm, inferior e direita de 2cm I Espaçamento entre linhas: 1,5