# data[].attributes.attachment_link.provider_name
Blog Kenzie Academy Brasil - Programação e Tecnologia

# data[].attributes.attachment_link.readable_text
Tudo o que fazemos segue uma sequência lógica.

Na grande maioria das vezes, não nos damos conta disso, mas ao fazer uma análise do nosso cotidiano, podemos compreender como todas as nossas ações são consequência de uma cadeia de outras ações menores que nos levaram até uma atitude final.

Quer ver?

Vamos tomar como exemplo o café que tomamos de manhã.

Quando perguntam como tomamos nosso café, a maioria de nós responde que, ao acordarmos, preparamos o café com auxílio de uma cafeteira elétrica, colocamos ele em uma caneca e o tomamos.

Mas, ao destrinchar este processo, somos capazes de estipular uma sequência de passos que nos levaram ao ato final de beber este café. Esta sequência pode ser:

Ao acordar, levanto da cama;

Após levantar da cama, desço as escadas;

Após descer as escadas, entro na cozinha;

Após entrar na cozinha, pego o pó de café no armário;

Após pegar o pó de café, o coloco dentro da cafeteira;

Após colocar o pó na cafeteira, jogo água no compartimento específico;

Após inserir todos os ingredientes na máquina, aperto o botão de ligar;

Quando o café está pronto, pego a garrafa;

Após pegar a garrafa, despejo o café dentro de uma caneca;

Após colocar o café na caneca, bebo o café.

Se detalharmos ainda mais este processo, é possível incluir mais passos dentro desta sequência.

Não estamos acostumados a pensar desta maneira sobre nossas atividades cotidianas, mas, quando falamos de programação, estipular uma sequência de etapas é um procedimento muito importante e necessário, uma vez que, diferente de nós, seres humanos, os computadores não são capazes de prever nenhum comportamento.

Quando queremos resolver um problema, desenvolver um software, criar um jogo ou executar qualquer ação por meio de um código, precisamos estipular quais passos o computador deverá seguir para chegar ao nosso objetivo final.

À maneira de pensar logicamente para estipular sequências de passos para a resolução de um problema, damos o nome de lógica de programação; à sequência narrativa desses eventos, damos o nome de algoritmo.

O que é lógica de programação?

Lógica de programação é a organização coesa de uma sequência de instruções voltadas à resolução de um problema, ou à criação de um software ou aplicação.

A lógica de programação é o conhecimento anterior a qualquer outro quando falamos em desenvolvimento web porque é a partir dele que os aprendizados posteriores, como por exemplo o das linguagens de programação, farão sentido.

Cada linguagem tem suas próprias particularidades, como sua sintaxe, seus tipos de dados e sua orientação, mas a lógica por trás de todas é a mesma.

Em outras palavras, dominar a lógica de programação é a porta de entrada para tornar-se um programador completo, seja em front-end ou em back-end.

Preciso gostar de matemática para aprender lógica de programação?

A primeira orientação para quem deseja aprender lógica de programação é iniciar pelas bases, portanto, deve gostar de matemática, principalmente na parte de lógica. Inclusive, existem diversos livros do ensino fundamental que possuem atividades de lógica aplicada e este seria um bom ponto de partida para esse aprendizado!

Everybody in this country should learn how to program a computer because it teaches you how to think." - (Todo mundo neste país deveria aprender a programar porque isso te ensina a pensar)

A frase acima foi dita por Steve Jobs e está cheia de sentido.

É muito comum que muitos estudantes de programação se perguntem por que a lógica de programação é tão importante.

A lógica de programação é importante porque é ela quem nos dá as ferramentas necessárias para executar o processo mais básico no desenvolvimento de alguma aplicação: a criação de seu algoritmo.

Antes de criar um software do zero, ou de resolver um problema de um já existente, é necessário descascá-lo até chegarmos ao seu núcleo.

Em outras palavras, precisamos compreendê-lo completamente, desde suas funções a seus objetivos finais - ou seja, pesquisar, rascunhar, dominá-lo na íntegra.

Abaixo, vou deixar alguns aspectos do nosso trabalho e da nossa vida que se beneficiam profundamente da plena compreensão dos conceitos de lógica da programação!

Organização

Ao aprendermos a pensar logicamente, tendemos a uma maior organização de alguns processos.

Seja em nossos ambientes pessoais ou dentro de nossa mente, a ordem é fator determinante para que possamos render mais e ser mais produtivos ao realizar nossas tarefas.

Com lógica de programação, a sua maneira de pensar irá mudar e, com isso, seus processos externos também serão positivamente impactados.

Raciocínio lógico

O raciocínio lógico de um programador é uma de suas maiores ferramentas de trabalho.

Uma máquina é incapaz de compreender ordens não-lógicas, do mesmo modo que são incapazes de raciocinar sobre regras dispostas de maneira desordenada.

E é para isso que a lógica de programação existe: ao aguçar o raciocínio lógico do programador, ele está mais próximo da maneira de pensar de um computador e, portanto, mais habilidoso na hora de desenvolver um código eficiente.

Quanto mais capazes de compreender as coisas ao nosso redor de maneira técnica nós formos, mais eficiente será nosso raciocínio lógico.

Resolução de problemas

Nem só de criação vive um programador; a resolução de problemas também é muito comum em sua jornada de trabalho.

Sob essa perspectiva, podemos dizer que a programação também pode ser entendida como o processo de dividir um problema complexo em pequenas partes para, então, resolvê-las gradualmente a partir de trechos de código.

Sem lógica da programação isso não seria possível, uma vez que o desenvolvimento de um algoritmo de resolução de problemas depende diretamente dela.

Concentração

Como eu disse há pouco, quando nossa maneira de pensar muda, mudam também as formas com que executamos nossos processos externos.

A concentração, por exemplo, é um deles.

Se você tem problemas em atingir um bom nível de concentração na hora de trabalhar ou estudar, compreender lógica de programação pode te ajudar.

Isso acontece porque, quanto mais claras as ações que precisamos desempenhar para atingir determinados objetivos, podemos ordená-las e executá-las, uma a uma, de maneira mais categórica e, por consequência, com mais concentração.

Entender a tecnologia

Já dissemos hoje que os computadores são incapazes de compreender ordens subjetivas e que não estejam estritamente ordenadas de acordo com a sua maneira de compreender, não é mesmo?

A partir disso, podemos concluir que, ao estudar lógica de programação, estamos estudando também a maneira como a tecnologia funciona de modo geral. Isso porque todos os processos existentes em TI dependem de um código que os sustenta.

Consequentemente, entender a lógica da programação é um caminho muito eficaz para compreender a tecnologia como um todo.

Qual a maneira mais fácil de aprender?

Não existe caminho fácil para nenhum tipo de aprendizado, mas na hora de estudar lógica de programação, investir em uma escola de programação que oferece o suporte de um time de ensino especializado pode otimizar e agilizar a sua curva de aprendizagem!

Na Kenzie Academy Brasil, você aprende lógica de programação e muito mais, em um curso de programação full stack e, em apenas 12 meses, está capacitado para atuar no front e back-end.

Onde praticar programação?

É considerado ideal que se inicie colocando em prática algo que já esteja em sua mente. Podendo ser um site, jogos ou até mesmo alguma ferramenta de que você necessite.

Existem muitas opções, como por exemplo, recriar jogos ou criar um gravador de áudio.

Porém, se você está iniciando na programação, você precisa além de ideias, de instrução para realizar e colocar em prática! Para isso você deve aproveitar o suporte dos instrutores da Kenzie, em cada etapa do seu desenvolvimento, eles estarão com você.

Inclusive, em nosso perfil do LinkedIn, já divulgamos diversos projetos de alunos, aproveite para dar uma olhada e se inspirar!

5 dicas para quem está começando a programar

Existem muitas dicas que o time da Kenzie, com certeza gostaria de transmitir para os iniciantes na área de programação, mas para simplificar, confira abaixo 5 dicas essenciais:

Faça você mesmo a sua jornada valer a pena, comece agora, converse com colegas da área, mas faça o seu sucesso ser a sua própria motivação!

Os erros são essenciais na jornada

Não se puna por erros, afinal errar é normal e todos erram, principalmente no começo de uma nova profissão e na verdade isso é até importante pro seu crescimento. Então, faça estágios, questione seus mentores de ensino e se jogue no conhecimento.

Já foi citado em diversos conteúdos aqui no blog o quanto estudar é algo contínuo na vida de um programador(a), afinal existem diversas linguagens para se aprender, vários caminhos que podem ser trilhados e quanto mais conhecimento você tiver, melhores serão as suas oportunidades dentro do mercado de trabalho. Então, estude e estude mais!

