HardFun Logo
Entrar Criar Conta

Conceitos Básicos

Esta página apresenta os blocos fundamentais sobre os quais qualquer programa no HardFun Logo é construído. Cada conceito é explicado com uma intuição, um exemplo concreto e uma sugestão pedagógica. Ao final de cada categoria, há uma pequena discussão sobre como os blocos daquela categoria se alinham com a BNCC Computação — o complemento à Base Nacional Comum Curricular homologado em 2022, que se tornou obrigatório em todas as escolas brasileiras a partir de 2026 (conforme a Resolução CNE/CEB nº 2/2025).

Os conceitos estão organizados pelas categorias da paleta do editor — Fluxo, Variáveis, Controle, Números, Ensinar e, ao final, Listas e palavras. As categorias Tartaruga, Caneta e Tela não aparecem aqui como conceitos próprios: elas reúnem os blocos concretos que executam ações (mover, desenhar, mudar cor de fundo), e são naturalmente introduzidas pelos exemplos. A lista completa está na Referência de Comandos.

Sobre os exemplos. Os exemplos desta página aparecem no modo código do editor — a forma textual dos programas. Os mesmos exemplos podem ser construídos no modo blocos, arrastando as peças correspondentes da paleta. Os dois modos são equivalentes e o aluno pode alternar entre eles a qualquer momento. Veja a página O Editor para detalhes.

Fluxo de execução

Um programa é, antes de qualquer outra coisa, um fluxo de execução — uma sequência de instruções percorridas em ordem, de cima para baixo. Cada bloco é uma instrução. A tartaruga executa o primeiro, depois o segundo, depois o terceiro — e assim por diante, até o fim.

Esse fluxo é justamente o que se torna explicitamente observável quando o aluno usa o modo Tempo Visível: cada passo registrado na linha do tempo corresponde a uma instrução do fluxo. Por isso, "sequência" e "fluxo" são, neste contexto, dois nomes para a mesma coisa observada de ângulos diferentes — a sequência é a descrição do programa (no editor); o fluxo é a execução do programa (na tela, ao longo do tempo).

Pode parecer trivial, mas é o conceito mais importante da programação inicial. Quando o aluno entende, com clareza, que a ordem dos blocos define o que acontece, todo o resto encaixa mais fácil.

parafrente 100
viradireita 90
parafrente 100

Esse programa desenha um L. Trocar a ordem desses três blocos resulta em um desenho diferente. Vale, na primeira aula, fazer exatamente esse experimento com a turma — embaralhar a ordem e perguntar, antes de executar: "o que vocês acham que vai acontecer?".

Os comandos parafrente e viradireita têm formas curtas: pf e vd. O programa acima também pode ser escrito como pf 100 / vd 90 / pf 100. As duas formas são equivalentes.

Alinhamento com a BNCC Computação. O conceito de fluxo de execução / sequência é a base da habilidade EF01CO03 (no 1º ano: "reorganizar e criar sequências de passos em meios físicos ou digitais, relacionando essas sequências à palavra 'Algoritmos'") e está presente em quase toda habilidade do eixo Pensamento Computacional — particularmente EF06CO02 ("elaborar algoritmos que envolvam instruções sequenciais, de repetição e de seleção usando uma linguagem de programação"), no 6º ano. Tornar o fluxo de execução observável, como o HardFun Logo faz com o Tempo Visível, é uma forma direta de cumprir essas habilidades na prática.

Variáveis

A categoria Variáveis reúne os blocos que permitem guardar valores sob um nome — o primeiro passo do aluno na direção da abstração.

Variáveis

Uma variável é um nome que guarda um valor. Pense nela como uma caixa com etiqueta: a etiqueta é o nome, e dentro da caixa há um número, uma palavra ou outro tipo de informação.

