Skip to content · ⁨Pular para o conteúdo⁩

Learn to code · ⁨Aprender a programar⁩

Code · ⁨Código⁩

Write real code and see it run — HTML, CSS, Python, Java, C, SQL, LaTeX, and Linux — with nothing to install. · ⁨Escreva código real e veja-o rodar — HTML, CSS, Python, Java, C, SQL, LaTeX e Linux — sem precisar instalar nada.⁩

17 coursesHTML/CSS · Python · Java · C · SQL · LaTeX · LinuxRuns in your browser · ⁨Roda no seu navegador⁩
Foundations · ⁨Fundamentos⁩
Python Basics · ⁨Noções Básicas de Python⁩
Your very first steps in programming — no experience needed. · ⁨Seus primeiros passos na programação — nenhuma experiência necessária.⁩
22 Lessons · ⁨Lições⁩
Course overview and progress →
JavaScript
The language of the web. Make things happen — runs right in your browser. · ⁨A linguagem da web. Faça coisas acontecerem — roda direto no seu navegador.⁩
15 Lessons · ⁨Lições⁩
C Programming · ⁨Programação em C⁩
From printf to pointers, memory, and data structures — compile and run in your browser. · ⁨De printf a ponteiros, memória e estruturas de dados — compile e execute no seu navegador.⁩
23 Lessons · ⁨Lições⁩
Course overview and progress →
A short history of C · ⁨Uma breve história do C⁩
What C is used for · ⁨Para que o C é usado⁩
Where to learn more · ⁨Onde aprender mais⁩
Set up your computer · ⁨Configure seu computador⁩
C basics: main, printf, and functions · ⁨Básicos de C: main, printf e funções⁩
Variables, types, and arithmetic · ⁨Variáveis, tipos e aritmética⁩
Booleans and selection: if, else, switch · ⁨Booleans e seleção: if, else, switch⁩
Loops: while, for, and accumulation · ⁨Laços: while, for e acumulação⁩
Functions, parameters, and return values · ⁨Funções, parâmetros e valores de retorno⁩
Nested loops and patterns · ⁨Loops aninhados e padrões⁩
1-D arrays: store, index, and traverse · ⁨Arrays 1-D: armazenar, indexar e percorrer⁩
Pointers: &, *, and pass-by-pointer · ⁨Ponteiros: &, *, e passed-by-pointer⁩
Strings: char arrays and the null terminator · ⁨Strings: arrays de chars e terminador nulo⁩
Array algorithms: max, count, search, average · ⁨Algoritmos de array: max, count, search, average⁩
2-D arrays: working with a grid · ⁨Arrays 2-D: trabalhando com uma grade⁩
Searching: linear and binary · ⁨Busca: linear e binária⁩
Sorting: bubble, selection, and insertion · ⁨Ordenação: bubble, selection e insertion⁩
Recursion: base case and recursive case · ⁨Recursão: caso base e caso recursivo⁩
Structs and typedef: . vs -> · ⁨Structs e typedef: . vs ->⁩
Dynamic memory: malloc, free, and realloc · ⁨Memória dinâmica: malloc, free e realloc⁩
Linked lists · ⁨Listas ligadas⁩
Stacks and queues (array-backed) · ⁨Pilhas e filas (backed por array)⁩
Text files: write then read · ⁨Arquivos de texto: escrever depois ler⁩
Error handling with return codes · ⁨Tratamento de erros com códigos de retorno⁩
Bits, binary, and bitwise operators · ⁨Bits, binário e operadores bitwise⁩
Run-length encoding (compression) · ⁨Codificação por repetição (compressão)⁩
Preprocessor, const, static, and enum · ⁨Pré-processador, const, static e enum⁩
Web Basics — HTML & CSS · ⁨Noções de Web — HTML & CSS⁩
Start from zero. Short steps. Build a real web page. · ⁨Comece do zero. Passos curtos. Construa uma página web real.⁩
21 Lessons · ⁨Lições⁩
Course overview and progress →
Exam courses · ⁨Cursos de Exame⁩
Python for IGCSE CS · ⁨Python para IGCSE CS⁩
Programming, algorithms, databases and logic for Cambridge IGCSE 0478. · ⁨Programação, algoritmos, bancos de dados e lógica para Cambridge IGCSE 0478.⁩
14 Lessons · ⁨Lições⁩
IGCSE CS Pseudocode · ⁨Pseudocódigo IGCSE CS⁩
Write and run the pseudocode in the Cambridge IGCSE 0478 syllabus for 2026, 2027 and 2028. · ⁨Escreva e execute o pseudocódigo no currículo Cambridge IGCSE 0478 para 2026, 2027 e 2028.⁩
19 Lessons · ⁨Lições⁩
Course overview and progress →
Python for A-Level CS · ⁨Python para CS Nível A⁩
Data structures, algorithms, and OOP for Cambridge 9618. · ⁨Estruturas de dados, algoritmos e POO para Cambridge 9618.⁩
15 Lessons · ⁨Lições⁩
AS-level CS Pseudocode · ⁨Pseudocódigo CS nível AS⁩
Write and run the pseudocode in the Cambridge 9618 guide for exams in 2026, and for 2027, 2028 and 2029. · ⁨Escreva e execute o pseudocódigo no guia Cambridge 9618 para exames de 2026, e para 2027, 2028 e 2029.⁩
19 Lessons · ⁨Lições⁩
Course overview and progress →
Python for AP CS Principles · ⁨Python para AP CS Principles⁩
Big ideas of computing — data, algorithms, the Internet, and impact. · ⁨Grandes ideias da computação — dados, algoritmos, Internet e impacto.⁩
15 Lessons · ⁨Lições⁩
Java for AP CS A · ⁨Java para AP CS A⁩
Java programming for the AP Computer Science A exam. · ⁨Programação Java para o exame AP Computer Science A.⁩
19 Lessons · ⁨Lições⁩
Course overview and progress →
A short history of Java · ⁨Uma breve história do Java⁩
What Java is used for · ⁨Para que Java é usado⁩
Where to learn more · ⁨Onde aprender mais⁩
Set up your computer · ⁨Configure seu computador⁩
Java basics: classes, main, and output · ⁨Básicos de Java: classes, main e saída⁩
Using objects: String, Math, and wrappers · ⁨Usando objetos: String, Math e wrappers⁩
Booleans and selection: if/else and logic · ⁨Booleans e seleção: if/else e lógica⁩
Loops: while, for, and accumulation · ⁨Laços: while, for e acumulação⁩
Strings and nested loops · ⁨Strings e laços aninhados⁩
Writing a class: fields, constructor, methods · ⁨Escrevendo uma classe: campos, construtor, métodos⁩
Encapsulation: private fields, getters, setters · ⁨Encapsulamento: campos privados, getters, setters⁩
1-D arrays: store, index, and traverse · ⁨Arrays 1-D: armazenar, indexar e percorrer⁩
Array algorithms: max, count, search, average · ⁨Algoritmos de array: max, count, search, average⁩
ArrayList: a list that grows · ⁨ArrayList: uma lista que cresce⁩
ArrayList algorithms: filter and the remove bug · ⁨Algoritmos de ArrayList: filtro e o bug de remove⁩
2-D arrays: working with a grid · ⁨Arrays 2-D: trabalhando com uma grade⁩
Searching: linear and binary · ⁨Busca: linear e binária⁩
Sorting: selection and insertion sort · ⁨Ordenação: selection sort e insertion sort⁩
Recursion: base case and recursive case · ⁨Recursão: caso base e caso recursivo⁩
Text files: write and read with Scanner · ⁨Arquivos de texto: escrever e ler com Scanner⁩
Inheritance: extends, super, and overriding · ⁨Herança: extends, super, e overriding⁩
Polymorphism: dynamic dispatch and toString() · ⁨Polimorfismo: dispatch dinâmico e toString()⁩
FRQ workshop: the 4 question types · ⁨Workshop FRQ: os 4 tipos de questões⁩
Topics & tools · ⁨Tópicos e ferramentas⁩
Databases & SQL · ⁨Bancos de dados e SQL⁩
Query, design, and change relational databases — right in your browser, no setup. · ⁨Consulte, desenhe e altere bancos de dados relacionais — direto no seu navegador, sem configuração.⁩
17 Lessons · ⁨Lições⁩
Course overview and progress →
Linux & the command line · ⁨Linux e a linha de comando⁩
Drive a computer by typing. Practise real shell commands in a safe in-browser terminal. · ⁨Controle um computador digitando. Pratique comandos reais de shell em um terminal seguro no navegador.⁩
14 Lessons · ⁨Lições⁩
Course overview and progress →
LaTeX
Typeset beautiful documents and maths — write LaTeX, compile on our servers, see the PDF. · ⁨Componha belos documentos e expressões matemáticas — escreva LaTeX, compile em nossos servidores, veja o PDF.⁩
14 Lessons · ⁨Lições⁩
Course overview and progress →
Cyber security · ⁨Segurança cibernética⁩
How attacks work and how to stop them — ciphers, hashing, and safe computing, hands-on. · ⁨Como ataques funcionam e como pará-los — cifra, hashing e computação segura, mão na massa.⁩
16 Lessons · ⁨Lições⁩
Course overview and progress →