Seja persistente e não desista no caminho

Em qualquer jornada de aprendizado você enfrentará dificuldades, algumas serão menores e outras serão maiores. Porém, não desista, o processo pode até ser longo, mas valerá a pena.

Um processo de aprendizagem envolve muito mais do que só desenvolver competências e habilidades. Esse processo engloba experiências únicas e valores que você levará por toda a vida. E com certeza, esse momento deve ser aproveitado.

Quer mais dicas? Confira este vídeo:

Conclusão

Se você está buscando maneiras de tornar-se um desenvolvedor, não tente inventar a roda: comece pelo início e, ao dominar os conceitos de lógica de programação, você estará totalmente apto a voltar seus estudos para as primeiras linguagens de programação.

E lembre-se: aproveite a jornada de aprendizagem para se desenvolver e trilhar uma jornada incrível como profissional na área da tecnologia!

Se você gostou desse conteúdo e gostaria de entrar na área de programação, eu recomendo que você faça a sua inscrição na próxima turma da Kenzie Academy Brasil.

# data[].attributes.attachment_link.title
Lógica de programação: o que é e por que é importante?

# data[].attributes.attachment_link.description
A lógica de programação é importante pois com ela conseguimos executar processos de forma otimizada. Confira neste conteúdo tudo sobre esse tema.

# data[].attributes.attachment_link.readable_text
1) Precedentes da informática

Uma breve introdução para a história da informática, onde foram destacadas as principais invenções para suprir as necessidades de uma época onde o computador não existia.

1.1) Mecanismo de Antikythera

A informática tem em sua base cálculos matemáticos e o raciocínio lógico, desde a antiguidade as civilizações gregas, babilônicas, sumérias e chinesas já possuíam um domínio sobre os números, tendo como exemplo os babilônios, que criaram em 3000 A.C uma estrutura de madeira com anéis chamada de Abacus, como forma de apoio para calcular as vendas do comércio.

O mecanismo de Antikythera é denominado como uma antiga calculadora analógica grega com aproximadamente 30 engrenagens de bronze, desenvolvido para prever posições astronômicas, eclipses para os calendários de 365 dias e seguir o ciclo de quatro anos dos jogos Olímpicos. A maior peça do mecanismo foi encontrada em 1900 por um grupo de mergulhadores, a peça estava dentro de um navio naufragado com outros tesouros próximos da ilha de Antikythera e acredita-se que seu destino era a cidade de Roma. Anos depois foram encontrados outras partes do mecanismo, sendo possível a criação de réplicas para serem estudadas e expostas no museu de Atenas.

Depois que esta tecnologia foi perdida em algum ponto da antiguidade, nenhuma obra tecnológica que se aproxima de sua complexidade e engenhosidade não aparecem até então, somente no século XIV relógios mecânicos surgiram na Europa.

1.2) Blaise Pascal e La Pascaline

O ponto de partida para o início da informática atual, foi em 1642 com a máquina La Pascaline do filósofo, matemático e físico francês Blaise Pascal, sendo a primeira calculadora mecânica capaz de realizar operações de adição e subtração. Foi construída com o objetivo de ajudar o pai de Pascal que era coletor de impostos, a realizar cálculos com mais rapidez e confiabilidade.

1.3) Máquina analítica de Babbage e Ada Lovelace

O conceito de máquina programável foi idealizado entre 1834 e 1835 pelo cientista e engenheiro mecânico francês Charles Babbage, no qual foi projetado uma máquina analítica que utilizava somente partes mecânicas para realizar diversas tarefas programáveis, infelizmente o projeto saiu do papel na década de 1980 e para comemorar o bicentenário de Babbage, a máquina foi finalizada nos anos 2000.

As máquinas não trabalham "sozinhas", elas necessitam de instruções que os seres humanos projetam e programam para resolver problemas do cotidiano, com isso, o conceito de primeiro algoritmo foi desenvolvido pela matemática inglesa Ada Augusta King, Condessa de Lovelace ou conhecida como Ada Lovelace.

Em 1842, Babbage realizou um seminário sobre sua máquina analítica, que posteriormente foi publicado em francês, contudo ele solicitou ajuda a Ada para traduzir em inglês e adicionar comentários sobre sua máquina no documento. Ada classificou alfabeticamente seus comentários de A até G. A máquina analítica foi reconhecida como o primeiro modelo de máquina programável e os comentários de Ada, como a primeira sequência de instruções ou algoritmo.

1.4) Álgebra de George Boole

A álgebra booleana nasceu de um estudo de George Boole, conhecido como "Uma investigação das leis de pensamento" onde o autor explana como tomar decisões lógicas baseando-se em situações verdadeiras ou falsas. Este método matemático expressa a relação entre as entradas e saídas de um circuito, utilizando letras como símbolos (A, B, C, D) para representar níveis lógicos, tendo como dois valores possíveis, o verdadeiro e falso. Comparando com a álgebra comum, a álgebra booleana é mais simples, pois trabalha com o sistema de numeração binário, não possui frações, raiz quadrada, números imaginários e nem logaritmos, e sim três operações lógicas elementares, a AND, OR e NOT, que dá vida às portas lógicas, tanto em teoria como prática. Isso possibilitou o avanço dos cálculos computacionais, utilizando inicialmente os relés, válvulas termiônicas, transistores e posteriormente em circuitos integrados.

1.5) Cartões perfurados

Em 1889, o norte-americano Herman Hollerith fundador da Tabulating Machine Company, precursora da International Business Machine ou IBM, Hollerith e o engenheiro mecânico francês Joseph-Marie Jacquard desenvolveram cartões perfurados, esses cartões guardavam informações e comandos nas máquinas, posteriormente essa tecnologia foi aprimorada e pioneira da memória utilizada nos computadores modernos.

2) A Segunda Guerra Mundial

Um dos maiores conflitos militares envolvendo as maiores potências mundiais, organizadas em Aliados e o Eixo entraram em conflito no ano de 1939, portanto a informática teve um papel fundamental na Segunda Guerra Mundial, seu objetivo foi computar cálculos estratégicos mais rápidos que um ser humano e descriptografar mensagens dos inimigos, consequentemente criando novas tecnologias para as próximas gerações.

2.1) Os modelos de Zuse

O primeiro computador eletromecânico a utilizar binário foi o modelo Z1 criado pelo engenheiro alemão Konrad Zuse entre 1935 e 1938 durante a Segunda Guerra, o computador trabalhava com lógica booleana utilizando um sistema de relés, mas possuía uma programação limitada e durante um ataque aéreo foi destruído, por fim em 1989 ocorreu sua reconstrução para expor no museu de Berlin. O modelo Z1 foi refinado e nomeado como Z2 em 1939, tendo uma memória mecânica com relés, o modelo Z3 de 1941 é a sua criação mais sofisticada e a única sobrevivente da guerra. Em 1945, Zuse desenvolve a primeira linguagem de programação algorítmica chamada de Plankalkül ou Plan Calculus, com o objetivo de criar as pré-condições teóricas para a solução de problemas gerais.

2.2) Computador Bombe de 1941

Nos acontecimentos da Segunda Guerra em 1941, foi desenvolvido o computador chamado Bombe, construído como um meio eletromecânico para decifrar as mensagens nazistas baseadas em uma linguagem de símbolos chamada ENIGMA, o Bombe britânico é concebido pelo engenheiro Harold Keen e Alan Turing da British Tabulating Machine Company. Centenas de computadores bombes foram construídos com o propósito de determinar as posições diárias de partida do rotor das máquinas de criptografia Enigma, o que por sua vez permitiu aos britânicos descriptografar mensagens alemãs.

2.3) Computador Colossus de 1945

Outro computador foi desenvolvido entre 1943 e 1945 para descriptografar os complexos símbolos de Lorenz SZ-40 utilizado pelos nazistas, o Colossus é um computador que utilizava em média 2500 válvulas para computar lógica booleana, sendo o primeiro computador eletrônico digital programável, sua eficiência é destacada pelo tempo de processamento dos cartões perfurados, onde o tempo para quebrar as mensagens de Lorenz foi reduzido de semanas para horas, em vantagem foram entregues dez computadores deste modelo.

2.4) Computadores Mark I e II

