Est. 2009 Beginner

AlgoBox

AlgoBox is a free French-language algorithmic pseudo-code environment, written by a lycee mathematics teacher in 2009, that let an entire generation of French secondary students write their first program by clicking buttons rather than typing syntax.

Created by Pascal Brachet

Paradigm Procedural and structured: a small imperative pseudo-code with variables, assignment, conditionals, counted and conditional loops, and local functions including recursive ones. Deliberately French-language and deliberately minimal - there are no objects, no modules and no user-defined types
Typing Static declaration of three built-in types (NOMBRE, LISTE, CHAINE); no user-defined types
First Appeared 2009
Latest Version 1.1.1 (current on the project site since at least January 2023)

AlgoBox is a free, cross-platform environment for writing and running algorithms in a small French-language pseudo-code. It was written in 2009 by Pascal Brachet, a mathematics teacher at the Lycee Bernard Palissy in Agen, and it exists for one reason: in that year the French national mathematics programme introduced algorithmics into the seconde year, and several hundred thousand fifteen-year-olds - along with their mathematics teachers, most of whom were not programmers - suddenly needed a way to write their first program.

Brachet’s answer was unusual. Rather than simplify an existing language, he built an environment in which, by default, you do not type code at all. You click a button labelled Declarer nouvelle variable, or AFFECTER valeur a variable, and the corresponding line appears in a structured tree. The commands are in French. The blocks cannot be malformed, because the editor will not let you build one that is. For roughly eight years this was, in practice, the first programming language of the French school system.

History and Origins

The 2009 reform of the French seconde mathematics programme made algorithmics a required strand for the first time. It did not name a language. That freedom was, for most teachers, a problem rather than a gift: the existing options were general-purpose languages with English keywords, installation requirements, and error messages that assumed you already knew what a syntax error was.

Brachet - who had already written and given away Texmaker, a widely used cross-platform LaTeX editor - released AlgoBox under the GPL in 2009. The project’s download archive goes back to version 0.1, and the site has carried a 2009 copyright notice ever since; the changelog lists versions in order but attaches no dates to them, so the ordering below is anchored to archived snapshots of the download page rather than to announced release dates. (Some catalogues give an earlier date; the primary evidence on the project’s own site points to 2009, and French Wikipedia’s first-version field is left blank.) The front page of the first archived version describes the software plainly as being dans l’esprit du nouveau programme de seconde - in the spirit of the new seconde programme. It was never a general-purpose language project. It was a targeted answer to a specific curriculum change.

Adoption was fast, and it came through official channels: an EPI review in February 2010, a listing on Sialle (the Education Ministry’s free-software catalogue run by Reseau Canope), a growing bank of activities on Eduscol’s EDU’Bases, and eventually inclusion in the textbooks themselves. By the mid-2010s, AlgoBox syntax was close enough to the pseudo-code printed in baccalaureat papers that the distinction hardly mattered to students.

Design Philosophy

The instructions are in French. Every structural keyword - LIRE, AFFICHER, PREND_LA_VALEUR, SI ... ALORS, TANT QUE, POUR ... ALLANT DE ... A, DEBUT_ALGORITHME, FIN_ALGORITHME - is a French word or phrase. Only the mathematical functions keep their conventional names. The premise is that a student should not have to translate before they can think.

Structure before syntax. In the default normal mode, code is assembled from buttons into a hierarchical tree, and much of it is inserted automatically. Deleting the header line of a SI, POUR or TANT QUE deletes the whole block with it, because the block is the unit. As the manual puts it, the user’s activity consists more in thinking about which instructions to use than in lining up lines of code. Syntax errors are largely designed out rather than diagnosed.

Guardrails on execution. Loops carry a hard iteration ceiling - 200,000 from version 0.4, raised in 0.6 to 500,000 per loop and 5 million across the whole algorithm, and made configurable from the Options menu in 0.8. An infinite loop in a classroom is not an interesting learning moment; it is a machine that has to be rebooted before the bell.