Practice · ⁨Prática⁩

Sharpen your skills with challenges from 1★ to 5★. Pick a language. · ⁨Aprimore suas habilidades com desafios de 1★ a 5★. Escolha um idioma.⁩

01
Print a word · ⁨Imprimir uma palavra⁩
★☆☆☆☆
02
Print another word · ⁨Imprimir outra palavra⁩
★☆☆☆☆
03
Print a sentence · ⁨Imprimir uma frase⁩
★☆☆☆☆
04
Print with a ! · ⁨Imprimir com um !⁩
★☆☆☆☆
05
Print two lines · ⁨Imprimir duas linhas⁩
★☆☆☆☆
06
Print three lines · ⁨Imprimir três linhas⁩
★☆☆☆☆
07
Print a number · ⁨Imprimir um número⁩
★☆☆☆☆
08
Print a bigger number · ⁨Imprimir um número maior⁩
★☆☆☆☆
09
Add two numbers · ⁨Somar dois números⁩
★☆☆☆☆
10
Add bigger numbers · ⁨Somar números maiores⁩
★☆☆☆☆
11
Subtract · ⁨Subtrair⁩
★☆☆☆☆
12
Multiply · ⁨Multiplicar⁩
★☆☆☆☆
13
Divide · ⁨Dividir⁩
★☆☆☆☆
14
Remainder · ⁨Resto⁩
★☆☆☆☆
15
Use a variable · ⁨Usar uma variável⁩
★☆☆☆☆
16
A number variable · ⁨Uma variável numérica⁩
★☆☆☆☆
17
Change a variable · ⁨Alterar uma variável⁩
★☆☆☆☆
18
Add two variables · ⁨Somar duas variáveis⁩
★☆☆☆☆
19
Multiply two variables · ⁨Multiplicar duas variáveis⁩
★☆☆☆☆
20
Join two words · ⁨Juntar duas palavras⁩
★☆☆☆☆
21
Greet a name · ⁨Saudar um nome⁩
★☆☆☆☆
22
Repeat text · ⁨Repetir texto⁩
★☆☆☆☆
23
Ask for a name · ⁨Perguntar um nome⁩
★☆☆☆☆
24
Echo a number · ⁨Ecoar um número⁩
★☆☆☆☆
105
Call a function · ⁨Chamar uma função⁩
★☆☆☆☆
106
Use what it gives back · ⁨Usar o que ela devolve⁩
★☆☆☆☆
107
Finish the function · ⁨Finalizar a função⁩
★☆☆☆☆
108
Write one yourself · ⁨Escrever uma você mesmo⁩
★★☆☆☆
25
Your first function · ⁨Sua primeira função⁩
★☆☆☆☆
26
Is it positive? · ⁨É positivo?⁩
★☆☆☆☆
27
The bigger one · ⁨O maior deles⁩
★☆☆☆☆
28
The last item · ⁨O último item⁩
★☆☆☆☆
29
Is it even? · ⁨É par?⁩
★☆☆☆☆
30
Sum a list · ⁨Somar uma lista⁩
★☆☆☆☆
31
Reverse a string · ⁨Inverter uma string⁩
★★☆☆☆
32
Count the vowels · ⁨Contar vogais⁩
★★☆☆☆
33
FizzBuzz
★★★☆☆
34
Letter frequencies · ⁨Frequência de letras⁩
★★★☆☆
35
Remove duplicates · ⁨Remover duplicatas⁩
★★★☆☆
36
Second largest · ⁨Segundo maior⁩
★★★☆☆
37
Group anagrams · ⁨Agrupar anagramas⁩
★★★★☆
38
Flatten a nested list · ⁨Achatamento de lista aninhada⁩
★★★★☆
39
RPN calculator · ⁨Calculadora RPN⁩
★★★★★
40
Run-length encoding · ⁨Codificação por comprimento de corrida⁩
★★★★★
41
Count to ten · ⁨Contar até dez⁩
★★☆☆☆
42
Even numbers · ⁨Números pares⁩
★★☆☆☆
43
Liftoff · ⁨Decolagem⁩
★★☆☆☆
44
Star triangle · ⁨Triângulo de estrelas⁩
★★☆☆☆
45
The 3 times table · ⁨A tabela do 3⁩
★★☆☆☆
46
Running total · ⁨Total acumulado⁩
★★★☆☆
47
Largest without max · ⁨Maior sem max⁩
★★★☆☆
48
Smallest without min · ⁨Menor sem min⁩
★★★☆☆
49
Count the positives · ⁨Contar os positivos⁩
★★☆☆☆
50
Average of a list · ⁨Média de uma lista⁩
★★★☆☆
51
Add up 1 to 100 · ⁨Somar de 1 a 100⁩
★★☆☆☆
52
Upside-down triangle · ⁨Triângulo invertido⁩
★★☆☆☆
53
FizzBuzz with 4 and 6 · ⁨FizzBuzz com 4 e 6⁩
★★★☆☆
54
Until you type stop · ⁨Até digitar stop⁩
★★★☆☆
55
A list of squares · ⁨Uma lista de quadrados⁩
★★☆☆☆
56
Count a value · ⁨Contar um valor⁩
★★☆☆☆
57
Keep the evens · ⁨Manter os pares⁩
★★☆☆☆
58
Find the position · ⁨Encontrar a posição⁩
★★★☆☆
59
Smallest and largest · ⁨Menor e maior⁩
★★★☆☆
60
Above average · ⁨Acima da média⁩
★★★☆☆
61
Binary to denary · ⁨Binário para decimal⁩
★★★★☆
62
Denary to binary · ⁨Decimal para binário⁩
★★★★☆
63
Digital root · ⁨Raiz digital⁩
★★★★☆
64
Caesar cipher · ⁨Cifra César⁩
★★★★☆
65
Bank account · ⁨Conta bancária⁩
★★★★☆
66
Transpose a grid · ⁨Transpor uma grade⁩
★★★★☆
67
Most common word · ⁨Palavra mais comum⁩
★★★★★
68
Sieve of Eratosthenes · ⁨Crivo de Eratóstenes⁩
★★★★★
69
A row of Pascal's triangle · ⁨Uma linha do triângulo de Pascal⁩
★★★★★
70
Tic-tac-toe winner · ⁨Vencedor do Jogo da Velha⁩
★★★★★
71
Is it big? · ⁨É grande?⁩
★☆☆☆☆
72
Pass or fail · ⁨Aprovado ou reprovado⁩
★☆☆☆☆
73
Positive, negative or zero · ⁨Positivo, negativo ou zero⁩
★☆☆☆☆
74
The bigger number · ⁨O número maior⁩
★☆☆☆☆
75
Even or odd · ⁨Par ou ímpar⁩
★☆☆☆☆
76
Is it in range? · ⁨Está no intervalo?⁩
★★☆☆☆
77
Free entry · ⁨Entrada livre⁩
★★☆☆☆
78
Grade letter · ⁨Nota em letra⁩
★★☆☆☆
79
Divisible by both · ⁨Divisível por ambos⁩
★★☆☆☆
80
Ticket price · ⁨Preço do ingresso⁩
★★☆☆☆
81
Finish the countdown · ⁨Finalizar a contagem regressiva⁩
★☆☆☆☆
82
The loop that never ends · ⁨O loop que nunca termina⁩
★☆☆☆☆
83
Count up to five · ⁨Contar até cinco⁩
★☆☆☆☆
84
Add up to five · ⁨Somar até cinco⁩
★☆☆☆☆
85
Double until it passes 100 · ⁨Dobrar até passar de 100⁩
★★☆☆☆
86
Stop at the first over fifty · ⁨Parar no primeiro acima de cinquenta⁩
★★☆☆☆
87
Count down in twos · ⁨Contar regressivamente de dois em dois⁩
★★☆☆☆
88
Until they type stop · ⁨Até digitarem stop⁩
★★☆☆☆
89
How many halvings? · ⁨Quantas divisões por dois?⁩
★★☆☆☆
90
A row of the times table · ⁨Uma linha da tabela de multiplicar⁩
★★☆☆☆
91
The first letter · ⁨A primeira letra⁩
★☆☆☆☆
92
The last letter · ⁨A última letra⁩
★☆☆☆☆
93
The first three letters · ⁨As primeiras três letras⁩
★☆☆☆☆
94
How long is it? · ⁨Qual é o tamanho?⁩
★☆☆☆☆
95
Shout it · ⁨Gritar⁩
★☆☆☆☆
96
Initials · ⁨Iniciais⁩
★★☆☆☆
97
Ask for a name · ⁨Perguntar um nome⁩
★☆☆☆☆
98
Ask for two things · ⁨Pedir duas coisas⁩
★☆☆☆☆
99
A number from input · ⁨Um número da entrada⁩
★☆☆☆☆
100
Add two numbers you were given · ⁨Somar dois números fornecidos⁩
★★☆☆☆
101
Each letter on its own line · ⁨Cada letra em sua própria linha⁩
★☆☆☆☆
102
Zero to four · ⁨De zero a quatro⁩
★☆☆☆☆
103
Count the letters · ⁨Contar as letras⁩
★☆☆☆☆
104
Add up one to five · ⁨Somar de um a cinco⁩
★☆☆☆☆
01
Print a word · ⁨Imprimir uma palavra⁩
★☆☆☆☆
02
Print another word · ⁨Imprimir outra palavra⁩
★☆☆☆☆
03
Print a sentence · ⁨Imprimir uma frase⁩
★☆☆☆☆
04
Print with a ! · ⁨Imprimir com um !⁩
★☆☆☆☆
05
Print two lines · ⁨Imprimir duas linhas⁩
★☆☆☆☆
06
Print a number · ⁨Imprimir um número⁩
★☆☆☆☆
07
Add two numbers · ⁨Somar dois números⁩
★☆☆☆☆
08
Subtract · ⁨Subtrair⁩
★☆☆☆☆
09
Multiply · ⁨Multiplicar⁩
★☆☆☆☆
10
Divide · ⁨Dividir⁩
★☆☆☆☆
11
Remainder · ⁨Resto⁩
★☆☆☆☆
12
A number variable · ⁨Uma variável numérica⁩
★☆☆☆☆
13
A text variable · ⁨Uma variável de texto⁩
★☆☆☆☆
14
Add two variables · ⁨Somar duas variáveis⁩
★☆☆☆☆
15
Your first method · ⁨Seu primeiro método⁩
★☆☆☆☆
16
Is it positive? · ⁨É positivo?⁩
★☆☆☆☆
17
Cube a number · ⁨Elevar ao cubo um número⁩
★☆☆☆☆
18
The smaller one · ⁨O menor⁩
★☆☆☆☆
19
Square a number · ⁨Elevado ao quadrado⁩
★☆☆☆☆
20
Largest of three · ⁨Maior de três⁩
★☆☆☆☆
21
Count the vowels · ⁨Contar vogais⁩
★★☆☆☆
22
Reverse the word order · ⁨Inverter a ordem das palavras⁩
★★☆☆☆
23
Palindrome check · ⁨Verificação de palíndromo⁩
★★★☆☆
24
Running sum · ⁨Soma acumulada⁩
★★★☆☆
25
Most frequent character · ⁨Caractere mais frequente⁩
★★★☆☆
26
Binary search · ⁨Busca binária⁩
★★★☆☆
27
Factorial (mind the size) · ⁨Fatorial (cuidado com o tamanho)⁩
★★★★☆
28
Count primes below n · ⁨Contar primos abaixo de n⁩
★★★★☆
29
Roman numerals · ⁨Números romanos⁩
★★★★★
30
Longest common prefix · ⁨Maior prefixo comum⁩
★★★★★
01
Print a word · ⁨Imprimir uma palavra⁩
★☆☆☆☆
02
Print another word · ⁨Imprimir outra palavra⁩
★☆☆☆☆
03
Print a sentence · ⁨Imprimir uma frase⁩
★☆☆☆☆
04
Print with a ! · ⁨Imprimir com um !⁩
★☆☆☆☆
05
Print two lines · ⁨Imprimir duas linhas⁩
★☆☆☆☆
06
Print three lines · ⁨Imprimir três linhas⁩
★☆☆☆☆
07
Print a number · ⁨Imprimir um número⁩
★☆☆☆☆
08
Add two numbers · ⁨Somar dois números⁩
★☆☆☆☆
09
Subtract · ⁨Subtrair⁩
★☆☆☆☆
10
Multiply · ⁨Multiplicar⁩
★☆☆☆☆
11
Remainder · ⁨Resto⁩
★☆☆☆☆
12
A number variable · ⁨Uma variável numérica⁩
★☆☆☆☆
13
Add two variables · ⁨Somar duas variáveis⁩
★☆☆☆☆
14
Multiply two variables · ⁨Multiplicar duas variáveis⁩
★☆☆☆☆
15
Your first function · ⁨Sua primeira função⁩
★☆☆☆☆
16
Is it positive? · ⁨É positivo?⁩
★☆☆☆☆
17
Cube a number · ⁨Elevar ao cubo um número⁩
★☆☆☆☆
18
The smaller one · ⁨O menor⁩
★☆☆☆☆
19
Square a number · ⁨Elevado ao quadrado⁩
★☆☆☆☆
20
Sign of a number · ⁨Sinal de um número⁩
★☆☆☆☆
21
Largest of three · ⁨Maior de três⁩
★★☆☆☆
22
Factorial · ⁨Fatorial⁩
★★☆☆☆
23
Greatest common divisor · ⁨Máximo divisor comum⁩
★★☆☆☆
24
Count the 1-bits · ⁨Contar os bits 1⁩
★★☆☆☆
25
Sum an array · ⁨Soma de um array⁩
★★★☆☆
26
Swap two values · ⁨Trocar dois valores⁩
★★★☆☆
27
String length · ⁨Comprimento de string⁩
★★★☆☆
28
Count a character · ⁨Contar um caractere⁩
★★★☆☆
29
Reverse in place · ⁨Inverter in-place⁩
★★★★☆
30
Palindrome · ⁨Palíndromo⁩
★★★★☆
31
Bubble sort · ⁨Ordenação por bolha⁩
★★★★☆
32
Points with a struct · ⁨Pontos com struct⁩
★★★★☆
33
Binary search · ⁨Busca binária⁩
★★★★★
34
Parse an integer · ⁨Analisar um inteiro⁩
★★★★★
All courses, one page each · ⁨Todos os cursos, uma página cada⁩

Log in or create account · ⁨Entrar ou criar conta⁩

IGCSE, A-Level & AP