Na universidade de Harvard foi projetado o Automatic Sequence Controlled Calculator ou ASCC, um computador capaz de executar as quatro operações fundamentais de aritmética, logaritmos, potenciação, razão de seno e raiz quadrada, com autoria do físico Howard Aiken em 1937, depois de duas rejeições o projeto da gigante calculadora automática teve uma parceria entre Harvard e a IBM em 1944, chamando-o de Harvard Mark I. As dimensões deste computador chagavam a ser do tamanho de uma sala, com 16 metros de comprimento e 2,4 metros de altura, com um peso de quase 5 toneladas. Uma das primeiras programadoras do Mark I foi Grace Hopper, uma matemática da Marinha dos Estados Unidos, além disso ela ajudou Aiken a escrever o manual de operação do ASCC.

Depois da Segunda Guerra em 1947, Aiken e sua equipe finalizaram o Mark II financiado pela Marinha dos Estados Unidos, a diferença entre os modelos é a maior velocidade para realizar os cálculos, principalmente nas funções de adição e multiplicação e isso foi possível com a substituição dos contadores eletromecânicos utilizados no Mark I por relés eletromagnéticos de maior precisão.

Depois dos eventos de Mark I e II, Grace Hopper começou a trabalhar para a corporação Eckert-Mauchly Computer, como matemática sênior e gerenciou a equipe de desenvolvido do UNIVAC I. Neste período ela criou seu primeiro compilador, o A-0 e as primeiras linguagens baseadas em compiladores como a MATH-MATIC e FLOW-MATIC, que foram utilizadas no UNIVAC I e também trabalhou no desenvolvimento da linguagem de programação COBOL criada em 1959 pelo The Committee on Data Systems Languages, onde Hopper teve uma notável participação.

O termo "Bug" disseminado por Hopper é uma falha no código-fonte que segundo ela, ocorreu na época em que trabalhou no protótipo do Mark II quando um inseto ficou enroscado em um dos relés do computador, o que causou uma falha, um bug. Este termo é muito utilizado nos dias atuais por desenvolvedores de software.

2.5) Computador ENIAC de 1945

Iniciado em 1943, o computador Electronic Numerical Integrator and Computer ou ENIAC foi construído por John Mauchly e J. Presper Eckert na Escola Moore de Engenharia Elétrica da Universidade da Pensilvânia, sendo finalizado com sucesso em 1945. Devido à sua tecnologia eletrônica, ao contrário de eletromecânica, é mil vezes mais rápido do que qualquer outro computador de sua época. O ENIAC usou fiação de painel a painel para programação, usou cerca de 18 mil válvulas, incluindo 70 mil resistores, 10 mil capacitores, 6 mil switches e 1500 relés, ocupou 1800 metros quadrados e pesou cerca de 27 toneladas. Acreditava-se que a ENIAC tinha feito mais cálculos ao longo dos dez anos em que estava em operação do que toda a humanidade tinha até então.

3) Depois da Segunda Guerra

Alguns meses depois da Segunda Guerra Mundial, as novas tecnologias que foram criadas para a guerra, foram aprimoradas para atender o mercado industrial, como a memória RAM, o computador UNIVAC I, o silício para a criação de semicondutores, os discos rígidos e a linguagem FORTRAN, sendo que a maioria dessas tecnologias ainda são utilizadas atualmente.

3.1) A memória RAM e o primeiro sistema

Os pesquisadores da Universidade de Manchester, Frederic Williams, Tom Kilburn e Geoff Toothill desenvolvem a Small-Scale Experimental Machine ou SSEM, mais conhecida como a Baby de Manchester ou Manchester Mark I. O Baby foi construído para testar uma nova tecnologia de memória desenvolvida por Williams e Kilburn, sendo a primeira random access memory ou RAM para computadores. O primeiro sistema era composto por dezessete instruções escrito por Kilburn em 21 de junho de 1948.

3.2) UNIVAC I, o computador industrial

Depois da Segunda Guerra as indústrias norte-americanas necessitavam de novas tecnologias para automatizar seus processos, com isso o Universal Automatic Computer ou conhecido pela sua sigla UNIVAC I, foi o primeiro computador que atendeu o mercado industrial, sua estrutura robusta com 5 mil válvulas em operação e pesando aproximadamente 13 toneladas. Os programadores lidavam com quase 6 mil chaves e cabos que eram conectados em seu painel principal.

O UNIVAC I apresenta a unidade de fita chamada UNISERVO. Foi o primeiro dispositivo de armazenamento de fita para um computador comercial e o seu baixo custo relativo, portabilidade e capacidade offline ilimitada de fita magnética tornou-se muito popular. As fitas UNIVAC eram feitas de bronze fosforoso com um revestimento metálico. Pesando cerca de três quilos, cada bobina pode conter 1.440.000 dígitos decimais e pode ser lido a 100 polegadas por segundo.

Em 1951 as primeiras versões foram destinadas ao Pentágono, depois de três anos os computadores começaram a ser comercializados para indústrias como a General Electric. Na noite de eleição americana em 4 de novembro de 1952, a CBS News alugou um computador UNIVAC para prever o resultado da corrida para a presidência dos Estados Unidos entre Dwight D. Eisenhower e Adlai Stevenson.

As pesquisas de opinião previam um forte apoio para Stevenson, mas a análise dos retornos antecipados da UNIVAC mostrou uma clara vitória para Eisenhower. Essa divergência acentuada da opinião pública fez com que os executivos da UNIVAC questionassem a validade da previsão do computador, de modo que os anunciadores Walter Cronkite e Charles Collingwood adiaram anunciando a previsão correta da UNIVAC até muito tarde na transmissão. Em 1961, o UNIVAC I foi o primeiro computador que o Brasil utilizou, adquirido pelo IBGE para processar os dados do censo.

3.3) O silício

O segundo elemento mais abundante da terra, aproximadamente 28% da crosta terrestre é composta pelo semimetal silício. É um elemento químico da tabela periódica de símbolo Si de número atômico 14, o silício é um semicondutor e é capaz de transmitir 95% dos comprimentos de ondas das radiações infravermelhas. Em 1954 a empresa Texas Instruments cria o primeiro transistor utilizando silício, por ser um material semicondutor muito abundante.

O projeto da universidade de Manchester chamado Atlas, passou nove anos sendo desenvolvido mesmo depois da universidade ter iniciado suas pesquisas com a tecnologia do transistor. Contudo o Atlas foi o computador mais rápido do mundo para a época e introduziu o conceito de "memória virtual", ou seja, usando um disco como uma extensão da memória principal. A memória virtual permitiu que um computador utilizasse sua capacidade de armazenamento para alternar rapidamente entre vários programas ou usuários e era um requisito fundamental para o compartilhamento de tempo.

3.4) Programação no ensino militar

A IBM estabeleceu o modelo 650 em 1954 como seu primeiro computador produzido em larga escala, tendo em média 450 unidades vendidas em apenas um ano. Trabalhando a 12.500 rpm, o cilindro de armazenamento de dados magnético permitiu um acesso mais rápido as informações armazenadas do que os outros computadores com memória baseada em tambor. Este modelo foi muito popular nas universidades, onde uma geração de alunos aprenderam pela primeira vez a programação.

Os estudantes lidavam com linguagem de máquina de paradigma sequencial, no qual cada instrução realizada tinha 10 caracteres, sendo "xx yyyy zzzz", onde "xx" representava o código de operação a ser realizada, "yyyy" o endereço de memória e "zzzz" o endereço da próxima instrução que seria executada.

3.5) Armazenamento em disco rígido

Os computadores utilizavam fitas magnéticas para armazenar as informações, mas com uma pequena quantidade de dados geravam grandes rolos de fita, com isso iniciou-se a era do armazenamento em disco magnético com o computador RAMAC 305, desenvolvido pela IBM em 1956 para o Zellerbach Paper em San Francisco.

O computador foi baseado na nova tecnologia do disco rígido sendo o primeiro do mundo. A unidade de disco RAMAC era composta por 50 pratos de metal revestidos magneticamente capazes de armazenar cerca de 5 milhões de caracteres de dados ou 5 Megabytes. O RAMAC permitiu acesso aleatório em tempo real a grandes quantidades de dados, ao contrário da fita magnética ou cartões perfurados.

3.6) FORTRAN, a linguagem científica

Uma equipe da IBM liderada por John Backus desenvolve o FORTRAN em 1957, uma linguagem de computação científica de alto nível que usa declarações em inglês. Alguns desenvolvedores estavam céticos de que FORTRAN poderia ser tão eficiente quanto a codificação manual, mas esse pensamento desapareceu quando a linguagem provou que poderia gerar um código eficiente. Depois de alguns anos, FORTRAN tornou-se a linguagem mais utilizada até nos dias atuais. Suas primeiras versões trabalham com a programação imperativa e na versão de 2003 foi implementado o paradigma de orientação a objetos.