No HardFun Logo, criar e atualizar uma variável é feito com o comando faça. A sintaxe textual segue a tradição Logo: a aspas (") marcam o nome da variável (sem ler o valor), e os dois pontos (:) marcam que queremos ler o valor da variável.

faça "lado 100
parafrente :lado
viradireita 90
parafrente :lado

Lendo em voz alta: "faça a variável de nome lado guardar o valor 100; depois, ande para a frente o valor de lado; gire 90 à direita; ande para a frente o valor de lado de novo."

A grande vantagem das variáveis aparece quando o aluno precisa mudar o tamanho do desenho. Em vez de alterar dois, três, dez blocos, ele altera o valor de :lado em um único lugar — e o programa inteiro se ajusta. Esse é o primeiro encontro do estudante com a ideia de abstração: dar um nome a algo permite tratá-lo como uma unidade.

Alinhamento com a BNCC Computação. A habilidade que ancora o uso de variáveis é EF06CO06, no 6º ano: "Comparar diferentes casos particulares (instâncias) de um mesmo problema [...] e criar um algoritmo para resolver todos, fazendo uso de variáveis (parâmetros) para permitir o tratamento de todos os casos de forma genérica". Essa habilidade descreve, em palavras da BNCC, exatamente o salto pedagógico que a categoria Variáveis viabiliza: o aluno percebe que dar nome a algo permite tratá-lo como uma unidade — movimento fundamental de abstração e generalização.

Controle

A categoria Controle reúne os blocos que moldam o fluxo do programa: repetições e condicionais. Se o programa é uma sequência de instruções, os blocos de Controle são os que determinam quantas vezes uma instrução acontece, em que ordem, e sob que condição.

Repetição

O bloco repita N [...] executa os blocos internos (entre colchetes) N vezes seguidas. Talvez seja o bloco mais empolgante para um iniciante: com ele, o aluno descobre que o computador faz coisas tediosas de forma instantânea, e que descrever um padrão é mais poderoso do que repetir uma instrução.

repita 4 [
  parafrente 100
  viradireita 90
]

Esse programa desenha um quadrado perfeito. Trocar 4 por 3 e 90 por 120 desenha um triângulo equilátero. Trocar por 6 e 60 desenha um hexágono. A relação entre o número de lados e o ângulo (sempre 360° dividido pelo número de lados) é uma porta de entrada natural para uma conversa de geometria — uma das ligações mais fortes que o HardFun Logo cria com o currículo de matemática.

Existe também o laço condicional enquanto, útil para algoritmos que repetem enquanto uma condição for verdadeira — uma forma natural de expressar repetições com fim aberto:

enquanto [coordenadax < 200] [
  parafrente 10
]

Condicionais

O bloco se [condição] [...] executa o código entre colchetes apenas quando a condição é verdadeira. É a primeira forma do programa "tomar decisões" — e o ponto onde a programação começa a se distanciar de uma simples lista de passos.

se [coordenadax > 200] [
  viradireita 180
]

Esse trecho faz a tartaruga "ricochetear": se ela ultrapassou o limite direito da tela, dá meia-volta. O comando coordenadax (também escrito xcor) é uma consulta — devolve a posição X atual da tartaruga.

Há também o bloco se [condição] [...] [...] com duas listas após a condição, que oferece dois caminhos: o primeiro é executado quando a condição é verdadeira, o segundo quando ela é falsa. Essa estrutura é fundamental para programas que reagem a diferentes situações.

Para muitos alunos, condicionais são o primeiro conceito que exige raciocínio em voz alta: "se isso for verdade, então faço isso; caso contrário, faço aquilo". Vale dedicar tempo a essa fala antes de partir para o código.

Alinhamento com a BNCC Computação. A categoria Controle cobre habilidades em todas as etapas da Educação Básica. Para repetição: EF02CO02 (iterações definidas, 2º ano), EF03CO02 (iterações indefinidas com condição, 3º ano), EF04CO03 (repetições aninhadas, 4º ano) e EF15CO02 (algoritmos com sequências, seleções e repetições, agregando o Fundamental I). Para condicionais: EI03CO06 já na Educação Infantil ("compreender decisões em dois estados — verdadeiro ou falso"), EF03CO01 (sentenças lógicas), EF05CO03 (operações de negação, conjunção e disjunção). No 6º ano, EF06CO02 reúne todos esses tipos de instrução em uma linguagem de programação — o que é, na prática, o que o aluno faz em todo programa no HardFun Logo. Esta é a categoria mais "rica" do ponto de vista da BNCC: praticamente todas as habilidades sobre algoritmos do Fundamental podem ser trabalhadas com os blocos daqui.

Números

A categoria Números reúne os blocos que produzem ou manipulam valores numéricos — operações aritméticas, funções matemáticas e geradores de valores como o aleatório.

Aleatoriedade

Programas podem produzir valores aleatórios — números que mudam a cada execução. Isso transforma programas determinísticos (que sempre fazem a mesma coisa) em programas generativos (que produzem algo novo a cada vez que rodam).

No HardFun Logo, o bloco aleatorio N retorna um número inteiro no intervalo [0, N) — ou seja, de 0 até N-1. Para um inteiro entre dois valores específicos, use inteiroentre A B, que retorna um número de A até B (inclusive). Combinado com blocos de cor, movimento ou ângulo, abre o caminho para a arte generativa.

repita 100 [
  mudacor aleatorio 140
  parafrente aleatorio 50
  viradireita aleatorio 360
]
A paleta de cores do HardFun Logo segue a tradição StarLogo/NetLogo: 140 cores organizadas em 14 famílias (cinza, vermelho, laranja, marrom, amarelo, verde, lima, turquesa, ciano, azul céu, azul, violeta, magenta, rosa) × 10 tons cada. Por isso, aleatorio 140 cobre todas as cores disponíveis.

Cada execução produz um desenho diferente. Pedagogicamente, isso costuma ser muito poderoso: o aluno vê seu programa como uma máquina que produz infinitas variações, não como um conjunto fixo de passos.

Alinhamento com a BNCC Computação. O anexo da BNCC Computação não menciona aleatoriedade explicitamente em nenhuma de suas 141 habilidades — uma omissão notável, dada a importância pedagógica do conceito. Entretanto, aleatoriedade é uma extensão natural de EF06CO02 (criar algoritmos em linguagem de programação) e abre caminho para projetos integrados com outras áreas: Arte (composição generativa), Matemática (introdução à probabilidade) e Ciências (modelos estocásticos). Por estar fora da letra da BNCC, mas ser tão produtiva pedagogicamente, é uma categoria onde a escola tem espaço para construir projetos próprios sem amarras curriculares estritas.

Ensinar

A categoria Ensinar é, talvez, a mais simbólica da paleta — e o coração pedagógico da tradição Logo. Nela, o aluno deixa de ser apenas usuário dos blocos da paleta e começa a inventar os próprios, ensinando à tartaruga comandos novos que passam a fazer parte do vocabulário do programa.

O nome da categoria carrega uma dualidade encantadora. No editor visual, a categoria se chama Ensinar — a perspectiva de quem programa: "vou ensinar à tartaruga um comando novo". Mas no código textual, a palavra-chave que abre uma definição é aprenda — a perspectiva da tartaruga: "aprenda a fazer isso". Ensinar e aprender, na linguagem Logo, são duas faces do mesmo gesto.

Procedimentos

Quando um trecho de código é usado várias vezes em pontos diferentes, copiá-lo é uma má ideia: o programa cresce, a leitura se polui e o aluno precisa lembrar de alterar tudo se mudar de ideia.

A solução é ensinar à tartaruga um comando novo — um conjunto de blocos agrupados, batizado com um nome. Depois de ensinado, basta chamar esse nome para executar toda a sequência.

aprenda quadrado
  repita 4 [
    parafrente 100
    viradireita 90
  ]
fim

quadrado
viradireita 30
quadrado

Esse programa desenha dois quadrados girados entre si. O comando quadrado foi criado pelo próprio aluno — virou um bloco novo, parte do vocabulário do programa, parte do que a tartaruga sabe fazer.

Procedimentos também podem receber parâmetros — valores passados na hora da chamada, que ficam disponíveis dentro do procedimento como variáveis locais:

aprenda quadrado :lado
  repita 4 [
    parafrente :lado
    viradireita 90
  ]
fim

quadrado 50
quadrado 100
quadrado 150

Agora o mesmo procedimento desenha quadrados de tamanhos diferentes.

Funções com retorno

Funções se parecem com procedimentos — também são uma forma de ensinar à tartaruga um comando novo —, mas com uma diferença importante: elas devolvem um valor. Em vez de apenas executar uma sequência, uma função produz um resultado que pode ser usado em outra parte do programa.

Use o comando retorna para especificar o valor de saída.

aprenda dobrode :n
  retorna :n * 2
fim

parafrente dobrode 50

Esse programa anda 100 passos. A função dobrode recebeu o número 50, retornou 100, e a tartaruga andou. Funções abrem um mundo: o aluno passa a poder construir suas próprias expressões matemáticas, encadear cálculos e estruturar programas mais elegantes.

Recursão

Recursão é um procedimento que chama a si mesmo dentro da própria definição. À primeira vista parece estranho — como pode algo se executar dentro de si mesmo? Mas é uma das ideias mais poderosas da programação, e foi um dos motivos pelos quais Papert defendia que o Logo permitisse às crianças encontrar conceitos profundos da matemática e da ciência da computação por meio da brincadeira.

A condição essencial para que uma recursão não rode para sempre é ter um caso de parada — uma situação em que o procedimento usa pare para sair, em vez de chamar a si mesmo de novo.

aprenda espiral :lado
  se [:lado > 200] [pare]
  parafrente :lado
  viradireita 90
  espiral :lado + 5
fim

espiral 10

A função espiral desenha uma linha, gira 90°, e chama espiral de novo — com :lado um pouco maior a cada chamada. O resultado é uma espiral quadrada que cresce até atingir o caso de parada (:lado > 200).

A recursão é também a base dos fractais — árvores, flocos de neve, curvas de Koch. Veja a página Para Educadores para sugestões de atividades fractais em sala.

Alinhamento com a BNCC Computação. A categoria Ensinar é onde o pilar de decomposição do Pensamento Computacional se manifesta concretamente. EF03CO03 e EF15CO04 introduzem a estratégia no Fundamental I: "dividir esse problema em partes menores, resolvendo-as e combinando suas soluções". EF06CO04 e EF07CO05 retomam o conceito no Fundamental II, agora exigindo a automatização em uma linguagem de programação e introduzindo a noção de reúso de soluções. Recursão tem habilidade dedicada — EF08CO01, no 8º ano: "Construir soluções de problemas usando a técnica de recursão e automatizar tais soluções usando uma linguagem de programação" — uma das poucas habilidades da BNCC que nomeia uma técnica de programação por seu nome. No Ensino Médio, EM13CO02 explicita a construção por refinamentos sucessivos, "utilizando diversos níveis de abstração desde a especificação até a implementação" — exatamente o que cada procedimento e cada função compõem. Em síntese: a categoria Ensinar carrega o eixo Pensamento Computacional inteiro nos ombros.

Listas e palavras

A linguagem Logo, na sua origem em 1967, era voltada não apenas para números — também para palavras, frases e listas (ver História do Logo). Manipular textos e sequências é uma família de operações tão importante quanto manipular números — e é tratada pela BNCC como o principal conceito de organização da informação a ser desenvolvido ao longo de todo o Fundamental.

Nota sobre disponibilidade. O conjunto atual do HardFun Logo concentra-se em números, controle de fluxo e geometria com a tartaruga. Blocos específicos para manipular palavras e listas — núcleo da tradição Logo original — não fazem parte da versão atual da plataforma. Esta seção descreve o conceito como referência da tradição e ponto de evolução possível.

Uma lista é uma sequência ordenada de elementos. Na sintaxe Logo, listas são delimitadas por colchetes: [1 2 3] é uma lista de números, [gato cachorro pato] é uma lista de palavras, [[1 2] [3 4]] é uma lista de listas.

As operações típicas sobre listas — herdadas da tradição Logo — incluem:

  • pegar o primeiro elemento da lista;
  • pegar o resto da lista (todos os elementos a partir do segundo);
  • saber o tamanho da lista;
  • percorrer a lista, executando algo para cada elemento.

Esses blocos abrem espaço para projetos que envolvem coleções: listas de cores que mudam conforme a tartaruga avança, listas de coordenadas que formam um percurso, palavras que combinam para formar frases. É a porta de entrada para o tipo de programação que Papert e Solomon imaginaram nos primeiros anos do Logo — antes mesmo da chegada da tartaruga.

Alinhamento com a BNCC Computação. Listas são, na BNCC, o principal conceito de organização da informação. EF15CO01 lista, no Fundamental I, "matrizes, registros, listas e grafos" como formas estruturadas de representar informação. EF05CO01 dedica-se especificamente a listas no 5º ano: informação representada através de listas em sequência. No Fundamental II, EF08CO02 prevê uso de listas em programas (com ou sem recursão) e EF08CO03 pede que o aluno saiba aplicar "algoritmos clássicos de manipulação sobre listas". EF09CO01, no 9º ano, expande para árvores e grafos. A tradição Logo já tratava listas e palavras como cidadãs de primeira classe desde 1967 — algo que a BNCC só reconheceu formalmente em 2022.

Em resumo: o eixo do Pensamento Computacional

Os conceitos desta página — fluxo de execução, variáveis, controle (repetição e condicionais), aleatoriedade, ensinar (procedimentos, funções, recursão) e listas — cobrem praticamente qualquer programa que um aprendiz vai querer construir nos primeiros anos de exposição à programação. Para a lista completa de blocos disponíveis na plataforma, veja a Referência de Comandos.

Do ponto de vista da BNCC Computação, todos esses conceitos pertencem ao eixo Pensamento Computacional — o eixo que trata da resolução de problemas com algoritmos, e que reúne quatro pilares: decomposição, reconhecimento de padrões, abstração e algoritmos. Os outros dois eixos da BNCC Computação — Mundo Digital (como funcionam redes, dispositivos, dados) e Cultura Digital (uso ético e crítico das tecnologias) — são complementares e exigem outros tipos de atividade. O HardFun Logo se concentra deliberadamente no primeiro: dar à criança a experiência concreta de construir com algoritmos, antes de teorizar sobre eles.

Com a obrigatoriedade da BNCC Computação a partir de 2026 (Resolução CNE/CEB nº 2/2025), esse eixo deixa de ser opcional na rotina escolar. Os professores e gestores que estão estruturando a integração curricular podem usar o HardFun Logo como um ponto de partida concreto: cada categoria da paleta corresponde a um conjunto de habilidades da BNCC, e cada projeto na plataforma é, na prática, um exercício de algoritmos e Pensamento Computacional.