Na atualidade, é muito comum utilizarmos o termo algoritmo em um contexto de internet, para nos referirmos àquilo que nos recomendam em uma rede social ou plataforma de streaming. Você provavelmente já reclamou do “seu” algoritmo, por ele oferecer um tipo de conteúdo que você não curte, não é?
No entanto, esta é apenas uma das categorias de algoritmos. Você sabia que toda a vida digital envolve algoritmos? Eles são necessários para que os sistemas operacionais, seja do seu computador ou do celular, funcionem corretamente. Também indicam o caminho que a máquina deve seguir para responder às solicitações do usuário.
Assim, tarefas básicas, como ligar seu notebook e até mesmo acessar a página deste blog, são realizadas por meio das instruções dadas pelos algoritmos. Então, não há como fugir. Para entender mais sobre tecnologia e vida digital, você precisa estar por dentro dos algoritmos.
Para ajudá-lo nesta descoberta, preparamos um artigo completo sobre eles. Aqui, você encontrará uma definição deste conceito, exemplos, benefícios e tipos. Além disso, entenderá como fazer um algoritmo. Confira abaixo!
O que é algoritmo?
No livro Algoritmos, os autores José Augusto Manzano e Jayr Figueiredo de Oliveira afirmam que, em um sentido amplo, algoritmo é um processo sistemático para a resolução de um problema ou uma sequência ordenada de passos a ser observada para a realização de uma tarefa.
O termo é muito utilizado na matemática e na computação. Em ambas, os conceitos são semelhantes. Na primeira área, está associado a um processo de cálculo, o encadeamento de ações necessárias para o cumprimento de uma tarefa. Em suma, é o processo efetivo, que produz solução para um problema em um número finito de etapas.
Já na informática: “[O termo é associado] a um conjunto de regras e procedimentos lógicos perfeitamente definidos que levam à solução de um problema em um número finito de etapas” (MANZANO & OLIVEIRA, 2019, p. 28; destaque nosso).
Isto é, os algoritmos são sequências finitas de instruções, utilizadas a fim de resolver um problema. Por exemplo, quando você acessa um site, os algoritmos definem o caminho para a correta abertura da página. Quando você interage com um link, outros algoritmos são acionados, indicando o que fazer.
Exemplos de algoritmos
Não é só no ambiente digital que os algoritmos estão presentes. Você provavelmente já os usou em diversos momentos da sua vida. Um exemplo, utilizado pelos autores de Algoritmos, é a receita culinária.
Segundo eles, toda receita é dividida em dois blocos de ação:
- Ingredientes: definição dos dados a serem usados e suas quantidades;
- Modo de preparo: programa de ação e sequência das atividades.
Seguindo o roteiro dos ingredientes e do modo de preparo, qualquer pessoa consegue preparar a refeição sem muitas dificuldades. Dessa forma, um problema foi solucionado em uma sequência finita de etapas. A receita é o algoritmo.
Manzano e Oliveira contam que:
“Na atividade de programação de computadores há etapas de trabalho semelhantes às de uma cozinha. O programador de computador é, de certa forma, um ‘mestre-cuca’ da programação, pois prepara o programa a ser utilizado por uma pessoa denominada usuário. O usuário quer consumir, usar um programa como alguém que entra em um restaurante e deseja comer um alimento. Ele não está preocupado com a maneira como o alimento foi preparado (ou como um programa de computador foi escrito), simplesmente quer usá-lo” (MANZANO & OLIVEIRA, 2019, p. 32).
O que é algoritmo da internet?
Todas as atividades de um computador ou smartphone envolvem algoritmos. Desde inicializá-los até acessar a internet, e interagir com os diferentes sites ou aplicativos.
Estes algoritmos são produzidos por profissionais especializados, conhecidos como desenvolvedores. Eles são escritos em uma linguagem de programação específica, que faz com que a máquina obedeça aos comandos.
É como se os desenvolvedores fossem especializados na língua dos computadores, escrevendo instruções de como eles devem performar.
Desse modo, todas as atividades da internet são mediadas por algoritmos. Quando você clica em um link, há um algoritmo específico que recebe aquele clique, faz um processamento para resolver esta tarefa e a soluciona, redirecionando-o a uma página.
A mesma coisa acontece quando você busca por um vídeo no Youtube, e resultados específicos aparecem. Em seguida, outro algoritmo é ativado, quando você clica no vídeo para vê-lo.
Em suma, toda a vida digital envolve estas sequências lógicas a fim de resolver problemas, escritas por desenvolvedores.
Quais são os tipos de algoritmos?
Os quatro tipos de representação mais comuns dos algoritmos são:
- Descrição narrativa;
- Fluxograma;
- Pseudocódigo;
- Linguagem de programação.
Entenda cada um deles em detalhes:
1. Descrição narrativa
O algoritmo é representado textualmente, elencando a sequência de instruções, a fim de resolver um problema. Isto é, a pessoa o escreve com suas próprias palavras.
Um exemplo de descrição narrativa é a receita culinária. Nela, o autor diz textualmente ao cozinheiro como cada etapa deve ser cumprida, a fim de preparar uma refeição.
A principal desvantagem deste tipo de representação de algoritmo é a presença de ambiguidades, e ruídos de comunicação. O texto pode ser interpretado de maneiras diferentes, dificultando a resolução do problema.
2. Fluxograma
O fluxograma utiliza de recursos gráficos, como formas geométricas e setas, e texto, para representar as etapas de resolução de um problema.
Cada forma tem um significado, e o autor também pode colocar texto dentro delas. A principal desvantagem é que a simbologia dos fluxogramas não é universalmente conhecida por todos. Além disso, o nível de detalhe é um pouco menor.
3. Pseudocódigo
O pseudocódigo é a forma de representar o algoritmo que mais se aproxima das linguagens de programação. Por meio dele, você escreve o algoritmo seguindo uma série de regras de linguagem pré-estabelecidas.
De acordo com Manzano e Oliveira, essa técnica visa a ser uma forma preliminar de escrever sem se preocupar com o rigor da linguagem de programação real a ser utilizada.
O pseudocódigo possibilita rapidez na escrita sem se incomodar com os rigores técnicos e sintáticos particulares de cada uma das linguagens de programação existentes. Além disso, por meio dele, fica mais fácil traduzir as informações posteriormente para uma dessas linguagens.
4. Linguagem de programação
Se você tem a solução para um problema em forma de texto, fluxograma ou pseudocódigo, e quer aplicá-la em um software, será necessário traduzir este algoritmo para a linguagem utilizada pelo programa.
Dessa forma, além de ter o passo a passo da solução bem definido, você deverá estar por dentro da sintaxe da linguagem de programação utilizada, sabendo como expressar seu algoritmo por meio dela.
Como se faz um algoritmo?
Como vimos, um algoritmo nada mais é do que uma sequência de passos lógicos e estruturados, a fim de resolver um problema. Sua estrutura costuma ter três propriedades:
- Entrada: dados fornecidos pelo usuário (exemplo: aquilo que é digitado ou selecionado pelo mouse);
- Processamento: passo a passo para resolver um problema;
- Saída: dados já processados, problema resolvido.
No seu dia a dia, você provavelmente utiliza algoritmos, embora não perceba. Pense nas etapas para realizar tarefas domésticas, como lavar a louça e limpar a sua mesa. Ou até mesmo na realização das suas rotinas no trabalho.
Fazer um algoritmo nada mais é do que estruturar este passo a passo para resolução do problema, utilizando, por exemplo, um fluxograma ou pseudocódigo.
Os algoritmos de computadores envolvem esta mesma estrutura, mas as instruções são passadas para uma máquina, com o objetivo de que ela execute uma tarefa. São escritos em uma linguagem de programação específica.
Passo a passo
Em Algoritmos e programação em linguagem C, o professor Renato Soffner afirma que os passos para a construção de qualquer algoritmo são:
- Analisar o problema;
- Identificar as entradas de dados;
- Determinar que transformações devem ser feitas pelo algoritmo (processamento);
- Identificar as saídas (solução);
- Construir o algoritmo com o fluxograma.
Para realizar estas tarefas, as dicas abaixo são essenciais:
- Não se esqueça de demarcar bem todas as etapas. Todo algoritmo tem um início e um fim. Especifique a entrada, processamento e saída;
- Defina cada passo bem, pois ele é um comando;
- Evite textos longos;
- Faça comentários curtos para esclarecer possíveis ruídos de comunicação;
- Atente-se à ordem lógica da sequência de instruções;
- Tente ser claro e detalhista, a fim de evitar erros.
Para treinar, você pode, por exemplo, fazer um algoritmo de como trocar um pneu ou fazer uma boa receita de bolo. Utilize a descrição narrativa ou fluxograma, para estruturá-lo. Se você tem experiência com pseudocódigo, pode também estruturá-lo desta maneira.
Quais são as vantagens dos algoritmos?
Na lista abaixo, confira os benefícios da utilização de algoritmos:
- Automação;
- Curadoria;
- Novas tecnologias.
Leia mais sobre cada um deles:
1. Automação
A primeira vantagem do uso de algoritmos é a automação de tarefas. Eles podem analisar um grande volume de dados, em um tempo menor do que uma pessoa faria, por exemplo. Assim, aumentam a eficiência das atividades.
Todos os softwares de computadores são compostos por algoritmos. Na internet, tudo os envolve também. Por exemplo, quando você está em uma loja on-line e deseja filtrar os produtos.
Ou a pesquisa em sites como o Google. Em um curto espaço de tempo, milhares de dados são analisados, e o usuário encontra resultados que estão em consonância com sua busca.
2. Curadoria
Utilizados em redes sociais, os algoritmos fazem uma espécie de curadoria, recomendando conteúdos que você provavelmente vai curtir.
Para isso, levam em consideração uma série de aspectos, como seu perfil de curtidas, tipo de posts que você visualiza, suas buscas, entre outros.
É uma atividade complexa, mas que torna a sua experiência dentro da mídia social mais agradável. Afinal, aparecem conteúdos do seu gosto. O objetivo é que você permaneça mais tempo conectado.
Conforme veremos adiante, este é um tema complexo, e este tipo de curadoria tem sido alvo de críticas.
3. Novas tecnologias
A evolução dos algoritmos permite o surgimento de novas tecnologias, como smartphones, TVs inteligentes, novos aplicativos e sistemas operacionais. Com novas possibilidades de comandos, os algoritmos ficam mais aprimorados, e, por consequência, novas potencialidades de uso são desenvolvidas.
Pense em todas as novidades tecnológicas dos últimos dez anos, por exemplo. Aplicativos de transporte, de delivery, serviços de streaming e recomendação de filmes e músicas… todos eles são proporcionados por sistemas que funcionam à base de algoritmos.
Em resumo, eles caminham juntos com a inovação.
Quais são as desvantagens dos algoritmos?
As críticas aos algoritmos se concentram, em especial, em suas atividades de curadoria. Como vimos, diversas mídias sociais coletam dados a respeito do comportamento de usuários, com o objetivo de recomendar conteúdos parecidos com o gosto deles.
A meta final é que o internauta passe mais tempo conectado à rede, consumindo não só posts agradáveis, como também as propagandas que financiam a plataforma.
Desse modo, elas incentivam que os usuários passem longos períodos ligados às telas, não considerando os impactos à saúde. Alguns autores afirmam que essa atividade dos algoritmos induzem o vício no celular e podem produzir ansiedade.
Além disso, ao recomendar e priorizar conteúdos do seu gosto, as mídias não abrem espaço para o diferente, e para a controvérsia. Isso é importante, em especial, quando o assunto são notícias. Muitos autores atribuem o recente fenômeno da polarização política à forma como consumimos notícias nas redes.
De todo modo, uma série de movimentos, inclusive dentro da política, vem pedindo por mais transparência no uso dos algoritmos, por parte das empresas de mídias sociais. Assim, garantir que o usuário possa personalizar sua experiência conforme for conveniente.
Esperamos que você tenha gostado deste artigo sobre algoritmos. Que tal conferir este post com 10 excelentes livros de programação?