O primeiro computador que recebeu a linguagem foi o modelo IBM 704 Mainfarme, criado especialmente para cálculos de grande escala, onde sua velocidade chegava em média 4 mil cálculos matemáticos por segundo, isso para os dias atuais é algo relativamente pequeno.

A linguagem FORTRAN preza pela velocidade de execução do código, com essa vantagem o seu uso é intensificado para sistemas que computam um número alto de operações como por exemplo as áreas de física, engenharia, economia e astronomia.

4) A corrida espacial e outras tecnologias

Este período foi marcado pela Guerra Fria, um confronto indireto de disputas estratégicas entre os Estados Unidos e a União Soviética. Ambos evitaram o conflito militar, ocorrendo apenas confrontos ideológicos e tecnológicos.

A informática novamente teve seu papel fundamental nas guerras, sendo possível realizar novos investimentos em computadores e softwares, possibilitando a defesa de supostos ataques nucleares e o homem chegar até o espaço.

4.1) Sputnik I e Explorer I

Em 4 de outubro de 1957, Sputnik I lançou com sucesso e entrou na órbita da Terra. Assim, iniciou-se a corrida espacial. O sucesso do lançamento chocou o mundo, dando à antiga União Soviética a distinção de colocar o primeiro objeto feito pelo homem no espaço. A palavra "Sputnik" originalmente significava "companheiro de viagem", mas tornou-se sinônimo de "satélite" no russo moderno.

A esfera pressurizada feita de liga de alumínio tinha cinco objetivos científicos primários como, testar o método de lançar um satélite artificial na órbita terrestre, fornecer informações sobre a densidade da atmosfera através do cálculo da sua duração em órbita, testes de rádio e métodos ópticos de rastreamento orbital, determinar os efeitos da propagação das ondas de rádio através da atmosfera e verificar os princípios de pressurização utilizados nos satélites.

Além disso, o público americano temia que a capacidade dos soviéticos de lançar satélites também se traduzisse na capacidade de lançar mísseis balísticos que pudessem transportar armas nucleares da Europa para os Estados Unidos. Então os soviéticos voltaram a atacar, em 3 de novembro o Sputnik II foi lançado, transportando uma carga mais pesada, incluindo um cão chamado Laika.

Imediatamente após o lançamento do Sputnik em outubro, o Departamento de Defesa dos Estados Unidos aprovou um financiamento para outro projeto de satélite nos EUA. Como uma alternativa simultânea à Vanguard, Wernher von Braun e seu exército começaram a trabalhar no projeto Explorer.

Em 31 de janeiro de 1958, os Estados Unidos lançaram com êxito o Explorer I. Este satélite carregava uma pequena carga científica que finalmente descobriu os cintos de radiação magnética ao redor da Terra. O programa Explorer continuou como uma série contínua bem sucedida de nave espacial leve e cientificamente útil.

4.2) O primeiro videogame

Em 1962, Steve Russell liderou uma equipe de programadores no MIT, que criou o primeiro videogame para computador, o "SpaceWar!".

Russell escreveu seu jogo em um PDP-1, um minicomputador interativo da DEC (Digital Equipment Corporation), que usava um monitor de tubo de raios catódicos e entrada para teclado. SpaceWar de Russell mostrou que o divertimento poderia ser uma força motriz no avanço da tecnologia de computador. Ela influenciou empresas como a Atari e outros na criação de um poderoso meio de entretenimento que se tornaria uma indústria multimilionária.

4.3) Sketchpad e a computação gráfica

O Sketchpad foi um sistema de computador desenvolvido por Ivan Sutherland em 1963 em sua tese de doutorado, onde recebeu o Prêmio Turing em 1988 e o Prêmio Kyoto em 2012, O sistema funcionou no computador Lincoln TX-2 de 1958 no MIT.

O bloco de desenhos virtuais é considerado o pai de modernos sistemas de design como CAD e CAM, sendo assim um grande avanço no desenvolvimento da computação gráfica. Foi o primeiro sistema a utilizar uma GUI completa (Interface gráfica do usuário), usando uma exibição de pontos X-Y e a caneta de luz recentemente inventada para desenhar as formas geométricas na tela do monitor.

A maneira inteligente como o sistema organizou seus dados foi pioneiro no uso de objetos e instâncias na computação, apontando essa lógica para o paradigma de programação orientada a objetos. A ideia principal era ter desenhos mestres que se poderia instanciar em muitas duplicatas. Se o usuário alterou o desenho mestre, todas as instâncias também mudariam. Outro grande invento no Sketchpad foi que o sistema permitiu o usuário facilmente manipular o comprimento de uma linha ou o ângulo entre duas linhas.

4.4) Primeiro sistema de defesa aérea

Em 1949 a União Soviética detonou sua primeira bomba atômica, o governo dos Estados Unidos concluiu que necessitava de um sistema para monitorar o espaço aéreo americano em tempo real, com a finalidade de alertar e interceptar ataques aéreos durante a Guerra Fria, dessa forma contrataram cientistas do MIT e outras empresas para projetar o computador e o software do sistema SAGE (Semi-Automatic Ground Environment).

O sistema SAGE operou em um AN/FSQ-7 desenvolvido pela divisão de produtos militares da IBM, ocupando em média 2 metros por quadrado. Os computadores foram montados em mais de 20 centros de direções distribuídos no território americano, o sistema SAGE trabalhava com base nos dados brutos recebidos de um radar, posteriormente desenvolvem faixas para os alvos detectados e calculam automaticamente as defesas que estavam disponíveis.

Os operadores do sistema usaram armas leves para selecionar alvos na tela para obter mais informações, tendo a opção de selecionar uma das defesas disponíveis e emitir comandos para atacar o inimigo. Esses comandos seriam então enviados automaticamente para a rede de defesa via teleimpressor, que eram conectados em várias redes de comunicações do departamento de defesa.

4.5) A linguagem BASIC

Em 1964, os cientistas John G. Kemeny e Thomas E. Kurtz, desenvolveram a linguagem de alto nível BASIC (Código de instrução simbólica para iniciantes), foi projetada como uma linguagem para o ensino de programação. A estrutura da linguagem era simples e interpretada linha por linha, sendo mais fácil de encontrar erros de programação.

Seu pequeno tamanho e simplicidade também fizeram do BASIC uma linguagem popular para os primeiros microcomputadores pessoais. Suas formas recentes adotaram muitos dos dados e estruturas de controle de outras línguas contemporâneas, o que o torna mais poderoso.

4.6) O dispositivo mouse

O dispositivo mouse foi criado pelo engenheiro Douglas Engelbart no início da década de 1960 em seu laboratório de pesquisas no Stanford Research Institute. O primeiro protótipo do dispositivo tinha o objetivo de melhorar a interação entre o usuário e o computador, sendo mais um avanço para a computação gráfica. A mecânica do dispositivo é constituído por um par de rodas, onde uma se movimenta para a vertical e outra para a horizontal, formando o encontro dos pontos de X e Y na tela do computador.

4.7) A crise do software

Com a evolução dos computadores que foram desenvolvidos, cada vez mais as exigências das indústrias e negócios aumentavam a complexidade de um sistema. Com isso, os programadores não tinham recursos necessários para resolver os problemas que apareceram com a expansão de um sistema, que consequentemente prejudicava a qualidade do sistema e por fim clientes insatisfeitos, sendo assim chamando o período da crise do software. O termo surgiu na primeira Conferência de Engenharia de Software da OTAN entre 1968 e 1969 na Alemanha, onde se discutiu melhorias no processo de desenvolvimento de um sistema, colocando termos como projeto de software, manutenção, confiabilidade, testes, feedback dos usuários e documentação.

4.8) ARPANET

A Advenced Research Projects Agency Network ou ARPANET é uma antiga rede de comutação de pacotes e a primeira a utilizar o conjunto de protocolo TCP/IPcomo padrão, tornando-se a base tecnológica para a rede decentralizada ou internet. Foi criada pela ARPA do departamento de defesa do Estados Unidos em 1968 e sendo desativada em 1990, o objetivo inicial desta rede era a troca de informações entre cinco universidades americanas, onde cada computador era interligado na rede. Com a evolução da ARPANET foi possível desenvolver serviços de rede como o e-mail, o protocolo FTP para tráfego de arquivos e o NVP, um antigo protocolo de voz que possuía algumas falhas de comunicação.