An escape hatch for the fluent. A editeur de texte mode lets advanced users type code directly, with syntax highlighting, autocompletion and find-and-replace. The training wheels come off without changing language.

No environment to install. AlgoBox is a single self-contained program requiring no interpreter, no PATH, and no administrator rights - it can be installed on a school network by a teacher, or run from a USB stick. In 2009 this was arguably as important as anything in the language design.

Key Features

A minimal complete program, in the language’s own rendering:

VARIABLES
  x EST_DU_TYPE NOMBRE
  y EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
  LIRE x
  y PREND_LA_VALEUR 3*x+4
  AFFICHER y
FIN_ALGORITHME

The type system has exactly three members, all built in:

TypeHolds
NOMBREA single number (integers and reals are not distinguished)
LISTEA numbered list of numbers, indexed as maliste[3]
CHAINEA character string

Control flow is equally small: SI ... ALORS with an optional SINON, a counted loop POUR la variable ALLANT DE ... A ... whose counter always steps by 1, and TANT QUE. Conditions use C-style comparison operators (==, !=, <=) combined with the French ET and OU.

Beyond that, the environment supplies what a mathematics classroom actually needs:

  • A statistics and probability library. ALGOBOX_MOYENNE, ALGOBOX_VARIANCE, ALGOBOX_ECART_TYPE, ALGOBOX_MEDIANE and quartile functions operate on a range of a list. ALGOBOX_LOI_BINOMIALE, ALGOBOX_LOI_NORMALE and their inverses cover the probability distributions in the terminale programme, and ALGOBOX_ALEA_ENT(p,n) gives random integers for simulation work.
  • A plotting pane. Enabling Utiliser un repere attaches a coordinate grid to the test window, and TRACER POINT / TRACER SEGMENT draw into it from inside the algorithm.
  • A function F1. A numeric function of x, entered separately from the algorithm and callable as F1(nb); a second such function, F2, was added later. This is a direct model of how functions are written in a mathematics class rather than in a programming one.
  • Local functions. The 1.0 release added user-defined local functions with their own local variables and a RENVOYER statement, including recursive ones - a capability still headlined on the project’s front page.
  • A pedagogical step mode. Running pas a pas highlights the current line in red, announces entry to and exit from every block, and prints the complete state of every variable after any instruction that could have changed one. It is a debugger designed to teach what execution is, not to find bugs.
  • Export routes out. Algorithms export to plain text, to LaTeX (for teachers writing worksheets), to PDF including outputs and graphics, and to a self-contained web page in which the algorithm still runs.

That last export is a tell about the implementation. Expressions in AlgoBox use Math.PI, random(), chaine.substr(...), nombre.toString(), machaine.charCodeAt(pos) and String.fromCharCode(...) - the JavaScript standard library, exposed unchanged beneath the French keywords. The application itself is written in C++ with the Qt framework, but the expression language a student types is JavaScript’s, which is also why an exported algorithm can run in a browser with no runtime attached.

Evolution

The changelog is undated, so the “current by” column below reflects archived snapshots of the download page rather than announced release dates.

VersionCurrent byChange of note
0.1-0.32009Earliest releases preserved on the project site
0.4mid-2010Text-editor mode, PDF export, 200,000-iteration limit on POUR and TANT QUE
0.6mid-2011Statistics and probability library; limits raised to 500,000 per loop and 5 million total; systematic rounding on assignment made optional
0.7.x2013Automatic rounding removed; console input, syntax colouring, JavaScript extensions
0.8mid-2014Qt 5 support alongside Qt 4; configurable iteration limits in the Options menu
0.9mid-2015Last 32-bit Windows build, still offered separately
1.0-1.0.2mid-2018Qt 4 dropped (Qt 5.7+ required); local functions, including recursive ones
1.1.0January 2022Qt 6 compatibility; Windows and macOS builds on Qt 5.15, 64-bit only
1.1.1January 2023Maintenance: local-variable recognition in text-editor mode

