Skip to content · ⁨Passer au contenu⁩

Learn to code · ⁨Apprendre à coder⁩

Code

Write real code and see it run — HTML, CSS, Python, Java, C, SQL, LaTeX, and Linux — with nothing to install. · ⁨Écrivez du vrai code et voyez-le s'exécuter — HTML, CSS, Python, Java, C, SQL, LaTeX et Linux — sans rien installer.⁩

17 coursesHTML/CSS · Python · Java · C · SQL · LaTeX · LinuxRuns in your browser · ⁨S'exécute dans votre navigateur⁩
Foundations · ⁨Fondations⁩
Python Basics · ⁨Bases Python⁩
Your very first steps in programming — no experience needed. · ⁨Vos tout premiers pas en programmation — aucune expérience requise.⁩
22 Lessons · ⁨Leçons⁩
Course overview and progress →
JavaScript
The language of the web. Make things happen — runs right in your browser. · ⁨Le langage du web. Faites des choses — s'exécute directement dans votre navigateur.⁩
15 Lessons · ⁨Leçons⁩
C Programming · ⁨Programmation C⁩
From printf to pointers, memory, and data structures — compile and run in your browser. · ⁨De printf aux pointeurs, mémoire et structures de données — compilez et exécutez dans votre navigateur.⁩
23 Lessons · ⁨Leçons⁩
Course overview and progress →
A short history of C · ⁨Une courte histoire de C⁩
What C is used for · ⁨Pourquoi utilise-t-on C⁩
Where to learn more · ⁨Où apprendre davantage⁩
Set up your computer · ⁨Configurez votre ordinateur⁩
C basics: main, printf, and functions · ⁨Bases de C : main, printf, et fonctions⁩
Variables, types, and arithmetic · ⁨Variables, types et arithmétique⁩
Booleans and selection: if, else, switch · ⁨Booléens et sélection : if, else, switch⁩
Loops: while, for, and accumulation · ⁨Boucles : while, for et accumulation⁩
Functions, parameters, and return values · ⁨Fonctions, paramètres et valeurs de retour⁩
Nested loops and patterns · ⁨Boucles imbriquées et motifs⁩
1-D arrays: store, index, and traverse · ⁨Tableaux 1-D : stocker, indexer et parcourir⁩
Pointers: &, *, and pass-by-pointer · ⁨Pointeurs : &, *, et passage par pointeur⁩
Strings: char arrays and the null terminator · ⁨Chaînes : tableaux de caractères et terminateur nul⁩
Array algorithms: max, count, search, average · ⁨Algorithmes de tableau : max, count, search, average⁩
2-D arrays: working with a grid · ⁨Tableaux 2-D : travailler avec une grille⁩
Searching: linear and binary · ⁨Recherche : linéaire et binaire⁩
Sorting: bubble, selection, and insertion · ⁨Tri : bulle, sélection et insertion⁩
Recursion: base case and recursive case · ⁨Récursion : cas de base et cas récursif⁩
Structs and typedef: . vs -> · ⁨Structures et typedef : . vs ->⁩
Dynamic memory: malloc, free, and realloc · ⁨Mémoire dynamique : malloc, free, et realloc⁩
Linked lists · ⁨Listes chaînées⁩
Stacks and queues (array-backed) · ⁨Piles et files (basées sur tableau)⁩
Text files: write then read · ⁨Fichiers texte : écrire puis lire⁩
Error handling with return codes · ⁨Gestion des erreurs avec codes de retour⁩
Bits, binary, and bitwise operators · ⁨Bits, binaire et opérateurs bit à bit⁩
Run-length encoding (compression) · ⁨Encodage par compression de suites⁩
Preprocessor, const, static, and enum · ⁨Préprocesseur, const, static et enum⁩
Web Basics — HTML & CSS · ⁨Bases Web — HTML & CSS⁩
Start from zero. Short steps. Build a real web page. · ⁨Commencez de zéro. Étapes courtes. Créez une vraie page web.⁩
21 Lessons · ⁨Leçons⁩
Course overview and progress →
Exam courses · ⁨Cours d'examen⁩
Python for IGCSE CS · ⁨Python pour IGCSE CS⁩
Programming, algorithms, databases and logic for Cambridge IGCSE 0478. · ⁨Programmation, algorithmes, bases de données et logique pour Cambridge IGCSE 0478.⁩
14 Lessons · ⁨Leçons⁩
IGCSE CS Pseudocode · ⁨Pseudocode IGCSE CS⁩
Write and run the pseudocode in the Cambridge IGCSE 0478 syllabus for 2026, 2027 and 2028. · ⁨Écrire et exécuter le pseudocode du programme Cambridge IGCSE 0478 pour 2026, 2027 et 2028.⁩
19 Lessons · ⁨Leçons⁩
Course overview and progress →
Python for A-Level CS · ⁨Python pour A-Level CS⁩
Data structures, algorithms, and OOP for Cambridge 9618. · ⁨Structures de données, algorithmes et POO pour Cambridge 9618.⁩
15 Lessons · ⁨Leçons⁩
AS-level CS Pseudocode · ⁨Pseudocode CS niveau AS⁩
Write and run the pseudocode in the Cambridge 9618 guide for exams in 2026, and for 2027, 2028 and 2029. · ⁨Écrivez et exécutez le pseudocode dans le guide Cambridge 9618 pour les examens de 2026, ainsi que 2027, 2028 et 2029.⁩
19 Lessons · ⁨Leçons⁩
Course overview and progress →
Python for AP CS Principles · ⁨Python pour AP CS Principles⁩
Big ideas of computing — data, algorithms, the Internet, and impact. · ⁨Grandes idées du calcul — données, algorithmes, Internet et impact.⁩
15 Lessons · ⁨Leçons⁩
Java for AP CS A · ⁨Java pour AP CS A⁩
Java programming for the AP Computer Science A exam. · ⁨Programmation Java pour l'examen AP Computer Science A.⁩
19 Lessons · ⁨Leçons⁩
Course overview and progress →
A short history of Java · ⁨Une courte histoire de Java⁩
What Java is used for · ⁨À quoi sert Java⁩
Where to learn more · ⁨Où apprendre davantage⁩
Set up your computer · ⁨Configurez votre ordinateur⁩
Java basics: classes, main, and output · ⁨Bases de Java : classes, main et sortie⁩
Using objects: String, Math, and wrappers · ⁨Utilisation d'objets : String, Math et wrappers⁩
Booleans and selection: if/else and logic · ⁨Booléens et sélection : if/else et logique⁩
Loops: while, for, and accumulation · ⁨Boucles : while, for et accumulation⁩
Strings and nested loops · ⁨Chaînes et boucles imbriquées⁩
Writing a class: fields, constructor, methods · ⁨Écrire une classe : champs, constructeur, méthodes⁩
Encapsulation: private fields, getters, setters · ⁨Encapsulation : champs privés, getters, setters⁩
1-D arrays: store, index, and traverse · ⁨Tableaux 1-D : stocker, indexer et parcourir⁩
Array algorithms: max, count, search, average · ⁨Algorithmes de tableau : max, count, search, average⁩
ArrayList: a list that grows · ⁨ArrayList : une liste qui grandit⁩
ArrayList algorithms: filter and the remove bug · ⁨Algorithmes ArrayList : filtrage et le bug remove⁩
2-D arrays: working with a grid · ⁨Tableaux 2-D : travailler avec une grille⁩
Searching: linear and binary · ⁨Recherche : linéaire et binaire⁩
Sorting: selection and insertion sort · ⁨Tri : selection et insertion sort⁩
Recursion: base case and recursive case · ⁨Récursion : cas de base et cas récursif⁩
Text files: write and read with Scanner · ⁨Fichiers texte : écrire et lire avec Scanner⁩
Inheritance: extends, super, and overriding · ⁨Héritage : extends, super, et overriding⁩
Polymorphism: dynamic dispatch and toString() · ⁨Polymorphisme : dispatch dynamique et toString()⁩
FRQ workshop: the 4 question types · ⁨Atelier FRQ : les 4 types de questions⁩
Topics & tools · ⁨Sujets & outils⁩
Databases & SQL · ⁨Bases de données et SQL⁩
Query, design, and change relational databases — right in your browser, no setup. · ⁨Requête, conception et modification de bases de données relationnelles — directement dans votre navigateur, sans configuration.⁩
17 Lessons · ⁨Leçons⁩
Course overview and progress →
Linux & the command line · ⁨Linux et la ligne de commande⁩
Drive a computer by typing. Practise real shell commands in a safe in-browser terminal. · ⁨Piloter un ordinateur en tapant. Pratiquez de vraies commandes shell dans un terminal sécurisé en navigateur.⁩
14 Lessons · ⁨Leçons⁩
Course overview and progress →
LaTeX
Typeset beautiful documents and maths — write LaTeX, compile on our servers, see the PDF. · ⁨Composez de beaux documents et des maths — écrivez du LaTeX, compilez sur nos serveurs, voyez le PDF.⁩
14 Lessons · ⁨Leçons⁩
Course overview and progress →
Cyber security · ⁨Cybersécurité⁩
How attacks work and how to stop them — ciphers, hashing, and safe computing, hands-on. · ⁨Comment fonctionnent les attaques et comment les stopper — ciphers, hachage et calcul sécurisé, mains sur la pâte.⁩
16 Lessons · ⁨Leçons⁩
Course overview and progress →