No auge do conflito entre os Estados Unidos e a União Soviética, o ARPANET serviu como uma rede de comunicação de emergência em casos de ataques nucleares dos soviéticos, pois a sua estrutura era feita com cabos de fibra óptica para não sofrerem interferência de pulsos eletromagnéticos das explosões de bombas nucleares e como cada ponto da rede era uma central, em um suposto bombardeio não iria danificar a comunicação por completa.

4.9) A missão Apollo 11

A missão espacial americana Apollo foi criada para enviar astronautas para a Lua. A primeira missão tripulada foi a Apollo 1, mas infelizmente a missão falhou, pois o modulo de comando explodiu nos testes de ensaio no lançamento do foguete, matando os três astronautas que estavam a bordo. Depois de outras tentativas, a Apollo 8 foi a missão em que uma nave espacial tripulada deixou a órbita da Terra e alcançou com sucesso a órbita lunar. A missão tripulada Apollo 10 também alcançou a órbita lunar, onde os astronautas tiveram a oportunidade de se aproximarem mais da Lua e testarem as funções dos módulos de comando e lunar, preparando-se para a próxima missão, Apollo 11.

A missão mais famosa da NASA, a Apollo 11 foi projetada para enviar a primeira nave tripulada para pousar na superfície da Lua. O foguete Saturn V SA-506 foi lançado em 16 de Julho de 1969 com o modulo de comando Columbia e o modulo lunar Eagle, juntamente com os astronautas Armstrong, Collins e Aldrin para explorar pela primeira vez a superfície do satélite natural da Terra.

A informática entra em destaque no projeto do computador de orientação da Apollo 11 desenvolvido pelo MIT Instrumentation Laboratory, sendo equipados nos módulos de comando e lunar. O computador auxiliou nas informações de orientação, navegação e controle dos módulos. Os sistemas que processavam os dados chamados de Colossus e Luminary, eram armazenados em uma memória especial de somente leitura conhecida como core rope memory, ela foi produzida com a tecelagem dos fios em núcleos magnéticos. Para os astronautas se comunicarem com o computador, foi desenvolvido uma tela numérica com teclado chamado DSKY (Display and keyboard - Display e teclado).

No dia 20 de Julho de 1969, o modulo Eagle se separou do modulo Columbia, no momento em que o Eagle estava aterrissando na superfície da Lua, o computador assustou os astronautas e a equipe do Centro de Controle de Missão no Texas com alarmes do sistema, indicando que o computador não tinha condições de completar todas as tarefas em tempo real, sendo assim adiando alguns deles. Em 1971, a líder da equipe de desenvolvimento do sistema Colossus, Margaret Hamilton explicou em uma carta o motivo da missão Apollo 11 ter sido um sucesso mesmo com os alarmes do modulo lunar Eagle.

Devido a um erro no manual da lista de verificação, o interruptor do radar foi colocado na posição errada. Isso fez com que ele enviasse sinais errados para o computador. O resultado foi que o computador estava sendo solicitado a executar todas as suas funções normais para desembarcar enquanto recebia uma carga extra de dados errados que usavam 15% de seu tempo. O computador (ou melhor, o software nele) era suficientemente inteligente para reconhecer que estava sendo solicitado a executar mais tarefas do que deveria estar executando. Em seguida, enviou um alarme, que significava para o astronauta, "estou sobrecarregado com mais tarefas do que deveria estar neste momento e eu vou manter apenas as tarefas mais importantes", ou seja, os necessários para a aterragem. Na verdade, o computador foi programado para fazer mais do que reconhecer as condições de erro. Um conjunto completo de programas de recuperação foi incorporado ao software. A ação do software, neste caso, foi eliminar tarefas de menor prioridade e restabelecer as mais importantes. Se o computador não tivesse reconhecido esse problema e tivesse tomado a ação de recuperação, eu duvido que o Apollo 11 tenha tido sucesso em seu pouso na lua.

- Margaret Hamilton - Líder do Apollo Flight Computer Programming, Colossus.

Hamilton graduou-se em matemática e em meteorologia no Massachussets Institute of Technology, em 1960 ela começou a desenvolver sistemas com o objetivo de prever o clima para o departamento de meteorologia do MIT, utilizando os computadores LGP-30 e o PDP-1. Segundo Hamilton, naquela época a engenharia de software não era uma disciplina, consequentemente os programadores aprendiam na prática. Ela teve uma notável participação do desenvolvimento do sistema para o Projeto SAGE, com o objetivo de rastrear aeronaves soviéticas.

Com o reconhecimento do esforço no Projeto SAGE, Hamilton foi aceita para gerenciar a equipe de construção do computador de orientação da Apollo 11. Nos anos de desenvolvimento, surgiram problemas sem soluções conhecidas, onde Hamilton e sua equipe tiveram que ser os pioneiros em vários conceitos fundamentais. Nos dias atuais, Hamilton é reconhecida por seu trabalho para a Apollo 11 que levou o homem à lua com sucesso e a pessoa que popularizou o termo de "engenharia de software" com suas importantes contribuições para área, tendo criado a metodologia de desenvolvimento Before the Fact e a linguagem de modelagem Universal Systems Language, ambos para sistemas complexos de tempo real. Além disso durante sua carreira profissional, ganhou quatro prêmios, sendo que em 2016 Hamilton foi premiada com a Medalha Presidencial da Liberdade, a mais alta honraria civil dos Estados Unidos.

5) A era dos computadores pessoais

A era da eletrônica digital foi marcada com os microcomputadores pessoais, sendo apropriados para um ambiente doméstico pelo seu tamanho reduzido e isso só foi possível com o desenvolvimento do primeiro microprocessador, um computador dentro de um chip. A criação de novas linguagens de alto nível como o C, C++ e Smalltalk possibilitou a expansão do mercado de desenvolvimento de software e a elaboração de padrões de projeto, como o Model View Controller. Também surgiram empresas como a Apple e Microsoft para fornecimento de microcomputadores e sistemas operacionais.

5.1) A criação do UNIX

A plataforma UNIX foi criada em 1970 pelos pesquisadores Ken Thompson, Dennis Ritchie e seus colegas no Bell Labs, com o objetivo de projetar um sistema operacional portátil, multitarefa e multiusuário para os programadores desenvolverem outros sistemas. Originalmente o sistema UNIX foi escrito em Assembly, uma linguagem de baixo nível, em 1972 foi reescrito na linguagem C, uma linguagem de alto nível criada pelo próprio Ritchie, oferecendo um sistema mais leve e compatível para outros hardwares.

Na década de 1980, transformou-se em um sistema operacional universal, sendo distribuídos por universidades e órgãos governamentais, além disso a plataforma UNIX e a arquitetura cliente-servidor foram elementos importantes para a criação da internet e a remodelagem do conceito "rede de computadores".

5.2) O disquete

O floppy disk ou disquete é uma forma de armazenamento de dados em disco magnético desenvolvidos no início de 1970, os discos são lidos por meio de um hardware chamado de unidade de disquete. Originalmente os disquetes mediam 8 polegadas ou 200 milímetros, posteriormente foram projetados para tamanhos de 5¼ polegadas ou 133 milímetros e de 3½ polegadas ou 90 milímetros.

O disquete de 8 polegadas foi projetado pela IBM com o nome de "Diskette 1", contendo a capacidade de armazenamento aproximada de 1,2MB, sendo comercializado em 1972 para os primeiros microcomputadores de uso industrial, empresarial e universitário. No início dos anos 1980, o disquete de 3½ polegadas tornou-se o modelo popular entre os usuários, podendo ser gravado e lido de um lado ou de ambos os lados, variando a capacidade de armazenamento entre 360KB e 1,44MB.

5.3) O microprocessador

A Intel Corporation anunciou na edição de 15 de novembro de 1971 da Electronic News, um computador dentro de um chip de 4 bits, onde seus engenheiros projetaram um conjunto integrado de quatro chips conhecidos como MCS-4. Ele inclui um chip central da unidade de processamento, o Intel 4004, além de um chip de memória somente de leitura para os softwares de aplicativos personalizados e um chip de memória de acesso aleatório para o processamento de dados. O microprocessador trabalhava com a taxa máxima do clock de até 740 kHz.

