III a.C., o matematico indiano Pingala inventou o sistema de numeracao binario. Ainda usado atualmente no processamento de todos computadores modernos, o sistema estabelece que sequencias especificas de uns e zeros podem representar qualquer informacao.Em 1703 Gottfried Leibniz desenvolveu a logica em um sentido formal e matematico, utilizando o sistema binario. Em seu sistema, uns e zeros tambem representam conceitos como verdadeiro e falso, ligado e desligado, valido e invalido. Mais de um seculo depois, George Boole publicou a algebra booleana (em 1854), com um sistema completo que permitia a construcao de modelos matematicos para o processamento computacional. Em 1801, apareceu o tear controlado por cartao perfurado, invencao de Joseph Marie Jacquard, no qual buracos indicavam os uns e, areas nao furadas, indicavam os zeros. O sistema esta longe de ser um computador, mas ilustrou que as maquinas poderiam ser controladas pelo sistema binario.*Engenho analiticoFoi com Charles Babbage que o computador moderno comecou a ganhar forma, atraves de seu trabalho no engenho analitico. O equipamento, apesar de nunca ter sido construido com sucesso, possuia todas as funcionalidades do computador moderno. Foi descrito originalmente em 1837, mais de um seculo antes que qualquer equipamento do genero tivesse sido construido com sucesso. O grande diferencial do sistema de Babbage era o fato que seu dispositivo foi projetado para ser programavel, item imprescindivel para qualquer computador moderno.Durante sua colaboracao, a matematica Ada Lovelace publicou os primeiros programas de computador em uma serie de notas para o engenho analitico[2]. Por isso, Lovelace e popularmente considerada como a primeira programadora.*Nascimento da ciencia da computacaoAntes da decada de 1920, computador era um termo associado a pessoas que realizavam calculos, geralmente liderados por fisicos, em sua maioria mulheres. Milhares de computadores eram empregados em projetos no comercio, governo e sitios de pesquisa. Apos a decada de 1920, a expressao maquina computacional comecou a ser usada para referir-se a qualquer maquina que realize o trabalho de um profissional, especialmente aquelas de acordo com os metodos da Tese de Church-Turing.O termo maquina computacional acabou perdendo espaco para o termo reduzido computador no final da decada de 1940, com as maquinas digitais cada vez mais difundidas. Alan Turing, conhecido como pai da Ciencia da computacao, inventou a Maquina de Turing, que posteriormente evoluiu para o computador moderno.*Trabalho teoricoOs fundamentos matematicos da ciencia da computacao moderna comecaram a ser definidos por Kurt Godel 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 Godel e outros teoricos para definir e descrever tais sistemas formais, incluindo conceitos como recursividade e calculo lambda.Em 1936 Alan Turing e Alonzo Church independentemente, e tambem juntos, introduziram a formalizacao de um algoritmo, definindo os limites do que pode ser computador e um modelo puramente mecanico para a computacao. Tais topicos sao abordados no que atualmente chama-se Tese de Church-Turing, uma hipotese sobre a natureza de dispositivos mecanicos de calculo. Essa tese define que qualquer calculo possivel pode ser realizado por um algoritmo sendo executado em um computador, desde que