Professional Documents
Culture Documents
Cincia da computao
A cincia da computao lida com fundamentos tericos da informao, computao, e tcnicas prticas para suas implementaes e aplicaes. Cincia da computao o estudo dos algoritmos, suas aplicaes e de sua implementao, na forma de software, para execuo em computadores eletrnicos. Desempenha um papel importante, na rea de cincia da computao, a formalizao matemtica de algoritmos, como forma de representar problemas decidveis, i.e., os que so susceptveis de reduo a operaes elementares bsicas, capazes de serem reproduzidas atravs de um qualquer dispositivo mecnico/eletrnico capaz de armazenar e manipular dados. Um destes dispositivos o computador digital, de uso generalizado, nos dias de hoje. Tambm de fundamental importncia para a rea de cincia da computao so as metodologias e tcnicas ligadas implementao de software que abordam a especificao, modelagem, codificao, teste e avaliao de sistemas de software. Os estudos oriundos da cincia da computao podem ser aplicados em qualquer rea do conhecimento humano em que seja possvel definir mtodos de resoluo de problemas baseados em repeties previamente observadas. Avanos recentes na cincia da computao tem impactado fortemente a sociedade contempornea, em particular as aplicaes relacionadas s reas de redes de computadores, Internet, Web e computao mvel que tm sido utilizadas por bilhes de pessoas ao redor do globo.
Histria da computao
A primeira ferramenta conhecida para a computao foi o baco[], cuja inveno atribuda a habitantes da Mesopotmia, em torno de 27002300 a.C.. Seu uso original era desenhar linhas na areia com rochas. Verses mais modernas do baco ainda so usadas como instrumento de clculo. No sculo VII a.C., na antiga ndia, o gramtico Pnini formulou a gramtica de Snscrito usando 3959 regras conhecidas como Ashtadhyyi, de forma bastante sistemtica e tcnica. Pnini usou transformaes e recursividade com tamanha sofisticao que sua gramtica possua o poder computacional terico tal qual a Mquina de Turing. Entre 200 a.C. e 400, os indianos tambm inventaram o logaritmo, e partir do sculo XIII tabelas logartmicas eram produzidas por matemticos islmicos. Quando John Napier descobriu os logaritmos para uso computacional no sculo XVI[], seguiu-se um perodo de considervel progresso na construo de ferramentas de clculo.
O baco, primeira ferramenta de computao, em sua forma moderna
Cincia da computao
Algoritmos
No sculo VII, o matemtico indiano Brahmagupta explicou pela primeira vez o sistema de numerao hindu-arbico e o uso do 0. Aproximadamente em 825, o matemtico persa al-Khwarizmi escreveu o livro Calculando com numerais hindus, responsvel pela difuso do sistema de numerao hindu-arbico no Oriente Mdio, e posteriormente na Europa. Por volta do sculo XII houve uma traduo do mesmo livro para o latim: Algoritmi de numero Indorum. Tais livros apresentaram novos conceitos para definir sequncias de passos para completar tarefas, como aplicaes de aritmtica e lgebra. Por derivao do nome do matemtico, atualmente usa-se o termo algoritmo.
Lgica binria
Por volta do sculo III a.C., o matemtico indiano Pingala inventou o sistema de numerao binrio. Ainda usado atualmente no processamento de todos computadores modernos, o sistema estabelece que sequncias especficas de uns e zeros podem representar qualquer informao. Em 1703 Gottfried Leibniz desenvolveu a lgica em um sentido formal e matemtico, utilizando o sistema binrio. Em seu sistema, uns e zeros Al-Khwarizmi tambm representam conceitos como verdadeiro e falso, ligado e desligado, vlido e invlido. Mais de um sculo depois, George Boole publicou a lgebra booleana (em 1854), com um sistema completo que permitia a construo de modelos matemticos para o processamento computacional. Em 1801, apareceu o tear controlado por carto perfurado, inveno de Joseph Marie Jacquard, no qual buracos indicavam os uns e, reas no furadas, indicavam os zeros. O sistema est longe de ser um computador, mas ilustrou que as mquinas poderiam ser controladas pelo sistema binrio.
Cincia da computao
Engenho analtico
Foi com Charles Babbage que o computador moderno comeou a ganhar forma, atravs de seu trabalho no engenho analtico. O equipamento descrito originalmente em 1837, mais de um sculo antes de seu sucessor, nunca foi construdo com sucesso, mas possua todas as funes de um computador moderno. O dispositivo de Babbage se diferenciava por ser programvel, algo imprescindvel para qualquer computador moderno. Durante sua colaborao, a matemtica Ada Lovelace publicou os primeiros programas de computador em uma srie de notas para o engenho analtico[1]. Por isso, Lovelace popularmente considerada como a primeira programadora.
Trabalho terico
Os fundamentos matemticos da cincia da computao moderna comearam a ser definidos por Kurt Gdel com seu teorema da incompletude (1931). Essa teoria mostra que existem limites no que pode ser provado ou desaprovado em um sistema formal; isso levou a trabalhos posteriores por Gdel e outros tericos para definir e descrever tais sistemas formais, incluindo conceitos como recursividade e clculo lambda. Em 1936 Alan Turing e Alonzo Church independentemente, e tambm juntos, introduziram a formalizao de um algoritmo, definindo os limites do que pode ser computador e um modelo puramente mecnico para a computao. Tais tpicos so abordados no que atualmente chama-se Tese de Church-Turing, uma hiptese sobre a natureza de dispositivos mecnicos de clculo. Essa tese define que qualquer clculo possvel pode ser realizado por um algoritmo sendo executado em um computador, desde que haja tempo e armazenamento suficiente para tal. Turing tambm incluiu na tese uma descrio da Mquina de Turing, que possui uma fita de tamanho infinito e um cabeote para leitura e escrita que move-se pela fita. Devido ao seu carter infinito, tal mquina no pode ser construda, mas tal modelo pode simular a computao de qualquer algoritmo executado em um computador moderno. Turing bastante importante para a Representao visual da Mquina de Turing cincia da computao, tanto que seu nome usado para o Prmio Turing e o teste de Turing. Ele contribuiu para as quebras de cdigo da Gr-Bretanha[] na Segunda Guerra Mundial, e continuou a projetar computadores e programas de computador pela dcada de 1940; cometeu suicdio em 1954.[2][3].
Cincia da computao
Pessoas notveis
Algumas das pessoas mais importantes da computao foram agraciadas com o Prmio Turing.
Precursores
Blaise Pascal, desenvolveu a calculadora mecnica e tem seu nome em uma linguagem de programao; Charles Babbage, projetou um computador mecnico, a mquina analtica; Ada Lovelace, considerada a primeira pessoa (e mulher) programadora, deu nome uma linguagem de programao;
Pioneiros
cincia da computao tem tanto a ver com o computador como a astronomia com o telescpio, a biologia com o microscpio, ou a qumica com os tubos de ensaio. A cincia no estuda ferramentas, mas o que fazemos e o que descobrimos com elas.
Alan Turing, participou do projeto Colossus e foi um dos crebros que decifra a Enigma. Tambm inventou um tipo terico de mquina super-simples capaz de realizar qualquer clculo de um computador digital, a Mquina de Turing John von Neumann, descreveu o computador que utiliza um programa armazenado em memria, a Arquitetura de von Neumann, que a base da arquitetura dos computadores atuais John Backus, lder da equipe que criou o Fortran e criou a notao BNF Maurice V. Wilkes, inventor do somador binrio Howard Aiken, inventor do Mark I Walter H. Brattain, inventor do transstor William Shockley, inventor do transstor John Bardeen, inventor do transstor
Cincia da computao Fred Williams, inventor da memria RAM Tom Kilburn, inventor da memria RAM Konrad Zuse, inventor independente do computador digital e de linguagens de programao na Alemanha nazista John Vincent Atanasoff, possivelmente o inventor do primeiro computador digital, o computador de Atanasoff-Berry, ABC Clifford E. Berry, assistente de Atanasoff Almirante Grace Hopper, programadora do Mark I, desenvolveu o primeiro compilador; primeira mulher a receber um Ph.D. em matemtica Edsger Dijkstra, lder do ALGOL 60, publicou o artigo original sobre programao estruturada J. Presper Eckert, criador do ENIAC John William Mauchly, criador do ENIAC
Personalidades influentes
Andrew Stuart Tanenbaum, pesquisador na rea de sistemas operacionais, inventor do MINIX; seus livros-texto so dos mais referenciados na rea Edgar Frank Codd, inventor de Banco de dados relacionais Brian Kernighan, inventor do C Dennis Ritchie, inventor do C e do Unix Bjarne Stroustrup, inventor do C++ Ken Thompson, inventor do Unix e da codificao de caracteres UTF-8 Peter Chen, inventor do Modelo de entidades e relacionamentos Donald Ervin Knuth, criador do TeX, da programao literria e da influente srie (inacabada em 2011) sobre algoritmos The Art of Computer Programming Richard Stallman, fundador do projeto GNU Linus Torvalds, criador do ncleo Linux Alan Kay, um dos inventores da orientao a objeto, tambm concebeu o laptop e a interface grfica do utilizador Steve Wozniak e Steve Jobs, Criadores da Apple Inc., e do primeiro computador pessoal, o Apple I Bill Gates e Paul Allen, Criadores da Microsoft, a empresa que criou o Windows
Cincia da computao
reas de pesquisa
Fundamentos matemticos
lgebra linear Anlise Econmica de Sistemas de Informaes - consiste em definir o lucro, receita e custo, e relacionar todos os fatores economicos a produo e desenvolvimento do software Clculo diferencial e integral Clculo numrico Analise combinatria Geometria analtica o estudo de algoritmos para a resoluo de problemas de geometria, ou que dependem da geometria Lgica matemtica lgica booleana e outras formas para a modelagem lgica de problemas Matemtica discreta Probabilidade e estatstica Teoria da informao Teoria das categorias Teoria dos grafos fundaes para estruturas de dados e algoritmos de busca Teoria dos nmeros teoria para a definio de provas a conjunto dos nmeros inteiros, usada em criptografia e no teste de inteligncia artificial Teoria dos tipos anlise formal de tipos de dados e seu uso para entender a propriedade de programas de algoritmos
Tecnologia da computao
Banco de dados Compiladores traduo de algoritmos entre diferentes linguagens de computador, geralmente de uma linguagem de alto nvel, mais abstrata e legvel para seres humanos, para uma linguagem de baixo nvel, mais concreta e voltada para o computador digital Computao grfica gerao sinttica de imagens, e a integrao ou alterao visual de informaes visuais do mundo real Engenharia de software Inteligncia artificial o estudo e a implementao de sistemas que exibem um comportamento autnomo inteligente Processamento de imagens a obteno de informao a partir de imagens Rede de computadores algoritmos e protocolos para a comunicao de dados confivel entre diferentes sistemas, incluindo mecanismos para a identificao e correo de erros
Cincia da computao
Fundamentos de computao
Paradigma de programao Circuitos digitais Complexidade computacional definio de limites computacionais (sobretudo relativo a espao e tempo) fundamentais em classes de computao Criptografia aplicao da complexidade computacional, da probabilidade e da teoria de nmeros para a criao ou quebra de cdigos Estrutura de dados a organizao e as regras para a manipulao de informao Linguagens formais estudo de modelos para especificar e reconhecer linguagens de forma geral Mtodos formais o uso de abordagens matemticas para descrever e formalizar padres de desenvolvimento de software Pesquisa e ordenao Projeto e anlise de algoritmos complexidade computacional aplicada aos algoritmos Robtica o controle do comportamento de robs Semntica formal estudo da especificao do significado (ou comportamento) de programas de computador e partes de hardware Teoria da Computabilidade definio do que computvel utilizando-se os modelos atuais, definindo as possibilidades tericas da computao Teoria da computao Teoria dos algoritmos de informao Teoria dos autmatos
Fsica
Eletromagnetismo Mecnica quntica
Cincia da computao Por vezes a cincia da computao tambm criticada por no ser suficientemente cientfica, como exposto na frase "Cincia para a cincia da computao assim como a hidrodinmica para a construo de encanamentos", credita a Stan Kelly-Bootle.[7] Apesar disso, seu estudo frequentemente cruza outros campos de pesquisa, tais como a inteligncia artifical, fsica e lingustica. Ela considerada por alguns por ter um grande relacionamento com a matemtica, maior que em outras disciplinas. Isso evidenciado pelo fato que os primeiros trabalhos na rea eram fortemente influenciados por matemticos como Kurt Gdel e Alan Turing; o campo continua sendo til para o intercmbio de informao com reas como lgica matemtica, teoria das categorias e lgebra. Apesar disso, diferente da matemtica, a cincia da computao considerada uma disciplina mais experimental que terica. Vrias alternativas para o nome da disciplina j foram cogitadas. Em francs ela chamada informatique, em alemo Informatik, em espanhol informtica, em holands, italiano e romeno informatica, em polons informatyka, em russo e em grego . Apesar disso, tanto em ingls quanto em portugus informtica no diretamente um sinnimo para a cincia da computao; o termo usado para definir o estudo de sistemas artificiais e naturais que armazenam processos e comunicam informao, e refere-se a um conjunto de cincias da informao que engloba a cincia da computao. Em Portugal, no entanto, apesar de a palavra estar dicionarizada com esse sentido amplo, o termo usado como sinnimo de cincia da computao.
Profisso
De forma geral, cientistas da computao estudam os fundamentos tericos da computao, de onde outros campos derivam, como as reas de pesquisa supracitadas. Como o nome implica, a cincia da computao uma cincia pura, no aplicada. Entretanto, o profissional dessa rea pode seguir aplicaes mais prticas de seu conhecimento, atuando em reas como desenvolvimento de software ou consultoria em tecnologia da informao.
[6] Ghallab, M., Nau, D. S., and Traverso, P. (2004). Automated Planning: Theory and Practice. ISBN 1-55860-856-7 [7] Computer Language, outubro de 1990
Licena
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/