O primeiro produto comercializado que utilizou o Intel 4004, foi a calculadora 141-PF da Busicom, além disso a Intel abriu espaço para o desenvolvimento de computadores menores e mais robustos no mercado com o lançamento do Intel 8008 ou 8080, o primeiro microprocessador em 8 bits. Porém o engenheiro elétrico que trabalhou no desenvolvimento do modelo 8080, saiu da Intel no final de 1974 para fundar a empresa Zilog com Ralph Ungermann, em meados de 1976 o microprocessador Z80 foi projetado para ser comercializado em diversos microcomputadores pessoais e industria de sistemas embarcados, este processador também foi desenvolvido para ser compatível ao seu concorrente Intel 8080.

Neste vídeo é possível visualizar uma montagem de um computador básico com o Z80 processando a famosa sequência de Fibonacci. 0-0-1-2-3-5-8-13-21-34-55-89-144...

Depois dos processadores Intel 286, i386, i486, em 1993 o primeiro microprocessador de quinta geração da arquitetura 86x foi lançado como Intel Pentium, sendo possível o desenvolvimento de novos sistemas operacionais que trabalham com a arquitetura. Em 1999 a empresa AMD anunciou o primeiro processador 64bits, o Opteron, baseado em uma nova arquitetura que suporta um número maior de memória virtual e física, sendo 2^64 ou 16 exabytes. É totalmente compatível com o código da arquitetura x86 de 16bits e 32bits.

Depois da série de processadores Intel Pentium, Celeron e Core 2, foram lançados os processadores i3, i5, i7, i9 e suas gerações, chegando até 10 núcleos. Além disso depois da série de processadores AMD Sempron, Athlon, foram lançados os modelos FX e Ryzen, alcançando entre 8 à 16 núcleos.

5.4) Novas linguagens de programação de alto nível

Na década de 1970 em plena era dos microprocessadores e microcomputadores pessoais, novas linguagens de programação foram desenvolvidas para a criação de sistemas para atender o mercado empresarial e industrial. Em 1971, Niklaus Wirth desenvolveu a linguagem Pascal em homenagem ao matemático e filósofo Blaise Pascal, a linguagem trabalhava com o paradigma de programação estruturada e imperativa, depois de alguns anos surgiu o Object Pascal, seguindo um paradigma mais novo e confiável, a orientação a objetos.

Dennis Ritchie em 1972 desenvolveu a linguagem C para reescrever o sistema UNIX, sendo uma linguagem estruturada que serviu de base para diversos sistemas e outras linguagens de programação como por exemplo, a linguagem orientada a objeto e imperativa C++ que foi desenvolvida por Bjarne Stroustrup em 1983, da mesma forma que o C++ influenciou outras linguagens orientada a objetos como, C#, Java e as primeiras versões do PHP.

A linguagem orientada a objetos Smalltalk foi criada pela empresa Xerox PARC de Alan Kay e seus colegas em 1972, primeiramente foi desenvolvida para fins educacionais e se tornou uma das linguagem mais influentes para a área de desenvolvimento de software, principalmente para a comunidade de padrões de projeto, onde adotaram diversos padrões desenvolvidos primeiramente em Smalltalk, sendo que o padrão mais conhecido é o Model View Controller.

5.5) A primeira interface do usuário

A linguagem Smalltalk também influenciou no histórico da interface do usuário, os projetos de destaques da Xerox em 1973 foram o desenvolvimento experimental de um microcomputador pessoal chamado Alto e o desenvolvimento de um ambiente de trabalho com Smalltalk. O Alto usava o dispositivo mouse, ethernet (Rede interna) e UI enquanto o ambiente do Smalltalk providenciava ícones e gráficos interativos com o mouse, algo totalmente inovador para a época.

O WYSIWYG ( What you see is what you get - O que você vê é o que você obtém) é um sistema de interface de usuário, onde o conteúdo com texto e imagens pode ser modificado em um editor e o resultado final impresso será semelhante ao que o usuário está editando. O primeiro sistema WYSIWYG chamado Bravo foi desenvolvido por Charles Simonyi. Além disso as ferramentas integradas de depuração e inspeção de objetos que vieram com o ambiente Smalltalk, estabelecem o padrão para todas as IDEs.

5.6) Computadores Apple e concorrentes

O primeiro modelo do microcomputador Apple foi projetado e manufaturado pelo engenheiro eletrônico Steve Wozniak em 1976. Seu amigo Steve Jobs ofereceu a sugestão de vende-lo. Sendo o primeiro produto da Apple Computer Company, para financiar toda estrutura dos negócios, Jobs vendeu o seu VW Microbus (No Brasil conhecido como Kombi) e Wozniak vendeu sua calculadora HP-65, com isso o Apple I foi demonstrado em Julho de 1976 no Homebrew Computer Club em Palo Alto na Califórnia.

O primeiro modelo foi descontinuado, porém o Apple II estava sendo projetado por Wozniak que seria lançado em 1977, tornando-se o primeiro produto comercializável da Apple com sucesso nas suas vendas. Foi um microcomputador de 8 bits, com 4kB de RAM, contendo um interpretador BASIC integrado na ROM, unidade para disquete de 5¼ polegadas e unidade de fita cassete, ambos para carregar ou armazenar softwares. Posteriormente lançaram os modelos Apple II Plus e Apple IIe, com melhorias na performance do hardware principalmente na memória RAM, como também a inclusão da tabela completa de caracteres em ASCII e a diferença entre letras maiúsculas e minúsculas do sistema.

Naquela época existiam alguns outros microcomputadores concorrentes ao Apple II, como o ZX Spectrum, TRS-80 Color e o MSX.

Em 1978 os engenheiros da Apple estavam trabalhando no microcomputador Apple Lisa, onde começaram a pesquisar sobre o desenvolvimento da GUI com parceria da Xerox PARC. O microcomputador Alto da Xerox possuía uma grande quantidade de placas pela sua exigência no processamento, que consequentemente necessitou de um grande gabinete.

O Apple Lisa só foi possível ser desenvolvido com a criação do microprocessador Motorola 68000 de 16/32 bits, oferecendo um espaço desejável para uma mesa de escritório.

No início do ano de 1984 a Apple lançou seu primeiro microcomputador que popularizou a interface gráfica de usuário e o mouse, o Macintosh. Seu concorrente no mercado o IBM Personal Computer, já estava sendo comercializável desde 1981 com sucesso nas vendas e se tornando o padrão para a próxima geração de PCs. Além disso os microcomputadores da época utilizavam unidades de disquete para armazenamentos de dados, o IBM XT lançado em 1983 foi o primeiro microcomputador a possuir um disco rígido interno com capacidade de 10MB, mesmo assim o modelo não dispensou o uso de disquete.

5.7) Microsoft Windows

Em abril de 1975 Bill Gates e Paul Allen criaram a Microsoft, com o objetivo de desenvolver e comercializar interpretes de BASIC para o Altair 8800. Posteriormente a Microsoft arriscou-se no mercado com um sistema operacional baseado em Unix, mas o sucesso da empresa naquela época era o sistema MS-DOS. O sistema operacional foi desenvolvido por Tim Paterson, que inicialmente chamava-se 86-DOS, um clone do sistema operacional CP/M compatíveis com microcomputadores que utilizavam processadores Intel 8080 e Z80, porém o sistema foi portado para executar no Intel 8086, o primeiro processador 16 bits que deu origem a arquitetura 86x. Para isso foram feitas algumas modificações, a lógica do buffer para o setor de disco foi automatizada e a implementação do FAT32, substituindo o sistema de arquivos CP/M. Com um contrato entre a Microsoft e IBM, foi requerido uma versão do sistema para os microcomputadores IBM-PC, com isso a Microsoft comprou o sistema de Paterson e comercializou como sistema operacional PC-DOS, que originalmente era o MS-DOS.

Depois das vendas do sistema PC-DOS e OS/2 Warp para a IBM, a Microsoft lançou em 1985 o sistema operacional Microsoft Windows 1.0, sendo uma extensão gráfica do MS-DOS com calculadora, calendário, painel de controle, bloco de notas e Paint. No fim de 1987 lançaram o Windows 2.0, contendo melhorias na interface do usuário e gerenciamento de memória em relação ao sistema anterior, com essas mudanças a Apple acusou a Microsoft de violação de direitos autorais. Mesmo assim Gates continuou com os lançamentos para o novo sistema operacional, em 1990 o pacote Office foi lançado para atender as necessidades dos escritórios com o Word e Excel, sendo uma alternativa ao Wordstar e Lotus 1-2-3 para sistemas CP/M e MS-DOS.