Practice · ⁨Pratique⁩

Sharpen your skills with challenges from 1★ to 5★. Pick a language. · ⁨Affinez vos compétences avec des défis de 1★ à 5★. Choisissez une langue.⁩

01
Print a word · ⁨Imprimer un mot⁩
★☆☆☆☆
02
Print another word · ⁨Imprimer un autre mot⁩
★☆☆☆☆
03
Print a sentence · ⁨Imprimer une phrase⁩
★☆☆☆☆
04
Print with a ! · ⁨Imprimer avec un !⁩
★☆☆☆☆
05
Print two lines · ⁨Imprimer deux lignes⁩
★☆☆☆☆
06
Print three lines · ⁨Imprimer trois lignes⁩
★☆☆☆☆
07
Print a number · ⁨Imprimer un nombre⁩
★☆☆☆☆
08
Print a bigger number · ⁨Imprimer un plus grand nombre⁩
★☆☆☆☆
09
Add two numbers · ⁨Additionner deux nombres⁩
★☆☆☆☆
10
Add bigger numbers · ⁨Ajouter de grands nombres⁩
★☆☆☆☆
11
Subtract · ⁨Soustraction⁩
★☆☆☆☆
12
Multiply · ⁨Multiplication⁩
★☆☆☆☆
13
Divide · ⁨Division⁩
★☆☆☆☆
14
Remainder · ⁨Reste⁩
★☆☆☆☆
15
Use a variable · ⁨Utiliser une variable⁩
★☆☆☆☆
16
A number variable · ⁨Une variable numérique⁩
★☆☆☆☆
17
Change a variable · ⁨Modifier une variable⁩
★☆☆☆☆
18
Add two variables · ⁨Additionner deux variables⁩
★☆☆☆☆
19
Multiply two variables · ⁨Multiplier deux variables⁩
★☆☆☆☆
20
Join two words · ⁨Joindre deux mots⁩
★☆☆☆☆
21
Greet a name · ⁨Saluer un nom⁩
★☆☆☆☆
22
Repeat text · ⁨Répéter du texte⁩
★☆☆☆☆
23
Ask for a name · ⁨Demander un nom⁩
★☆☆☆☆
24
Echo a number · ⁨Écho d'un nombre⁩
★☆☆☆☆
105
Call a function · ⁨Appeler une fonction⁩
★☆☆☆☆
106
Use what it gives back · ⁨Utiliser ce qu'elle retourne⁩
★☆☆☆☆
107
Finish the function · ⁨Terminer la fonction⁩
★☆☆☆☆
108
Write one yourself · ⁨Écrire une fonction vous-même⁩
★★☆☆☆
25
Your first function · ⁨Votre première fonction⁩
★☆☆☆☆
26
Is it positive? · ⁨Est-il positif ?⁩
★☆☆☆☆
27
The bigger one · ⁨Le plus grand⁩
★☆☆☆☆
28
The last item · ⁨Le dernier élément⁩
★☆☆☆☆
29
Is it even? · ⁨Est-il pair ?⁩
★☆☆☆☆
30
Sum a list · ⁨Sommer une liste⁩
★☆☆☆☆
31
Reverse a string · ⁨Inverser une chaîne⁩
★★☆☆☆
32
Count the vowels · ⁨Compter les voyelles⁩
★★☆☆☆
33
FizzBuzz
★★★☆☆
34
Letter frequencies · ⁨Fréquences des lettres⁩
★★★☆☆
35
Remove duplicates · ⁨Supprimer les doublons⁩
★★★☆☆
36
Second largest · ⁨Deuxième plus grand⁩
★★★☆☆
37
Group anagrams · ⁨Grouper des anagrammes⁩
★★★★☆
38
Flatten a nested list · ⁨Aplatir une liste imbriquée⁩
★★★★☆
39
RPN calculator · ⁨Calculatrice RPN⁩
★★★★★
40
Run-length encoding · ⁨Encodage par suites⁩
★★★★★
41
Count to ten · ⁨Compter jusqu'à dix⁩
★★☆☆☆
42
Even numbers · ⁨Nombres pairs⁩
★★☆☆☆
43
Liftoff · ⁨Lancement⁩
★★☆☆☆
44
Star triangle · ⁨Triangle d'étoiles⁩
★★☆☆☆
45
The 3 times table · ⁨La table de 3⁩
★★☆☆☆
46
Running total · ⁨Total cumulatif⁩
★★★☆☆
47
Largest without max · ⁨Le plus grand sans max⁩
★★★☆☆
48
Smallest without min · ⁨Le plus petit sans min⁩
★★★☆☆
49
Count the positives · ⁨Compter les positifs⁩
★★☆☆☆
50
Average of a list · ⁨Moyenne d'une liste⁩
★★★☆☆
51
Add up 1 to 100 · ⁨Additionner de 1 à 100⁩
★★☆☆☆
52
Upside-down triangle · ⁨Triangle inversé⁩
★★☆☆☆
53
FizzBuzz with 4 and 6 · ⁨FizzBuzz avec 4 et 6⁩
★★★☆☆
54
Until you type stop · ⁨Jusqu'à ce que vous tapiez stop⁩
★★★☆☆
55
A list of squares · ⁨Une liste de carrés⁩
★★☆☆☆
56
Count a value · ⁨Compter une valeur⁩
★★☆☆☆
57
Keep the evens · ⁨Conserver les pairs⁩
★★☆☆☆
58
Find the position · ⁨Trouver la position⁩
★★★☆☆
59
Smallest and largest · ⁨Le plus petit et le plus grand⁩
★★★☆☆
60
Above average · ⁨Au-dessus de la moyenne⁩
★★★☆☆
61
Binary to denary · ⁨Binaire vers décimal⁩
★★★★☆
62
Denary to binary · ⁨Décimal vers binaire⁩
★★★★☆
63
Digital root · ⁨Racine numérique⁩
★★★★☆
64
Caesar cipher · ⁨Chiffre de César⁩
★★★★☆
65
Bank account · ⁨Compte bancaire⁩
★★★★☆
66
Transpose a grid · ⁨Transposez une grille⁩
★★★★☆
67
Most common word · ⁨Mot le plus fréquent⁩
★★★★★
68
Sieve of Eratosthenes · ⁨Crible d'Ératosthène⁩
★★★★★
69
A row of Pascal's triangle · ⁨Une ligne du triangle de Pascal⁩
★★★★★
70
Tic-tac-toe winner · ⁨Gagnant du morpion⁩
★★★★★
71
Is it big? · ⁨Est-ce grand ?⁩
★☆☆☆☆
72
Pass or fail · ⁨Réussi ou échoué⁩
★☆☆☆☆
73
Positive, negative or zero · ⁨Positif, négatif ou zéro⁩
★☆☆☆☆
74
The bigger number · ⁨Le plus grand nombre⁩
★☆☆☆☆
75
Even or odd · ⁨Pair ou impair⁩
★☆☆☆☆
76
Is it in range? · ⁨Est-il dans l'intervalle ?⁩
★★☆☆☆
77
Free entry · ⁨Accès gratuit⁩
★★☆☆☆
78
Grade letter · ⁨Note alphabétique⁩
★★☆☆☆
79
Divisible by both · ⁨Divisible par les deux⁩
★★☆☆☆
80
Ticket price · ⁨Prix du billet⁩
★★☆☆☆
81
Finish the countdown · ⁨Terminez le compte à rebours⁩
★☆☆☆☆
82
The loop that never ends · ⁨La boucle qui ne finit jamais⁩
★☆☆☆☆
83
Count up to five · ⁨Comptez jusqu'à cinq⁩
★☆☆☆☆
84
Add up to five · ⁨Additionnez jusqu'à cinq⁩
★☆☆☆☆
85
Double until it passes 100 · ⁨Doublez jusqu'à dépasser 100⁩
★★☆☆☆
86
Stop at the first over fifty · ⁨Arrêtez au premier dépassement de cinquante⁩
★★☆☆☆
87
Count down in twos · ⁨Comptez à reculons par deux⁩
★★☆☆☆
88
Until they type stop · ⁨Jusqu'à ce qu'ils tapent stop⁩
★★☆☆☆
89
How many halvings? · ⁨Combien de demi-réductions ?⁩
★★☆☆☆
90
A row of the times table · ⁨Une ligne de la table de multiplication⁩
★★☆☆☆
91
The first letter · ⁨La première lettre⁩
★☆☆☆☆
92
The last letter · ⁨La dernière lettre⁩
★☆☆☆☆
93
The first three letters · ⁨Les trois premières lettres⁩
★☆☆☆☆
94
How long is it? · ⁨Quelle est sa longueur ?⁩
★☆☆☆☆
95
Shout it · ⁨Criez-le⁩
★☆☆☆☆
96
Initials · ⁨Initiales⁩
★★☆☆☆
97
Ask for a name · ⁨Demander un nom⁩
★☆☆☆☆
98
Ask for two things · ⁨Demandez deux choses⁩
★☆☆☆☆
99
A number from input · ⁨Un nombre depuis l'entrée⁩
★☆☆☆☆
100
Add two numbers you were given · ⁨Additionner deux nombres qui vous ont été donnés⁩
★★☆☆☆
101
Each letter on its own line · ⁨Chaque lettre sur sa propre ligne⁩
★☆☆☆☆
102
Zero to four · ⁨De zéro à quatre⁩
★☆☆☆☆
103
Count the letters · ⁨Compter les lettres⁩
★☆☆☆☆
104
Add up one to five · ⁨Additionner de un à cinq⁩
★☆☆☆☆
01
Print a word · ⁨Imprimer un mot⁩
★☆☆☆☆
02
Print another word · ⁨Imprimer un autre mot⁩
★☆☆☆☆
03
Print a sentence · ⁨Imprimer une phrase⁩
★☆☆☆☆
04
Print with a ! · ⁨Imprimer avec un !⁩
★☆☆☆☆
05
Print two lines · ⁨Imprimer deux lignes⁩
★☆☆☆☆
06
Print a number · ⁨Imprimer un nombre⁩
★☆☆☆☆
07
Add two numbers · ⁨Additionner deux nombres⁩
★☆☆☆☆
08
Subtract · ⁨Soustraction⁩
★☆☆☆☆
09
Multiply · ⁨Multiplication⁩
★☆☆☆☆
10
Divide · ⁨Division⁩
★☆☆☆☆
11
Remainder · ⁨Reste⁩
★☆☆☆☆
12
A number variable · ⁨Une variable numérique⁩
★☆☆☆☆
13
A text variable · ⁨Une variable textuelle⁩
★☆☆☆☆
14
Add two variables · ⁨Additionner deux variables⁩
★☆☆☆☆
15
Your first method · ⁨Votre première méthode⁩
★☆☆☆☆
16
Is it positive? · ⁨Est-il positif ?⁩
★☆☆☆☆
17
Cube a number · ⁨Cuber un nombre⁩
★☆☆☆☆
18
The smaller one · ⁨Le plus petit⁩
★☆☆☆☆
19
Square a number · ⁨Carré d'un nombre⁩
★☆☆☆☆
20
Largest of three · ⁨Le plus grand de trois⁩
★☆☆☆☆
21
Count the vowels · ⁨Compter les voyelles⁩
★★☆☆☆
22
Reverse the word order · ⁨Inverser l'ordre des mots⁩
★★☆☆☆
23
Palindrome check · ⁨Vérification de palindrome⁩
★★★☆☆
24
Running sum · ⁨Somme cumulative⁩
★★★☆☆
25
Most frequent character · ⁨Caractère le plus fréquent⁩
★★★☆☆
26
Binary search · ⁨Recherche binaire⁩
★★★☆☆
27
Factorial (mind the size) · ⁨Factorielle (attention à la taille)⁩
★★★★☆
28
Count primes below n · ⁨Compter les nombres premiers inférieurs à n⁩
★★★★☆
29
Roman numerals · ⁨Chiffres romains⁩
★★★★★
30
Longest common prefix · ⁨Plus long préfixe commun⁩
★★★★★
01
Print a word · ⁨Imprimer un mot⁩
★☆☆☆☆
02
Print another word · ⁨Imprimer un autre mot⁩
★☆☆☆☆
03
Print a sentence · ⁨Imprimer une phrase⁩
★☆☆☆☆
04
Print with a ! · ⁨Imprimer avec un !⁩
★☆☆☆☆
05
Print two lines · ⁨Imprimer deux lignes⁩
★☆☆☆☆
06
Print three lines · ⁨Imprimer trois lignes⁩
★☆☆☆☆
07
Print a number · ⁨Imprimer un nombre⁩
★☆☆☆☆
08
Add two numbers · ⁨Additionner deux nombres⁩
★☆☆☆☆
09
Subtract · ⁨Soustraction⁩
★☆☆☆☆
10
Multiply · ⁨Multiplication⁩
★☆☆☆☆
11
Remainder · ⁨Reste⁩
★☆☆☆☆
12
A number variable · ⁨Une variable numérique⁩
★☆☆☆☆
13
Add two variables · ⁨Additionner deux variables⁩
★☆☆☆☆
14
Multiply two variables · ⁨Multiplier deux variables⁩
★☆☆☆☆
15
Your first function · ⁨Votre première fonction⁩
★☆☆☆☆
16
Is it positive? · ⁨Est-il positif ?⁩
★☆☆☆☆
17
Cube a number · ⁨Cuber un nombre⁩
★☆☆☆☆
18
The smaller one · ⁨Le plus petit⁩
★☆☆☆☆
19
Square a number · ⁨Carré d'un nombre⁩
★☆☆☆☆
20
Sign of a number · ⁨Signe d'un nombre⁩
★☆☆☆☆
21
Largest of three · ⁨Le plus grand de trois⁩
★★☆☆☆
22
Factorial · ⁨Factorielle⁩
★★☆☆☆
23
Greatest common divisor · ⁨Plus grand commun diviseur⁩
★★☆☆☆
24
Count the 1-bits · ⁨Compter les bits 1⁩
★★☆☆☆
25
Sum an array · ⁨Somme d'un tableau⁩
★★★☆☆
26
Swap two values · ⁨Échanger deux valeurs⁩
★★★☆☆
27
String length · ⁨Longueur de chaîne⁩
★★★☆☆
28
Count a character · ⁨Compter un caractère⁩
★★★☆☆
29
Reverse in place · ⁨Inverser in place⁩
★★★★☆
30
Palindrome
★★★★☆
31
Bubble sort · ⁨Tri à bulles⁩
★★★★☆
32
Points with a struct · ⁨Points avec un struct⁩
★★★★☆
33
Binary search · ⁨Recherche binaire⁩
★★★★★
34
Parse an integer · ⁨Analyser un entier⁩
★★★★★
All courses, one page each · ⁨Tous les cours, une page chacun⁩

Log in or create account · ⁨Se connecter ou créer un compte⁩

IGCSE, A-Level & AP