Introdução à Ciência da Computação e Algoritmos

Informática Avançada

1 Definição de Algoritmo

Quando se fala em algoritmo, muitas pessoas pensam rapidamente em computadores, tecnologia e até mesmo códigos difíceis de serem compreendidos. No entanto, o conceito e a aplicação são bem mais simples do que parecem.

Os algoritmos datam de tempos babilônicos, mas tornaram-se mais conhecidos na modernidade, principalmente, quando associados aos computadores e às estratégias de otimização para buscadores.

O que é, e como funciona o algoritmo?

Um algoritmo é uma sequência de raciocínios, instruções ou operações para alcançar um objetivo, sendo necessário que os passos sejam finitos e operados sistematicamente. Um algoritmo, portanto, conta com a entrada (input) e saída (output) de informações mediadas pelas instruções.

Parece complexo? Calma, vamos simplificar. Alguns exemplos de algoritmos que podemos citar são: receitas culinárias, manual de instrução de aparelhos, funções matemáticas e até mesmo páginas da Web, como esta que você está lendo.

Pense na receita culinária, por exemplo. Ela tem os ingredientes necessários (dados de entrada), passo a passo para realizar a receita (processamento ou instruções lógicas) e atinge um resultado (o prato finalizado). 

2 Exemplos de Algoritmos

Os algoritmos computacionais  podem processar muitos tipos diferentes de dados, executando com eles diferentes operações. Tudo dependerá da necessidade da aplicação e da criatividade ou talento do desenvolvedor.

Os algoritmos computacionais funcionam em um sistema input > output.

Entre o input e o output, o executa diferentes processos (operações) para transformar um valor em outro.

Além disso, os algoritmos sempre são determinísticos (isto é, você sempre sabe qual o próximo passo) e também finitos (eles precisam ter um início e um fim, mesmo que seja repetido em loops).

Algoritmos em motores de busca (Google)

Um dos exemplos mais lembrados é o algoritmo do motor de busca do Google, que realiza diversas operações para organizar a maneira como o resultado das pesquisas aparecem para o usuário.

Quando um usuário pesquisa no Google por uma palavra-chave, como "o que é democracia", a ordem dos resultados mostrados depende de diversos cálculos que o algoritmo realizou para colocá-los naquela posição.

Esses cálculos estão baseados em diversas variáveis, como a qualidade e a atualidade do conteúdo, a qualidade do site onde está o conteúdo e quanto tempo as pessoas costumam ficar naquela página.

O algoritmo do Google é bastante complexo e de tempos em tempos é atualizado, de modo a oferecer uma melhor experiência e apresentar os melhores resultados para os usuários.

Algoritmos em redes sociais

As redes sociais também são programadas com complexos algoritmos. Os feeds do FacebookInstagram Twitter, por exemplo, mostram postagens e anúncios conforme o comportamento do usuário.

Isso significa que nem todas as postagens de seus amigos irão aparecer no seu feed. Os algoritmos dessas redes sociais selecionam as que fazem mais sentido conforme a sua preferência.

O algoritmo do Facebook, chamado de EdgeRank, por exemplo, seleciona os conteúdos mais relevantes para você de acordo com diversos fatores, como:

  • Publicações e páginas que você curte;
  • Pessoas com quem você interage;
  • Páginas em que você deixa comentários;
  • Seus compartilhamentos.

Spotify é outro exemplo de aplicativo e rede social que utiliza algoritmos para oferecer aos usuários uma experiência mais personalizada. Todas as semanas o aplicativo oferece uma playlist chamada “Descobertas da semana”.

Essa playlist contém 30 músicas que nunca foram tocadas pelo usuário no aplicativo, mas que são parecidas com outras músicas que ele costuma ouvir.

O objetivo é apresentar para o usuário as músicas e bandas que ele ainda não conhece, mas que provavelmente são compatíveis com o seu gosto musical.

Os algoritmos utilizados pelas redes sociais também podem sofrer mudanças. Um bom exemplo disso é o Youtube: inicialmente, a plataforma priorizava os vídeos com o maior número de visualizações.

3 Algoritmos na Computação

Algoritmo é um conceito muito importante para a programação, pois todas as máquinas e programas de computador funcionam a partir de sequências de ações finitas que levam à realização de uma tarefa.

O papel do programador é pensar em todas as etapas das tarefas e descrevê-las de maneira objetiva e clara para que o computador possa realizá-las.

Um exemplo seria um programa que mostra se um aluno foi aprovado ou não em determinada disciplina. Considerando que a nota final seja a média das duas provas realizadas no semestre, os comandos seriam:

  1. Coletar a nota nas duas provas realizadas;
  2. Calcular a média aritmética entre elas;
  3. Se o resultado for maior que 7, o aluno foi aprovado;
  4. Se o resultado for menor que 7, o aluno foi reprovado.

No entanto, os computadores não entendem a linguagem escrita dessa maneira, por isso os programadores devem "traduzir" esses comandos para linguagens de programação. Alguns exemplos de linguagem de programação são:

  • Java
  • Linguagem C
  • Linguagem C++
  • Linguagem C#
  • Python

As operações de um algoritmo são realizadas de maneira muito rápida pelas máquinas. Um notebook comum, por exemplo, costuma fazer mais de um bilhão de operações por segundo.

Essa velocidade de operação revolucionou o mundo computacional, pois as máquinas podem fazer em pouquíssimo tempo cálculos que o ser humano levaria dias, meses ou até mesmo anos para realizar.

Aplicação do algoritmo no dia a dia

Os algoritmos surgem na matemática para descrever as regras para as equações algébricas, mas eles podem ser aplicados a qualquer sequência de ações finitas que busquem a resolução de um problema.

Todas as tarefas que executamos no dia a dia podem ser transformadas em algoritmos, basta destrinchar todas as ações necessárias para se chegar ao objetivo determinado.

Se fizéssemos um algoritmo para o preparo do café, por exemplo, poderíamos ter as seguintes etapas:

  1. ferver a água;
  2. colocar o pó no filtro;
  3. desligar a água;
  4. passar a água pelo pó de café.

Os algoritmos utilizados em computadores são mais complexos e também envolvem possibilidades. Considere o exemplo de um mouse sobre um navegador de internet.

O comando de fechar a tela é dado por um algoritmo que entende que:

  • Se o mouse clicar no “x”, a página deve ser fechada;
  • Se o mouse não clicar no “x”, nada deve ser feito.