Com as versões Windows 3.x lançados até 1994 e com o início da popularidade dos CD-ROMs, a próxima geração de sistemas operacionais para usuários comuns chegou com o lançamento do Windows 95 em 24 de agosto de 1995, mesmo tendo dependência com o sistema MS-DOS em sua base, essa versão ofereceu suporte para softwares em 32 bits, hardware plug and play, arquivos com nomes longos de até 255 caracteres e maior estabilidade em relação aos sistemas anteriores. Além disso o Windows 95 apresentou para o público uma nova interface gráfica orientada a objetos, possuindo o famoso menu iniciar, barra de tarefas e o Windows Explorer. Em 25 de junho de 1998 foi o lançamento do Windows 98, com suporte para dispositivos USB, ACPI, hibernação e configurações de vários monitores.

Em 1988 a Microsoft iniciou o desenvolvimento do Windows NT, sendo uma versão renovada do sistema OS/2 que eram utilizados nos IBM PCs, com o propósito de ser um sistema operacional seguro e multiusuário com compatibilidade POSIX com um kernel modular para suportar múltiplas arquiteturas de processadores, no caso 16 bits e 32 bits. As principais versões que se basearam neste sistema foram os Windows XP, Windows Vista, Windows 7, Windows 8/8.1/RT e Windows 10.

5.8) Sondas espaciais Voyager I e II e o sistema solar

Com o avanço da tecnologia e suas criações foi possível ampliar o conhecimento sobre o nosso sistema solar e o universo, um assunto cativante aos seres humanos desde a antiguidade. Após outras missões espaciais tripuladas realizadas com sucesso, chegou a vez de explorar o ambiente espacial com equipamentos de investigação, como fotografia e sensores para estudos científicos. A primeira sonda a ser enviada ao espaço para observação foi em 5 de setembro de 1977, a famosa Voyager I foi destinada a estudar os planetas Júpiter e Saturno e seus satélites naturais, realizando importantes capturas de dados para a comunidade cientifica. Com o sucesso da Voyager I, o Jet Propulsion Laboratory da NASA desenvolveu outra sonda gêmea chamada Voyager II, sendo destinada a estudar Urano e Netuno e suas luas.

As duas naves espaciais possuem diversos subsistemas embarcados em seu interior, como também sensores e equipamentos de radiocomunicação. O subsistema de comando fornece funções de controle sequencial, além disso contém rotinas fixas, como decodificações de comandos, e detecção de falhas com rotinas corretivas. O subsistema responsável pelo controle de atitude e articulação controla a orientação da sonda, e mantém a indicação da antena de alto ganho em direção à Terra. A energia elétrica é fornecida por três geradores termoelétricos radioisótopos, conforme o esgotamento de energia, as cargas da nave espacial são desligadas gradualmente para evitar que o alto consumo acabe com o reservatório, preservando as funções elementares e desativando sensores conforme a necessidade. Além destas tecnologias as duas sondas foram equipadas com os famosos Discos de Ouro (The Golden Record), onde possuem diversas informações em forma de som e imagem de nossa civilização à serem apresentadas para outras supostas civilizações.

Estas sondas completaram 41 anos de operação em 21 de maio de 2019, elas estão se aprofundando cada vez mais no desconhecido espaço interestelar, onde a Voyager I chegou em 2012 e a Voyager II em 2018, porém os cientistas acreditam que com a falta de energia da Voyager I, possivelmente a perda total de comunicação com a sonda acontecerá em 2020.

5.9) O primeiro computador portátil

Em 3 de abril de 1981 foi lançado o Osborne 1 pela empresa Osborne Computer Corporation, um microcomputador portátil do tamanho e peso de uma máquina de costura, mas o único que poderia ser levado debaixo do banco de um avião. Utilizava o sistema operacional CP/M e acompanhava um grande pacote com softwares, como o Wordstar, SuperCalc e até sistemas para vendas comerciais. Seu hardware era composto pelo microprocessador Z80 com 4 MHz de 8 bits, memória principal de 64 KB, porta paralela para impressoras e porta serial para modens.

5.10) Modelos de desenvolvimento de software

Para desenvolver um software é necessário possuir conhecimento sobre as técnicas da engenharia de software, mas em meados dos anos 1970 e 1980 a área ainda não era popularizada entre a maioria dos desenvolvedores, portanto algumas empresas da época que trabalhavam com grandes sistemas, criaram métodos para um desenvolvimento controlado e organizado, utilizando-se de técnicas de outras engenharias, como o gerenciamento de projetos, aplicações de testes e documentação.

O primeiro processo de software criado foi o Modelo Cascata de abordagem sequencial, originalmente conceituado em 1956 por Herbert Benigton para o projeto SAGE, porém o modelo não era conhecido por cascata. No ano de 1976 o termo cascata apareceu em um artigo de Bell e Thayer e sendo aplicado na prática somente em 1985 pelo Departamento de Defesa dos Estados Unidos, onde afirmaram que o padrão de processo teria seis fases: Requisitos, Projeto, Implementação, Testes, Implantação e Manutenção. Atualmente esse modelo de processo de software não é mais utilizado, pela justificativa de não atender as necessidades atuais de desenvolvimento.

O surgimento da ferramenta CASE em 1986 foi um avanço para o desenvolvimento de software, onde o engenheiro possui uma visão ampliada da arquitetura do sistema, sendo possível realizar modificações antes de ser codificado, preservando a qualidade do sistema. As ferramentas desenham diagramas com vários objetos interligados, para isso utilizavam a análise estrutura com fluxogramas de dados, porém atualmente é utilizada a análise orientada a objetos, que possui uma linguagem de modelagem de dados para auxiliar na construção de diagramas, a Linguagem de Modelagem Unificada ou UML.

O engenheiro Barry Boehm publicou um artigo em 1986 com o título "A Spiral Model of Software Development and Enhancement", contudo em 1988 Boehm publicou outro artigo parecido, mas com uma visão mais ampla do processo. É o modelo de processo de software conhecido como Modelo Espiral, ele é do tipo evolucionário e incremental que segue os mesmos processos genéricos do cascata, entretanto a diferença é que o ciclo do modelo cascata acaba na entrega do software e do modelo espiral pode ser adaptado para atender ao longo da vida do software.

6) A era da informação

Com a criação da rede mundial de computadores foi possível o compartilhamento da informação com mais facilidade, tornando-se popular com os navegadores utilizados no Windows 3.0 e Windows 95, como o Internet Explorer, Mosaic e Netscape. Novos sistemas operacionais baseados em UNIX chamado de GNU foram criados e um novo kernel foi desenvolvido chamado Linux. A linguagem de programação orientada a objetos Java foi projetada para funcionar em diferentes tipos de hardwares e o C# foi lançado em 2000 para concorrer no mercado de desenvolvimento de sistemas desktop e web.

6.1) A World Wide Web

A rede mundial de computadores foi criada pelo cientista britânico Tim Berners-Lee, em uma época em que compartilhar a informação era um problema. Quando Berners-Lee trabalhava na CERN em 1989, ele apresentou um documento com sua visão da web chamado "Gerenciamento da Informação: Uma Proposta", a proposta inicial não foi aceita de imediato, porém ele conseguiu tempo para desenvolver as primeiras tecnologias da web. Em 1990 Berners-Lee desenvolveu as três tecnologias fundamentais para a web, a linguagem de marcação HTML, a URL e o protocolo HTTP. O primeiro servidor web do mundo foi criado em um computador NeXT que também foi utilizado para desenvolver o primeiro navegador de internet.

Com a popularidade da web, novos navegadores, linguagens de programação e pequenas páginas para web foram desenvolvidas. O navegador Mosaic foi o responsável por disseminar a internet nos computadores pessoais, suportando sistemas operacionais Windows, Mac OS, Unix e AmigaOS. Posteriormente a Microsoft comprou os direitos de Mosaic, renomeando como Internet Explorer para Windows. Em 1994 foi criado o navegador Netscape, também inspirado no sucesso do Mosaic, porém ele começou desaparecer com a utilização em massa do Internet Explorer. As páginas web eram montadas com a linguagem HTML, mas com a necessidade de novos recursos para a web, no final de 1994 o desenvolvedor Rasmus Lerdorf criou a linguagem de script PHP.

Atualmente a internet é uma das ferramentas mais indispensáveis para o mundo, com isso abriu espaço para a criação das redes sociais, gerenciador de e-mails e comércio eletrônico.

6.2) GNU/Linux

O projeto GNU iniciou-se em 1984, com o objetivo de desenvolver um sistema baseado em UNIX, acompanhando um conjunto de programas open-source, como bibliotecas, ferramentas para desenvolvedores e jogos.

