You are on page 1of 4

Singing with Loops

Cantando com Laços

Larissa Andrade Silva1 (las@icomp.ufam.edu.br)


Ciência da Computação- 3º Período
ICC102 - Metodologia Científica na Ciência da Computação 2018/01
Professora Rosiane F. Rodrigues1
1
Instituto de Computação – Universidade Federal do Amazonas (UFAM)

TEXTO ORIGINAL
Loops are programming constructs for repeating a set of instructions until a given
termination a criterion is met.
Ann cheered at the sight of the brightly lit inn. A sign by the door read, “One night only! The
world famous bard Larry deLoop!” After another full day of walking, she felt tired and seemed no
closer to finishing her quest. But, at least, she’d found a place to rest. And some cheerful music might
help take her mind off her quest. Ann chose a small table by the stage. After ordering a bowl of
Surprise Stew, regrettably the only item on the menu, she settled in for the show. Though unable to
play even a basic tune on his accordion, Larry deLoop was the most enthusiastic bard Ann had seen.
He belted out three simple songs, then asked for requests. “The Ballad of Lady Algorithm,” called
Ann, wanting to hear the tale of her favorite adventurer.
Larry looked surprised. “I’m sorry miss. I only sing songs in loop form.” “Loop form?” Ann
asked. “I’ve never heard of that style of music.” “It’s quite popular in the North. The songs have to use
either FOR loops or WHILE loops. Loops are constructs for repeating things until some conditions are
met.”
“What?” asked Ann. Naturally she was familiar with the concept of loops. They were a basic
building block of algorithms. She used loops in archery (while you have arrows, shoot at the target),
cooking (stir for two minutes), counting coins (for each coin, add its value to the total), and even
walking (while I’m not there yet, take another step). But she’d never heard of loop-based music.
“I mostly sing in FOR loops,” explained Larry. “A FOR loop iterates over a set number of
things. 99 Bottles of Beer on the Wall uses a FOR loop. FOR each number of bottles from 99 down to
1, sing a verse. Or perhaps you’ve heard of old McDonald’s Farm? FOR each animal on the farm, sing
about the cute noises it makes. Or—“
“Aren’t those songs all quite repetitive?” Ann interrupted. Of course, repetition was precisely
the function of a loop. Larry smiled broadly. “That’s why I also use a WHILE loop. WHILE loops
repeat a set of actions until a condition is met. In my case I always use the same loop: WHILE no one
has thrown a tomato at me, keep singing. So once the first tomato is thrown, I know it's time to stop.”
TRADUÇÃO
Laços são estruturas de programação para repetir um conjunto de instruções até uma
condição de parada for satisfeita.
Ann brilhou ao sinal da pequena pousada iluminada. Uma placa na porta tinha “ Uma noite
apenas! O mundialmente famoso bardo Larry daVoltinha!” Depois de bater perna o dia todo, sentindo
o cansaço e não parecia nem perto de terminar sua ronda. Mas, pelo menos, ela encontrou um local
para ficar. E alguma música das boas para ajudá-la a tirar a cabeça dos problemas.
Ann escolheu a mesa perto do palco. Depois de pedir uma tigela da melhor carne surpresa,
item exclusivo do menu de um, ela se preparou para o show.
Embora incapaz de tocar uma única nota em seu acordeão, Larry daVoltinha era o bardo mais
entusiasmado que Ann já tinha visto. Ele tocou três músicas simples, e depois solicitou por pedidos da
plateia.
“A balada da lady Algoritmo”, pediu Ann, querendo ouvir a música da sua heroína favorita.
Larry pareceu surpreso. “ Perdão senhorita, eu só canto laços”.
“Laços?”, Ann perguntou, “Nunca ouvi esse tipo de música”.
“É um sucesso no Norte! As músicas têm que usar laços para ou enquanto. Laços são construções
para repetir coisas até encontrar uma condição”.
“O quê?” perguntou Ann. Obviamente, ela conhecia o conceito de laços. Eles são os tijolos
dos algoritmos. Ela usou laços no arqueirismo (enquanto você tem flechas. atinja o alvo), ao cozinhar
(fritar por 2 minutos), ao contar moedas (para cada moeda, adicione seu valor ao total) e mesmo para
andar (enquanto eu não chegar lá, andarei mais um passo). Mas nunca tinha ouvido falar de música
baseada em laços.
“Eu, canto principalmente na forma de laços para.”, explicou Larry. “Um laço para itera
sobre um conjunto de coisas. 99 garrafas de cerveja na parede usa um laço para. Para cada número de
garrafas das 99 menos uma, canto um verso. Ou, você já ouviu falar da velha fazenda do McDonald?
Para cada animal da fazenda, cante sobre os barulhos fofos que esses fazem. Ou-”
“Essas canções não são meio repetitivas?” Ann interrompeu. Claro, repetição era
precisamente a função de um laço.
Larry sorriu largamente. “Por isso eu também uso o laço enquanto. Este repete um conjunto
de ações até uma condição ser alcançada. No meu caso, eu sempre uso o mesmo laço. Enquanto
ninguém jogar tomate em mim, continuo cantando. Ao sinal do primeiro tomate, é momento de parar”