Read as a whole, the trajectory is about a language slowly conceding that some of its users had outgrown it. The 0.6-to-0.7 change - making automatic rounding optional, then dropping it as a default - is the clearest example: the friendly behaviour was hiding something true about computers, and the project decided students were better served by the truth with a switch for teachers who disagreed. Text-editor mode, then local functions, then recursion, follow the same arc.

Platform Support and Availability

The project distributes AlgoBox for Windows, macOS and Linux under the GPL. The current downloads page offers a 64-bit MSI installer for Windows 7, 8, 10 and 11, a standalone “USB” build for the same, a 64-bit DMG for macOS 10.12 or later, and Linux packages - currently for Debian, Ubuntu and Fedora - plus source requiring Qt 5 or Qt 6 to build. Older 32-bit Windows builds of version 0.9 remain available, listed for Windows XP through 10. There is no official Docker image; the program is a desktop GUI application and would not have much to do inside a container.

Current Relevance

The 2017 revision of the French lycee mathematics programme moved algorithmics to Python from the seconde year, and AlgoBox was removed from the list of applications available to CAPES mathematics candidates from the 2018 session. Those two decisions ended its official life. The college programmes had already turned toward Scratch. A migration literature appeared almost immediately - a MathemaTICE article (issue 59) on easing the AlgoBox-to-Python move via PluriAlgo’s approximate translator, textbooks teaching the two side by side - which tells you how much accumulated teaching material was at stake.

The software itself never stopped. Version 1.1.1 remains available and buildable, and the project kept pace with its toolkit through Qt 6 long after losing its curriculum mandate. But it is a tool without a mandate now: the students who would have met it in 2013 meet Python instead, and its remaining use is with individual teachers who still find the button-driven, French-language structure the right first step before a real language. That is a real niche and a small one.

Why It Matters

AlgoBox is a clean case study in a language whose success was entirely a function of a curriculum decision, and whose decline was too. It was never technically ambitious - three types, three control structures, a statistics library and a plotting pane - and it was never meant to be used outside a classroom. On those terms it worked extraordinarily well: written by one teacher, given away, and inside a few years present in nearly every French secondary mathematics textbook.

It is also a serious piece of pedagogical design that deserves to be read as such. The choice to make code construction structural rather than textual anticipates the block-based editors - Scratch, Blockly, and their descendants - that dominate introductory programming today, but AlgoBox arrived at it from a different direction and kept a textual surface throughout, so what students saw on screen was recognisably the pseudo-code in their exam papers. The step-through mode that prints the entire variable state after every assignment is a better model of what a program is doing than most professional debuggers offer, precisely because it is not trying to be efficient about it.

And the 2017 transition is worth sitting with. Python is unambiguously the more useful language, and the reasoning behind the change - that a language with real functions and a real ecosystem serves students better - is sound. But it also asked every mathematics teacher in France to relearn their tooling and rebuild their materials, and it replaced French keywords with English ones for fifteen-year-olds meeting programming for the first time. Whether a scaffold that students eventually abandon is better than a real language they struggle with early is not a settled question in education, and AlgoBox is one of the largest natural experiments anyone has run on it.

Timeline

