Quando eu era pequena, minha avó costumava me levar para comprar doces numa padaria não muito longe de casa. No meio do caminho, tinha um campinho de futebol, que sempre estava vazio durante a semana, então caminhávamos na diagonal do retângulo formado pelo campo. Minha avó dizia que assim estávamos economizando tempo, já que o tamanho da diagonal de um triângulo retângulo nunca é maior que a soma dos tamanhos dos catetos. Como inspiradora professora de matemática que ela era, me deu a seguinte explicação:

Figura 1 – Uma prova matemática para o que minha avó dizia.

Depois de um tempo passei a pensar se não existiria um “caminho mais curto” que pudesse ser provado matematicamente para outras atividades do dia-a-dia, que tornassem-as mais eficientes. Por exemplo, já pararam para pensar no caminho que faz um elevador quando muitas pessoas o chamam ao mesmo tempo? Na sincronia em que os semáforos abrem e fecham? Na ordem em que são chamadas as pessoas numa fila de banco? Nas rotas dos ônibus urbanos? Tudo está sendo realizado da forma mais eficiente possível? Será que existe uma fórmula matemática por trás de tudo isso?

Assim, sem perceber, já estamos pensando em algoritmos, ou seja, numa série específica de ações que devem ser executadas para obtermos determinado resultado da forma mais eficiente possível. O termo algoritmo é utilizado principalmente por cientistas da computação, matemáticos e estatísticos. Tais profissionais se utilizam de um embasamento teórico para apontar sequências de ações para realização eficiente de tarefas (como o que minha avó fez).  Além disso, uma vez que elaboramos as instruções, não necessariamente somos nós que precisamos executá-las, podemos passar a “receita” para outras pessoas ou até melhor… para máquinas! Atualmente, temos máquinas capazes de executar algoritmos que realizam todas as tarefas citadas acima e muito mais.

Essa ideia de unir instruções diversas a máquinas já dura mais de 170 anos. O primeiro algoritmo foi elaborado pela visionária Ada Lovelace em 1843. Alguns anos antes, em 1833, Ada se encantou com a elegante demonstração da máquina diferencial construída por Charles Babbage, uma poderosa calculadora. Ela já imaginava o impacto que haveria no nosso cotidiano quando fossemos capazes de unir instruções com tais máquinas, de forma que elas executassem tarefas sem a necessidade de grande esforço humano. Com suas ideias, Ada se tornou pioneira no estudo de algo que hoje denominamos software, ou seja, no gerenciamento de máquinas, enquanto que o Babbage foi pioneiro na área de hardware, que consiste na construção da máquina em si.

Não era para menos que Ada tivesse um espírito apaixonado e criativo, ela tinha uma grande admiração pela figura de seu pai, o famoso poeta de romantismo Lord Byron, com o qual só conviveu nos seus primeiros meses vida. Após a separação de seus pais, sua mãe, Anne Isabella Milbanke (Annabella), passou a condenar o estilo de vida do Lord e temia que Ada herdasse tais costumes imorais. Então, na tentativa de reprimir qualquer lado artístico semelhante ao do pai, Annabella incentivou Ada a estudar matemática desde criança. Mal sabia ela que Ada se atreveria a fazer uma poderosa mistura da criatividade artística da poesia com o pensamento lógico proporcionado pela matemática.

Assim, Ada nutria apaixonadamente algo que ela mesma denominou de ciência poética. Era capaz de entender que a matemática estava por toda parte, e que, com as devidas instruções, máquinas poderiam realizar feitos inimagináveis. Em conjunto com Babbage, ela tinha ideias para uma nova máquina, denominada de  máquina analítica, que serviria para propósitos mais generalizados. Quase como uma profecia, escreveu que máquinas seriam capazes de criar até mesmo música.

Pois é Ada, você não poderia estar mais certa. Aqui estamos, 170 anos depois, com acesso a programas como o google Magenta, capazes de elaborar melodias inteiras com base em algoritmos sofisticados (se ficou curiosa/o, a música “Daddy’s Car” é um exemplo).

A máquina análitica não chegou a ser construída na época, pois o governo inglês considerou desperdício de dinheiro e cortou os investimentos. Por ser mulher, Ada não tinha participação política alguma e Babbage não tinha uma personalidade persuasiva (nem agradável) capaz de reconquistar os investimentos. As ideias escritas por eles foram utilizadas quase 100 anos mais  tarde, por Alan Turing, para construir o primeiro modelo de computador como conhecemos hoje.

Atualmente, seguindo as “profecias” de Ada, temos utilizado algoritmos para feitos cada vez mais incríveis, como: realizar previsões de tempo, comandar robôs para tarefas domésticas, automatizar meios de transporte, para nos relacionarmos em redes sociais, para realização de compras e vendas, para resolução de crimes, para diagnóstico de doenças, para melhoramentos genético de culturas na agronomia, entre diversos outros.

Na época de Ada e Babbage a forma de transmitir os algoritmos para as máquinas era baseada em movimentos de alavancas que ligavam e desligavam circuitos da máquina, conforme a operação que se desejava realizar. Desde lá, as máquinas foram modernizadas e também foram diversificadas as formas de nos comunicarmos com elas: primeiro com a linguagem de máquina, que tem base binária (0 e 1) e é diretamente executada pelas máquinas e, depois, com linguagens de maior nível de abstração, ou seja, que se distanciam dessa linguagem binária e se tornam mais semelhantes  à nossa (não a nossa exatamente, pois grande parte delas é baseada no inglês).

Hoje temos uma diversidade enorme de linguagens que podemos usar para construir nossos algoritmos, e elas não são tão difíceis de compreender, nem por nós nem pelas máquinas, de tal maneira que a programação em máquinas tem mediado complexos e produtivos diálogos entre nós e elas – como os diversos exemplos já citados acima. E, talvez, com o acelerado desenvolvimento de tecnologias, valha muito a pena todos nós entrarmos nessa conversa. E, por fim, fica aqui a dica de que existem diversos cursos gratuitos online que ensinam essas linguagens e suas aplicabilidades, basta você buscar em plataformas como o coursera, alura ou edx, entre diversas outras.

 Cristiane Hayumi Taniguti

Doutoranda em Genética e Melhoramento de Plantas – ESALQ/USP

email chtaniguti@usp.br

Referências

BBC documentary: Calculating Ada – The Countess of Computing 2015 (https://www.youtube.com/watch?v=QgUVrzkQgds)

Herremans D, Chuan C & Chew E. 2017. A functional Taxonomy of Music Generation Systems. ACM Computing Surveys. 50, 5, Article 69.

A.Lovelace. 1843. Notes on L. Menabreas sketch of the analytical engine invented by Charles Babbage, Esq. Taylors Sci.Mem.3 (1843). (http://www.fourmilab.ch/babbage/sketch.html)

Hutson, Matthew. 2017. How Google is making music with artificial intelligence. Science. (http://www.sciencemag.org/news/2017/08/how-google-making-music-artificial-intelligence)

Magenta: Music and Art Generation with Machine Intelligence (https://magenta.tensorflow.org/)

Música  “Daddy’s Car” (https://www.youtube.com/watch?v=LSHZ_b05W7o)

Coursera | Online Courses From Top Universities (https://www.coursera.org/)

edX | Free online courses from the world’s best universities (https://www.edx.org/)

Alura Cursos Online Tecnologia | É hora de Decolar sua Carreira (www.alura.com.br)

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.