RESUMO
Escrito por Jeremy Kubica, o conto apresenta a personagem Ann, que cansada de uma jornada,
encontra uma pousada na qual pode descansar. Incidentalmente, nessa pousada, acontecerá a
apresentação de um bardo que possuía um modo peculiar de fazer música: através de repetições.
Conceitos Usados no conto: Repetições e Tipos de Repetições.

AUTOR
Jeremy Kubica é PhD em Robótica pela Universidade Carnegie Mellon e bacharelado em
Ciência da Computação pela Universidade Cornell. Atualmente, é engenheiro na Google na área de
Aprendizagem de Máquina e Algoritmos.

RESUMO DESCRITIVO
Ann se hospeda em uma pousada, onde aconteceria a apresentação de um Bardo: Larry
daVoltinha. Enquanto janta, durante a apresentação pede ao bardo uma canção de que gosta. O bardo
Larry informa que apenas canta em laços e descreve como os laços funcionam. Ciente de como
funcionam, Ann questiona o quão repetitivo isso seria, assim ele apresenta a condição final para seu
show: tomates.

CRÍTICA
A anedota nos apresenta os laços, uma estrutura bem conhecida dos programadores e
estudantes da computação, e algumas diferenças entre eles. Um conto de compreensão simples, mas
percebemos a perspicácia do autor que usa essas estruturas na construção do conto.
Em vários momentos, tanto Ann como Larry comentam sobre uso da repetição nas ações
diárias, e o motivo dos laços serem os “tijolos” dos algoritmos fica claro. Algoritmos são uma
sequência finita de instruções para resolver um problema, e algumas instruções são um único passo
efetuado repetidamente até alcançar um resultado satisfatório ou uma condição.
O conceito computacional é explorado pelo conto, nos trechos “She used loops in
archery ...” “(for each coin, add its value to the total)” e descrevem várias ações que utilizam
repetições.
Outro ponto relevante é usar a repetição como um estilo de música. A música sempre teve os
laços como parte importante de sua composição. Para renovação de um sentimento, como impacto,
ao contar uma história, os Ritornellos (sinais de laços numa partitura) retornam a música para
algum ponto e repetem o trecho. E ainda, talvez essa seja uma crítica do autor a música pop que
possui fórmulas prontas, com repetições rítmicas, e semelhanças entre os sucessos.
Apesar da ideia agradável, ainda é um conto enfadonho. A história não tem algo que gere
interesse maior em explorar os laços e nem maior profundidades. Ainda assim, é um bom conto para
iniciantes e crianças que estão começando a conhecer princípios computacionais.
REFERÊNCIAS
Singing with Loops. Computational Fairy Tales. Disponível em:
<http://computationaltales.blogspot.com.br/2017/12/singing-with-loops.html>. Acesso em: Abril 2018.
Jeremy Kubica, Amazon Author´s page. Disponível em:
<https://www.amazon.com/Jeremy-Kubica/e/B00957OB3Q>. Acesso em: Abril 2018.

You might also like