2009
Pascal Brachet, a mathematics teacher at the Lycee Bernard Palissy in Agen, releases AlgoBox under the GPL, aimed at the new algorithmics content in the French seconde mathematics programme taking effect that autumn. The project site carries a 2009 copyright notice and its download archive goes back to version 0.1; the changelog does not date individual releases
2010
Version 0.4 adds a 200,000-iteration safety limit on POUR and TANT QUE loops - a small detail that shows what the project was optimising for: a classroom of beginners who will write infinite loops. By mid-2010 the download page offers versions 0.4 and 0.5
2010
The EPI (Enseignement Public et Informatique) association reviews AlgoBox in February 2010, and the software is catalogued on Sialle, the French Education Ministry's free-educational-software service run by Reseau Canope - the point at which it moves from one teacher's website into the national resource channels
2011
Version 0.6 is the current release by mid-2011. It raises the loop ceiling to 500,000 iterations per loop and 5 million overall, and makes the deliberately 'pedagogical' rounding of assignments - which shielded students from floating-point surprises - a configurable option rather than fixed behaviour
2013
The 0.7 line, current by 2013, removes automatic rounding on reads and assignments altogether, moves input from dialog boxes to a console, and adds syntax colouring and JavaScript-based extensions
2014
Version 0.8 is the current release by mid-2014. It adds Qt 5 support alongside Qt 4, and an Options menu that lets teachers configure the maximum iterations per loop and the total iteration allowance
2015
Version 0.9 is current by mid-2015 and remains so until the 1.0 line. It is the last 32-bit Windows build, and the project still offers it separately for older machines
2017
The revised French lycee mathematics programme moves algorithmics to Python from the seconde year onward. AlgoBox loses its position as the de facto national tool, and a body of migration material - including a Mathematice article on easing the move from AlgoBox to Python - appears to help teachers convert their existing resources
2018
AlgoBox is dropped from the official list of applications available to candidates in the CAPES mathematics teaching examination from the 2018 session onward, and is no longer named in the college programmes, which had shifted toward Scratch
2018
Version 1.0.2 is the current release by mid-2018. The 1.0 line drops Qt 4 (requiring Qt 5.7 or later) and introduces user-defined local functions, including recursive ones - the capability that pushes the language past the strictly flat pseudo-code it started as
2022
Version 1.1.0 is current by January 2022, adding Qt 6 compatibility alongside Qt 5, with the Windows and macOS builds compiled against Qt 5.15 and packaged 64-bit only
2023
Version 1.1.1, a maintenance release fixing local-variable recognition in text-editor mode, is current on the project site by January 2023 and remains the current release

Notable Uses & Legacy

The French seconde-to-terminale mathematics curriculum

From the 2009 curriculum reform that introduced algorithmics into French secondary mathematics until the 2017 revision that moved the subject to Python, AlgoBox was the tool the Education Ministry effectively steered teachers toward. The official programmes left language choice free, but AlgoBox's French-language commands and curriculum-matched design made it the default in practice for close to a decade.

French mathematics textbooks

The project states that AlgoBox is cited and used in nearly all French secondary mathematics textbooks from seconde to terminale, and that its syntax is very close to the pseudo-code used in baccalaureat examination papers. For a language written by one teacher and given away, appearing in the schoolbooks of an entire national system is an unusual reach.

EDU'Bases, the Eduscol activity bank

The French Education Ministry's official EDU'Bases repository carried dozens of classroom activities built around AlgoBox, reportedly more than 60, contributed by teachers across the academies - a body of shared lesson material that outlived the software's official endorsement and is part of why teachers were reluctant to migrate in 2017.

The CAPES mathematics examination

AlgoBox was among the applications made available to candidates sitting the CAPES, the competitive examination for French secondary mathematics teaching posts, until it was removed from the official list for the 2018 session. Being on that list meant prospective teachers were expected to be fluent in it.

Sialle / Reseau Canope

AlgoBox was catalogued on Sialle, the free-educational-software service operated by Reseau Canope (the French Education Ministry's pedagogical resource network), which vetted and described free software for classroom use - the formal channel through which French schools discovered and adopted it.

Published teaching guides

Commercial teaching material was written around it, including Thomas Petit's Tous les algorithmes: programmation avec AlgoBox et Python, du college au lycee, du brevet au bac (Ellipses, 2017) - a title that captures the exact moment of transition, teaching both languages side by side.

Language Influence

Influenced By

Running Today

Run examples using the official Docker image:

docker pull
Last updated: