Skip to content · ⁨Saltar al contenido⁩

Learn to code · ⁨Aprende 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. · ⁨Escribe código real y hazlo funcionar — HTML, CSS, Python, Java, C, SQL, LaTeX y Linux — sin necesidad de instalar nada.⁩

17 coursesHTML/CSS · Python · Java · C · SQL · LaTeX · LinuxRuns in your browser · ⁨Se ejecuta en tu navegador⁩
Foundations · ⁨Fundamentos⁩
Python Basics · ⁨Introducción a Python⁩
Your very first steps in programming — no experience needed. · ⁨Tus primeros pasos en programación — sin experiencia previa necesaria.⁩
22 Lessons · ⁨Lecciones⁩
Course overview and progress →
JavaScript
The language of the web. Make things happen — runs right in your browser. · ⁨El lenguaje de la web. Haz que las cosas sucedan — se ejecuta directamente en tu navegador.⁩
15 Lessons · ⁨Lecciones⁩
C Programming · ⁨Programación en C⁩
From printf to pointers, memory, and data structures — compile and run in your browser. · ⁨Desde printf hasta punteros, memoria y estructuras de datos: compila y ejecuta en tu navegador.⁩
23 Lessons · ⁨Lecciones⁩
Course overview and progress →
A short history of C · ⁨Una breve historia de C⁩
What C is used for · ⁨¿Para qué se usa C⁩
Where to learn more · ⁨Dónde aprender más⁩
Set up your computer · ⁨Configura tu computadora⁩
C basics: main, printf, and functions · ⁨Fundamentos de C: main, printf y funciones⁩
Variables, types, and arithmetic · ⁨Variables, tipos y aritmética⁩
Booleans and selection: if, else, switch · ⁨Booleanos y selección: if, else, switch⁩
Loops: while, for, and accumulation · ⁨Bucles: while, for y acumulación⁩
Functions, parameters, and return values · ⁨Funciones, parámetros y valores de retorno⁩
Nested loops and patterns · ⁨Bucles anidados y patrones⁩
1-D arrays: store, index, and traverse · ⁨Arreglos 1-D: almacenar, indexar y recorrer⁩
Pointers: &, *, and pass-by-pointer · ⁨Punteros: &, *, y paso por puntero⁩
Strings: char arrays and the null terminator · ⁨Cadenas: arreglos de caracteres y el terminador nulo⁩
Array algorithms: max, count, search, average · ⁨Algoritmos de arrays: max, count, search, average⁩
2-D arrays: working with a grid · ⁨Matrices 2-D: trabajar con una cuadrícula⁩
Searching: linear and binary · ⁨Búsqueda: lineal y binaria⁩
Sorting: bubble, selection, and insertion · ⁨Ordenación: burbuja, selección e inserción⁩
Recursion: base case and recursive case · ⁨Recursión: caso base y caso recursivo⁩
Structs and typedef: . vs -> · ⁨Structs y typedef: . vs ->⁩
Dynamic memory: malloc, free, and realloc · ⁨Memoria dinámica: malloc, free y realloc⁩
Linked lists · ⁨Listas enlazadas⁩
Stacks and queues (array-backed) · ⁨Pilas y colas (respaldadas por array)⁩
Text files: write then read · ⁨Archivos de texto: escribir y luego leer⁩
Error handling with return codes · ⁨Manejo de errores con códigos de retorno⁩
Bits, binary, and bitwise operators · ⁨Bits, binario y operadores bit a bit⁩
Run-length encoding (compression) · ⁨Codificación por longitud de corrida (compresión)⁩
Preprocessor, const, static, and enum · ⁨Preprocesador, const, static y enum⁩
Web Basics — HTML & CSS · ⁨Fundamentos de la Web — HTML & CSS⁩
Start from zero. Short steps. Build a real web page. · ⁨Comienza desde cero. Pasos cortos. Construye una página web real.⁩
21 Lessons · ⁨Lecciones⁩
Course overview and progress →
Exam courses · ⁨Cursos de examen⁩
Python for IGCSE CS · ⁨Python para IGCSE CS⁩
Programming, algorithms, databases and logic for Cambridge IGCSE 0478. · ⁨Programación, algoritmos, bases de datos y lógica para Cambridge IGCSE 0478.⁩
14 Lessons · ⁨Lecciones⁩
IGCSE CS Pseudocode · ⁨Pseudocódigo IGCSE CS⁩
Write and run the pseudocode in the Cambridge IGCSE 0478 syllabus for 2026, 2027 and 2028. · ⁨Escribe y ejecuta pseudocódigo en el programa de Cambridge IGCSE 0478 para 2026, 2027 y 2028.⁩
19 Lessons · ⁨Lecciones⁩
Course overview and progress →
Python for A-Level CS · ⁨Python para CS de A-Level⁩
Data structures, algorithms, and OOP for Cambridge 9618. · ⁨Estructuras de datos, algoritmos y POO para Cambridge 9618.⁩
15 Lessons · ⁨Lecciones⁩
AS-level CS Pseudocode · ⁨Pseudocódigo de CS AS-level⁩
Write and run the pseudocode in the Cambridge 9618 guide for exams in 2026, and for 2027, 2028 and 2029. · ⁨Escribe y ejecuta el pseudocódigo en la guía Cambridge 9618 para los exámenes de 2026, y para 2027, 2028 y 2029.⁩
19 Lessons · ⁨Lecciones⁩
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 ideas de la computación — datos, algoritmos, Internet e impacto.⁩
15 Lessons · ⁨Lecciones⁩
Java for AP CS A · ⁨Java para AP CS A⁩
Java programming for the AP Computer Science A exam. · ⁨Programación en Java para el examen de Computer Science A.⁩
19 Lessons · ⁨Lecciones⁩
Course overview and progress →
A short history of Java · ⁨Una breve historia de Java⁩
What Java is used for · ⁨Para qué se usa Java⁩
Where to learn more · ⁨Dónde aprender más⁩
Set up your computer · ⁨Configura tu computadora⁩
Java basics: classes, main, and output · ⁨Básicos de Java: clases, main y salida⁩
Using objects: String, Math, and wrappers · ⁨Usando objetos: String, Math y envolventes⁩
Booleans and selection: if/else and logic · ⁨Booleanos y selección: if/else y lógica⁩
Loops: while, for, and accumulation · ⁨Bucles: while, for y acumulación⁩
Strings and nested loops · ⁨Cadenas y bucles anidados⁩
Writing a class: fields, constructor, methods · ⁨Escribir una clase: campos, constructor, métodos⁩
Encapsulation: private fields, getters, setters · ⁨Encapsulamiento: campos privados, getters, setters⁩
1-D arrays: store, index, and traverse · ⁨Arreglos 1-D: almacenar, indexar y recorrer⁩
Array algorithms: max, count, search, average · ⁨Algoritmos de arrays: max, count, search, average⁩
ArrayList: a list that grows · ⁨ArrayList: una lista que crece⁩
ArrayList algorithms: filter and the remove bug · ⁨Algoritmos de ArrayList: filtrar y el error de remove⁩
2-D arrays: working with a grid · ⁨Matrices 2D: trabajar con una cuadrícula⁩
Searching: linear and binary · ⁨Búsqueda: lineal y binaria⁩
Sorting: selection and insertion sort · ⁨Ordenación: selección e inserción⁩
Recursion: base case and recursive case · ⁨Recursión: caso base y caso recursivo⁩
Text files: write and read with Scanner · ⁨Archivos de texto: escribir y leer con Scanner⁩
Inheritance: extends, super, and overriding · ⁨Herencia: extends, super y overriding⁩
Polymorphism: dynamic dispatch and toString() · ⁨Polimorfismo: despacho dinámico y toString()⁩
FRQ workshop: the 4 question types · ⁨Taller FRQ: los 4 tipos de preguntas⁩
Topics & tools · ⁨Temas y herramientas⁩
Databases & SQL · ⁨Bases de datos y SQL⁩
Query, design, and change relational databases — right in your browser, no setup. · ⁨Consulta, diseña y modifica bases de datos relacionales directamente en tu navegador, sin configuración previa.⁩
17 Lessons · ⁨Lecciones⁩
Course overview and progress →
Linux & the command line · ⁨Linux y la línea de comandos⁩
Drive a computer by typing. Practise real shell commands in a safe in-browser terminal. · ⁨Controla una computadora escribiendo. Practica comandos reales del shell en una terminal segura dentro del navegador.⁩
14 Lessons · ⁨Lecciones⁩
Course overview and progress →
LaTeX
Typeset beautiful documents and maths — write LaTeX, compile on our servers, see the PDF. · ⁨Crea documentos y matemáticas con estilo — escribe en LaTeX, compila en nuestros servidores y visualiza el PDF.⁩
14 Lessons · ⁨Lecciones⁩
Course overview and progress →
Cyber security · ⁨Ciberseguridad⁩
How attacks work and how to stop them — ciphers, hashing, and safe computing, hands-on. · ⁨Cómo funcionan los ataques y cómo detenerlos — cifrado, hash y computación segura, práctico.⁩
16 Lessons · ⁨Lecciones⁩
Course overview and progress →

Practice · ⁨Práctica⁩

Sharpen your skills with challenges from 1★ to 5★. Pick a language. · ⁨Afina tus habilidades con desafíos de 1★ a 5★. Elige un idioma.⁩

01
Print a word · ⁨Imprimir una palabra⁩
★☆☆☆☆
02
Print another word · ⁨Imprimir otra palabra⁩
★☆☆☆☆
03
Print a sentence · ⁨Imprimir una oración⁩
★☆☆☆☆
04
Print with a ! · ⁨Imprime con !⁩
★☆☆☆☆
05
Print two lines · ⁨Imprimir dos líneas⁩
★☆☆☆☆
06
Print three lines · ⁨Imprimir tres líneas⁩
★☆☆☆☆
07
Print a number · ⁨Imprimir un número⁩
★☆☆☆☆
08
Print a bigger number · ⁨Imprime un número más grande⁩
★☆☆☆☆
09
Add two numbers · ⁨Sumar dos números⁩
★☆☆☆☆
10
Add bigger numbers · ⁨Sumar números más grandes⁩
★☆☆☆☆
11
Subtract · ⁨Restar⁩
★☆☆☆☆
12
Multiply · ⁨Multiplicar⁩
★☆☆☆☆
13
Divide · ⁨Dividir⁩
★☆☆☆☆
14
Remainder · ⁨Residuo⁩
★☆☆☆☆
15
Use a variable · ⁨Usa una variable⁩
★☆☆☆☆
16
A number variable · ⁨Una variable numérica⁩
★☆☆☆☆
17
Change a variable · ⁨Cambiar una variable⁩
★☆☆☆☆
18
Add two variables · ⁨Añadir dos variables⁩
★☆☆☆☆
19
Multiply two variables · ⁨Multiplicar dos variables⁩
★☆☆☆☆
20
Join two words · ⁨Unir dos palabras⁩
★☆☆☆☆
21
Greet a name · ⁨Saludar un nombre⁩
★☆☆☆☆
22
Repeat text · ⁨Repetir texto⁩
★☆☆☆☆
23
Ask for a name · ⁨Pedir un nombre⁩
★☆☆☆☆
24
Echo a number · ⁨Repetir un número⁩
★☆☆☆☆
105
Call a function · ⁨Llamar a una función⁩
★☆☆☆☆
106
Use what it gives back · ⁨Usa lo que devuelve⁩
★☆☆☆☆
107
Finish the function · ⁨Termina la función⁩
★☆☆☆☆
108
Write one yourself · ⁨Escribe uno tú mismo⁩
★★☆☆☆
25
Your first function · ⁨Tu primera función⁩
★☆☆☆☆
26
Is it positive? · ⁨¿Es positivo?⁩
★☆☆☆☆
27
The bigger one · ⁨El mayor⁩
★☆☆☆☆
28
The last item · ⁨El último elemento⁩
★☆☆☆☆
29
Is it even? · ⁨¿Es par?⁩
★☆☆☆☆
30
Sum a list · ⁨Sumar una lista⁩
★☆☆☆☆
31
Reverse a string · ⁨Invertir una cadena⁩
★★☆☆☆
32
Count the vowels · ⁨Contar las vocales⁩
★★☆☆☆
33
FizzBuzz
★★★☆☆
34
Letter frequencies · ⁨Frecuencias de letras⁩
★★★☆☆
35
Remove duplicates · ⁨Eliminar duplicados⁩
★★★☆☆
36
Second largest · ⁨Segundo más grande⁩
★★★☆☆
37
Group anagrams · ⁨Agrupar anagramas⁩
★★★★☆
38
Flatten a nested list · ⁨Aplanar una lista anidada⁩
★★★★☆
39
RPN calculator · ⁨Calculadora RPN⁩
★★★★★
40
Run-length encoding · ⁨Codificación por longitud de carrera⁩
★★★★★
41
Count to ten · ⁨Contar hasta diez⁩
★★☆☆☆
42
Even numbers · ⁨Números pares⁩
★★☆☆☆
43
Liftoff · ⁨Despegue⁩
★★☆☆☆
44
Star triangle · ⁨Triángulo de estrellas⁩
★★☆☆☆
45
The 3 times table · ⁨La tabla del 3⁩
★★☆☆☆
46
Running total · ⁨Total acumulado⁩
★★★☆☆
47
Largest without max · ⁨Más grande sin max⁩
★★★☆☆
48
Smallest without min · ⁨Más pequeño sin min⁩
★★★☆☆
49
Count the positives · ⁨Contar los positivos⁩
★★☆☆☆
50
Average of a list · ⁨Promedio de una lista⁩
★★★☆☆
51
Add up 1 to 100 · ⁨Sumar de 1 a 100⁩
★★☆☆☆
52
Upside-down triangle · ⁨Triángulo invertido⁩
★★☆☆☆
53
FizzBuzz with 4 and 6 · ⁨FizzBuzz con 4 y 6⁩
★★★☆☆
54
Until you type stop · ⁨Hasta que escribas stop⁩
★★★☆☆
55
A list of squares · ⁨Una lista de cuadrados⁩
★★☆☆☆
56
Count a value · ⁨Contar un valor⁩
★★☆☆☆
57
Keep the evens · ⁨Mantener los pares⁩
★★☆☆☆
58
Find the position · ⁨Encontrar la posición⁩
★★★☆☆
59
Smallest and largest · ⁨Más pequeño y más grande⁩
★★★☆☆
60
Above average · ⁨Por encima del promedio⁩
★★★☆☆
61
Binary to denary · ⁨Binario a decimal⁩
★★★★☆
62
Denary to binary · ⁨Decimal a binario⁩
★★★★☆
63
Digital root · ⁨Raíz digital⁩
★★★★☆
64
Caesar cipher · ⁨Cifrado César⁩
★★★★☆
65
Bank account · ⁨Cuenta bancaria⁩
★★★★☆
66
Transpose a grid · ⁨Transponer una cuadrícula⁩
★★★★☆
67
Most common word · ⁨Palabra más común⁩
★★★★★
68
Sieve of Eratosthenes · ⁨Criba de Eratóstenes⁩
★★★★★
69
A row of Pascal's triangle · ⁨Una fila del triángulo de Pascal⁩
★★★★★
70
Tic-tac-toe winner · ⁨Ganador de tic-tac-toe⁩
★★★★★
71
Is it big? · ⁨¿Es grande?⁩
★☆☆☆☆
72
Pass or fail · ⁨Aprobar o suspender⁩
★☆☆☆☆
73
Positive, negative or zero · ⁨Positivo, negativo o cero⁩
★☆☆☆☆
74
The bigger number · ⁨El número mayor⁩
★☆☆☆☆
75
Even or odd · ⁨Par o impar⁩
★☆☆☆☆
76
Is it in range? · ⁨¿Está en el rango?⁩
★★☆☆☆
77
Free entry · ⁨Entrada gratuita⁩
★★☆☆☆
78
Grade letter · ⁨Calificación⁩
★★☆☆☆
79
Divisible by both · ⁨Divisibleible por ambos⁩
★★☆☆☆
80
Ticket price · ⁨Precio de la entrada⁩
★★☆☆☆
81
Finish the countdown · ⁨Terminar el cuenta regresiva⁩
★☆☆☆☆
82
The loop that never ends · ⁨El bucle que nunca termina⁩
★☆☆☆☆
83
Count up to five · ⁨Contar hasta cinco⁩
★☆☆☆☆
84
Add up to five · ⁨Sumar hasta cinco⁩
★☆☆☆☆
85
Double until it passes 100 · ⁨Duplicar hasta que supere 100⁩
★★☆☆☆
86
Stop at the first over fifty · ⁨Detenerse en el primer valor mayor que 50⁩
★★☆☆☆
87
Count down in twos · ⁨Cuenta regresiva de dos en dos⁩
★★☆☆☆
88
Until they type stop · ⁨Hasta que escriban stop⁩
★★☆☆☆
89
How many halvings? · ⁨¿Cuántas divisiones por dos?⁩
★★☆☆☆
90
A row of the times table · ⁨Una fila de la tabla del 3⁩
★★☆☆☆
91
The first letter · ⁨La primera letra⁩
★☆☆☆☆
92
The last letter · ⁨La última letra⁩
★☆☆☆☆
93
The first three letters · ⁨Las primeras tres letras⁩
★☆☆☆☆
94
How long is it? · ⁨¿Cuánto mide?⁩
★☆☆☆☆
95
Shout it · ⁨Grábalo⁩
★☆☆☆☆
96
Initials · ⁨Iniciales⁩
★★☆☆☆
97
Ask for a name · ⁨Solicitar un nombre⁩
★☆☆☆☆
98
Ask for two things · ⁨Solicitar dos cosas⁩
★☆☆☆☆
99
A number from input · ⁨Un número de entrada⁩
★☆☆☆☆
100
Add two numbers you were given · ⁨Sumar dos números que te fueron dados⁩
★★☆☆☆
101
Each letter on its own line · ⁨Cada letra en su propia línea⁩
★☆☆☆☆
102
Zero to four · ⁨De cero a cuatro⁩
★☆☆☆☆
103
Count the letters · ⁨Cuenta las letras⁩
★☆☆☆☆
104
Add up one to five · ⁨Sumar de uno a cinco⁩
★☆☆☆☆
01
Print a word · ⁨Imprimir una palabra⁩
★☆☆☆☆
02
Print another word · ⁨Imprime otra palabra⁩
★☆☆☆☆
03
Print a sentence · ⁨Imprimir una oración⁩
★☆☆☆☆
04
Print with a ! · ⁨Imprimir con un !⁩
★☆☆☆☆
05
Print two lines · ⁨Imprimir dos líneas⁩
★☆☆☆☆
06
Print a number · ⁨Imprimir un número⁩
★☆☆☆☆
07
Add two numbers · ⁨Sumar dos números⁩
★☆☆☆☆
08
Subtract · ⁨Restar⁩
★☆☆☆☆
09
Multiply · ⁨Multiplicar⁩
★☆☆☆☆
10
Divide · ⁨Dividir⁩
★☆☆☆☆
11
Remainder · ⁨Resto⁩
★☆☆☆☆
12
A number variable · ⁨Una variable numérica⁩
★☆☆☆☆
13
A text variable · ⁨Una variable de texto⁩
★☆☆☆☆
14
Add two variables · ⁨Sumar dos variables⁩
★☆☆☆☆
15
Your first method · ⁨Tu primer método⁩
★☆☆☆☆
16
Is it positive? · ⁨¿Es positivo?⁩
★☆☆☆☆
17
Cube a number · ⁨Eleva un número al cubo⁩
★☆☆☆☆
18
The smaller one · ⁨El más pequeño⁩
★☆☆☆☆
19
Square a number · ⁨Elevar al cuadrado un número⁩
★☆☆☆☆
20
Largest of three · ⁨El mayor de tres⁩
★☆☆☆☆
21
Count the vowels · ⁨Contar las vocales⁩
★★☆☆☆
22
Reverse the word order · ⁨Invertir el orden de las palabras⁩
★★☆☆☆
23
Palindrome check · ⁨Verificación de palíndromo⁩
★★★☆☆
24
Running sum · ⁨Suma acumulativa⁩
★★★☆☆
25
Most frequent character · ⁨Carácter más frecuente⁩
★★★☆☆
26
Binary search · ⁨Búsqueda binaria⁩
★★★☆☆
27
Factorial (mind the size) · ⁨Factorial (cuidado con el tamaño)⁩
★★★★☆
28
Count primes below n · ⁨Contar primos menores que n⁩
★★★★☆
29
Roman numerals · ⁨Números romanos⁩
★★★★★
30
Longest common prefix · ⁨Prefijo común más largo⁩
★★★★★
01
Print a word · ⁨Imprimir una palabra⁩
★☆☆☆☆
02
Print another word · ⁨Imprimir otra palabra⁩
★☆☆☆☆
03
Print a sentence · ⁨Imprimir una oración⁩
★☆☆☆☆
04
Print with a ! · ⁨Imprimir con un !⁩
★☆☆☆☆
05
Print two lines · ⁨Imprimir dos líneas⁩
★☆☆☆☆
06
Print three lines · ⁨Imprimir tres líneas⁩
★☆☆☆☆
07
Print a number · ⁨Imprimir un número⁩
★☆☆☆☆
08
Add two numbers · ⁨Sumar dos números⁩
★☆☆☆☆
09
Subtract · ⁨Restar⁩
★☆☆☆☆
10
Multiply · ⁨Multiplicar⁩
★☆☆☆☆
11
Remainder · ⁨Residuo⁩
★☆☆☆☆
12
A number variable · ⁨Una variable numérica⁩
★☆☆☆☆
13
Add two variables · ⁨Sumar dos variables⁩
★☆☆☆☆
14
Multiply two variables · ⁨Multiplicar dos variables⁩
★☆☆☆☆
15
Your first function · ⁨Tu primera función⁩
★☆☆☆☆
16
Is it positive? · ⁨¿Es positivo?⁩
★☆☆☆☆
17
Cube a number · ⁨Elevar al cubo un número⁩
★☆☆☆☆
18
The smaller one · ⁨El menor⁩
★☆☆☆☆
19
Square a number · ⁨Eleva al cuadrado un número⁩
★☆☆☆☆
20
Sign of a number · ⁨Signo de un número⁩
★☆☆☆☆
21
Largest of three · ⁨El mayor de tres⁩
★★☆☆☆
22
Factorial
★★☆☆☆
23
Greatest common divisor · ⁨Máximo común divisor⁩
★★☆☆☆
24
Count the 1-bits · ⁨Contar los bits 1⁩
★★☆☆☆
25
Sum an array · ⁨Sumar un array⁩
★★★☆☆
26
Swap two values · ⁨Intercambiar dos valores⁩
★★★☆☆
27
String length · ⁨Longitud de cadena⁩
★★★☆☆
28
Count a character · ⁨Contar un carácter⁩
★★★☆☆
29
Reverse in place · ⁨Invertir in situ⁩
★★★★☆
30
Palindrome · ⁨Palíndromo⁩
★★★★☆
31
Bubble sort · ⁨Ordenamiento burbuja⁩
★★★★☆
32
Points with a struct · ⁨Puntos con una estructura⁩
★★★★☆
33
Binary search · ⁨Búsqueda binaria⁩
★★★★★
34
Parse an integer · ⁨Analizar un entero⁩
★★★★★
All courses, one page each · ⁨Todos los cursos, una página cada uno⁩

Log in or create account · ⁨Iniciar sesión o crear cuenta⁩

IGCSE, A-Level & AP