Em 1991 um estudante de ciência da computação Linus Torvalds anunciou a primeira versão do kernel Linux, sendo adotado pelo Projeto GNU em decorrência de seu kernel "GNU Hurd Kernel" ainda não estar completo.

O termo Linux é uma referência ao kernel Linux, criado por Linus Torvalds em 1991, porém é frequentemente associado ao próprio sistema operacional, que consiste em outros softwares básicos que utilizam este kernel, apesar dos nomes iguais, Hofman (2013), o termo correto para os sistemas operacionais que seguem este modelo é denominado de "GNU/Linux", devido ao GNU (acrônimo recursivo para GNU Is Not Unix - GNU Não é Unix), sistema operacional que teve o início de seu desenvolvimento em 1984 pela Free Software Foundation e foi fundamental para os sistemas que conhecemos hoje.

- Renan Cavalieri.

6.3) Linguagens Java e C#

Para desenvolver os softwares, eram necessárias as linguagens de programação. O Java é uma destas linguagens que se destacou diante de suas concorrentes devido ser compatível com padrões de projetos e a orientação a objetos, além de ser multiplataforma. Isto permitiu que os desenvolvedores de software escrevessem o código somente uma vez para funcionar em qualquer sistema compatível com a linguagem.

Os cientistas James Gosling, Mike Sheridan e Patrick Naughton iniciaram o projeto Java em 1991, com o objetivo de ser utilizado em televisões interativas, porém a tecnologia era avançado para as indústrias de televisão a cabo naquela época. Em reuniões para definir o nome da nova linguagem, o Java derivou-se de uma reunião extensa enquanto Chris Warth estava tomando uma xicara de Peet's Java. Posteriormente a empresa Sun Microsystems lançou oficialmente a primeira versão do Java em 1995.

Atualmente o Java é de propriedade da empresa Oracle Corporation desde 2010, sendo assim a versão Oracle é distribuída em dois pacotes diferentes: o Java Runtime Environment (JRE) para usuários finais e o Java Development Kit (JDK), para desenvolvedores de software, incluindo ferramentas de desenvolvimento como o compilador Java, Javadoc, Jar e um depurador.

A linguagem multiparadigma C# ou C Sharp foi criada inicialmente pela Microsoft dentro da iniciativa .NET em 1999, sendo liderado pelo engenheiro Anders Hejlsberg, também conhecido por desenvolver a linguagem Turbo Pascal e ser o principal membro do desenvolvimento da ferramenta Delphi em suas primeiras versões. A linguagem C# utiliza o .NET Framework, uma estrutura com diversas bibliotecas para Windows e a IDE Visual Studio. O ASP.NET é uma framework para web também criada pela Microsoft, sendo uma estrutura modular que suporta o .NET Framework no Windows e no .NET Core, tendo algumas atualizações para o ASP.NET MVC. É a principal linguagem concorrente do Java, sendo parecidas semanticamente, onde o criador do Java chamou o C# de "cópia do Java".

6.4) Google

O Google teve seu início em 1996 como um projeto de pesquisa para o doutorado de Larry Page e Sergey Brin, se tornando um dos motores de busca mais importantes da internet. Os motores de busca convencionais na época classificavam os resultados contanto quantas vezes as palavras chaves da pesquisa apareciam na página, sendo assim o Google começou a trabalhar com analises de relação entre os sites encontrados na pesquisa, oferecendo uma grande quantidade de informações. A empresa Google foi fundada em 4 de setembro de 1998, sendo construída na garagem de Susan Wojcicki, que também trabalhou no Google, como líder de alguns produtos da empresa, incluindo AdWords, AdSense e Google Analytics e atualmente é CEO do YouTube desde 2014. O primeiro empregado da Google foi Craig Silverstein, que estudou doutorado junto com Larry e Sergey.

Além do Google ser um motor de busca na internet, a empresa investiu em diversas ferramentas na web, como o YouTube, Google Plus, Google Maps, a G-Suite com Gmail e Google Drive, o navegador Google Chrome e o smartphone Nexus com Android.

6.5) Smartphones Android e iOS

Em 2003 a empresa Android Inc. foi fundada em Palo Alto na Califórnia, pelos engenheiros Andy Rubin e Rich Miner e seus colegas, sendo descrito como um projeto em potencial no desenvolvimento de dispositivos inteligentes. Em 2005 a Google adquiriu a Android Inc. junto com seus criadores.

Rubin liderava a equipe do desenvolvimento da plataforma de dispositivos móveis baseando-se no kernel do Linux, quando o Google comercializou o Android para fabricantes de celulares, oferecendo um sistemas flexível e atualizável. Os celulares tinham teclado físico e tela não sensível ao toque.

Com a chegada do iPhone da Apple em 2007, o Android teve que voltar a seus estágios de projeto, tendo que adaptar para telas touchscreen. Contudo o Android atualmente é o sistema operacional para smartphones mais utilizado no mundo.

O sistema iOS desenvolvido pela Apple é exclusivo para seus produtos, como iPhone, iPad e iPad Touch, sendo o segundo sistema operacional para smartphones mais utilizados no mundo.

A intenção inicial era encolher o Mac ou melhorar o iPod, sendo assim criando o sistema operacional para o iPhone.

Conclusão

A importância da história da informática é incentivar o interesse de explorar a área da tecnologia da informação, conhecendo as principais invenções tecnológicas da humanidade, a ciência por trás dos binários, a eletrônica juntamente com a arquitetura de computares e especialmente o porquê das coisas existirem e funcionarem. Desta forma é possível motivar as pessoas que estão ingressando na área, do mesmo modo que os engenheiros e cientistas da computação, analistas de sistemas e outras áreas da TI a aperfeiçoarem ou criarem novas soluções inteligentes.

Referências

1. AIKEN, H. H. et al. A manual of operation for the automatic sequence controlled calculator. 1 ed. Cambridge: Harvard University Press, 1946.

2. BOOLE, G. An investigation of the laws of thought: on which are founded the mathematical theories of logic and probabilities. 2005.

3. CAMPBELL, M.; et al. Computer: a history of the information machine, 3 ed, Philadelphia: Westview, 2014.

4. DEBIAN. Welcome to Debian: What is GNU/Linux?. Disponível em: <http://www.debian.org/releases/jessie/mips/ch01s02.html.en>

5. GOOGLE. From the garage to the Googleplex. Disponível em: <https://www.google.com/intl/en/about/our-story/>

6. GREEN, R. C. Walking on the moon: the amazing Apollo 11 mission. 1 ed. Enslow Publishers, 2013.

7. HAMILTON, M. H.; HACKLER, W. R. Universal systems language: lessons learned from Apollo. 1 ed. IEEE Computer Society, 2008.

8. HENDERSON, H. Encyclopedia of computer science and technology. 1 ed. New York: Facts On File, 2009.

9. IBM. SAGE: the first national air defense network. Disponível em: <http://www-03.ibm.com/ibm/history/ibm100/us/en/icons/sage/>.

10. MCCLURE, M. R. Software engineering: report on a conference sponsored by the NATO Science committee. 1 ed. Garmisch: NATO, 1968.

11. MURPHY, K. So why did they decide to call it Java? .Java World. 1996. Disponível em: <http://www.javaworld.com/article/2077265/core-java/so-why-did-they-decide-to-call-it-java-.html>

12. O'REGAN,G. A brief history of computing. 1 ed. London: Springer, 2008.

13. OSBORNE, A. Microprocessadores: conceitos básicos. 1 ed. São Paulo: McGraw-Hill, 1984.

14. PRESSMAN, R.S. Engenharia de software: uma abordagem profissional. 7 ed. Porto Alegre: AMGH, 2011.

15. REDMOND, C. K; SMITH, M. T. From whirlwind to MITRE: the R&D story of the SAGE air defense computer. 1 ed. Cambridge, The MIT Press, 2000.

16. RITCHIE, C. Operating systems: incorporating UNIX and Windows. 4 ed. London: Thompson, 2006.

17. ROJAS, R.; HASHAGEN, U. The first computers: history and architectures. 1 ed. Cambridge, The MIT Press, 2002.

18. SCHACH, S.R. Object-oriented and classical software engineering. 8 ed. New York: McGraw-Hill, 2011.

# data[].attributes.attachment_link.description
Uma breve introdução para a história da informática, onde foram destacadas as principais invenções para suprir as necessidades de uma época onde o computador não existia.