What are the best coding classes in Nijmegen?
Coding classes in Nijmegen serve a municipality of 189,871 people (Statistics Netherlands, 1 January 2026), the largest in Gelderland and the densest city on this site at 3,579 to the square kilometre. It declared itself the oldest city in the country in 2005, and it is one of four places that claim the title: change the test from Roman city rights to continuous habitation and the winner changes with it. Every district of it is taught by Modern Age Coders on the same live online basis, in English, to learners of any age from 6 to 67. An opening lesson is given free; from there the monthly figure is USD 100 for a group of five to ten and USD 150 for private tuition.
Four Dutch towns claim to be the oldest city in the country and all four are telling the truth about something. Nijmegen has Roman city rights from about the year 98, and a garrison from 19 BC. One rival has a Roman bath house begun between 65 and 73. Another has been lived in without a break ever since the legions left. A third was a planned Roman town that was abandoned around 270. Nothing here is in dispute except which question counts, and a child who has built that table has learned more about evidence than a year of being told to check sources.
Facts last verified 7 September 2026. Teaching is online; no Nijmegen branch is claimed.
A groep 5 child in Lent who wants to build rather than watch, a teenager in Hatert aiming at a technical profile, a Radboud student who needs the theory behind the models and not only the library call, and a parent in Neerbosch whose team has been told to automate something: four doors into one city.

Typed Python, turtle graphics and a first program that learns a rule, in English, for the groep 5 to 8 child anywhere from Hees to the Waalsprong.
See the syllabus
Python and real datasets to a first trained model, for the teenager who wants to test a claim instead of repeating it.
See the syllabus
Search, logic and agents from the ground up, for the student who wants to know what the system is actually doing before calling an API.
See the syllabus
Scripting, scraping and automation for the working parent whose week is full of tasks a short program could finish.
See the syllabusBrowse the course atlas for more than one hundred options and use the coding roadmap to check prerequisites.
The four we are known for
These run underneath everything above. Every one is live and online, placed by ability rather than by age, and the first class is free.

Python, web and AI projects where the learner still owns the thinking.
See the syllabus
Automate the work you already do, then let AI carry part of it.
See the syllabus
Train a model, read what it learned, and be able to say why it is wrong.
See the syllabus
Run AI coding agents on real work without losing control of the codebase.
See the syllabusThe national register held 189,871 people in the municipality on 1 January 2026, in 104,361 households averaging 1.78 people, on 52.81 square kilometres of land inside 57.63 of territory, giving a published density of 3,579 to the square kilometre. In 1995 the count was 147,557, so Nijmegen has gained 42,314 people in thirty-one years, a rise of 29 percent.
57,902 of the 104,361 households hold exactly one person. 32,331 residents are between fifteen and twenty-five and 58,556 are between twenty-five and forty-five, while 24,590 are under fifteen and 32,587 are sixty-five or over. That is a university city's shape, and it is why this page is careful about which averages it quotes.
45 primary establishments teach 13,915 pupils and 19 secondary establishments teach 14,152, so secondary outnumbers primary here as it does in only a handful of Dutch cities. In higher education the municipality counts 7,610 at the applied level and 13,180 at the university level.
Radboud University was founded on 15 May 1923 as the Roomsch Katholieke Universiteit Nijmegen. On 1 October 2022 it had 24,633 students enrolled and about 6,147 full-time-equivalent staff, of whom 3,467 were academic, across seven faculties. That enrolment count and the municipal count answer different questions and are not combined anywhere on this page.
A city that grew across its own river
Nijmegen sits on the south bank of the Waal, and the Waalsprong, the leap over the river, has put Lent, Ressen and Oosterhout inside the city's growth over the past three decades. The road bridge was completed in 1936 and De Oversteek was added downstream. The Vierdaagse, the four-day march, has been held since 1909.
The statistics office divides the municipality into 9 wijken and 44 buurten, the smallest wijk count of any city on this site, and the ordinary names people use cut across them.
The old city above the Waal, the Valkhof where the Roman and imperial fortifications stood, and the station. The tightest housing in the municipality and much of the 55 percent who live alone.
Post-war housing towards the Maas-Waalkanaal, with primary schools full of families and a bus ride to the secondary schools on the other side of the city.
West of the centre, older village cores absorbed into the city, now districts with their own names, their own schools and their own opinions about where Nijmegen ends.
The western districts towards the canal and the industrial edge, mixed housing and the part of the city that looks towards Wijchen and Beuningen rather than towards the hill.
North of the river: Lent, Ressen and Oosterhout, villages that became the city's newest neighbourhoods. New primary schools, young families, and a bridge between home and the rest of the municipality.
Nine wijken, 44 buurten and a river do not affect placement. A learner in Lent and a learner on the hill sit in the same group when they are at the same stage and in different ones when they are not.
The lesson reaches every district at one hour, and the only question asked before it is what the learner can already do.
The national count, the encyclopaedia entries for the city and for the oldest-city question, the university, and the places where the record is silent.
Statistics Netherlands, provisional, 1 January 2026: 189,871 residents; 104,361 households averaging 1.78 people, 57,902 of them single-person, 55 percent; 24,590 under fifteen; 32,331 aged fifteen to twenty-five; 58,556 aged twenty-five to forty-five; 32,587 aged sixty-five and over; 45 primary establishments with 13,915 pupils and 19 secondary with 14,152; 7,610 students at the applied level and 13,180 at the university level; total area 5,763 hectares, land 5,281; density 3,579; 9 wijken and 44 buurten; 147,557 residents in 1995, a rise of 42,314.
Nijmegen's own entry: 189,850 residents on 1 January 2026, 21 fewer than the national figure for the same date, both kept; area 57.63 square kilometres, 53.09 of land and 4.54 of water, against 52.81 of land nationally, both kept; mayor Hubert Bruls; described there as ninth among the country's cities and first among the province's municipalities; formal city rights in 1230, from which point it was a free imperial city; the Waalbrug completed in 1936 and De Oversteek added later; the Vierdaagse held since 1909.
The same entry: Ulpia Noviomagus Batavorum, taken as the direct predecessor of the present city, received Roman city rights around the year 100, and Nijmegen is one of four places whose recorded history supports a claim to the title of oldest city in the Netherlands. The entry does not name the other three.
The encyclopaedia's article on the question names them and dates them. Nijmegen: Roman city rights around the year 98, Roman soldiers present from 19 BC, medieval rights in 1230, and a self-declaration as the oldest city in 2005. Voorburg, as Forum Hadriani: market rights after a presumed visit by the emperor Hadrian in 121, and abandonment after 270. One southern city: continuously inhabited after the Romans left, no Roman city rights, medieval rights in 1284. Another southern town, as Coriovallum: the oldest stone building in the country, whose bath house had a first construction phase between 65 and 73, but no continuous habitation and no medieval city rights.
The city's own entry puts the Roman city rights at around the year 100 and the article on the oldest-city question puts them at around the year 98. Both are approximations in their sources and both are printed here; nothing on this page turns on the difference.
Radboud University: founded 15 May 1923 as the Roomsch Katholieke Universiteit Nijmegen; 24,633 students enrolled on 1 October 2022; 6,147 full-time-equivalent staff in 2022, of whom 3,467 academic; seven faculties; rector magnificus José Sanders since 17 October 2023.
Modern Age Coders is unaffiliated with the municipality, with the university and with every school this page names, and nothing above should be read as suggesting otherwise. They appear so that a page claiming to serve Nijmegen can show its working, including the point at which the record stops.
Four candidates, five tests, three different winners, and a comparison that quietly turns silence into evidence.
Before comparing anything the learner has to say what "oldest city" means. Five candidate tests come out of the sources: the earliest Roman grant of rights, the earliest recorded military presence, the oldest surviving Roman stone building, unbroken habitation since Roman times, and the earliest medieval city rights. Each is defensible and none is obviously the right one.
Nijmegen wins the Roman grant, the military presence and the medieval rights. Coriovallum wins the oldest stone building. The continuously inhabited southern city wins habitation. Forum Hadriani wins none of the five as recorded, and is still named as one of the four claimants. Three different winners from one set of sources.
Most cells are empty. No source read here gives a military presence date for the other three, or a stone-building date for Nijmegen, or tells us whether Nijmegen was inhabited without a break. A program that scores this table has to decide what an empty cell means, and the tempting choice, treating it as a zero, converts "nobody wrote it down" into "it did not happen".
| Test | Nijmegen | Forum Hadriani, Voorburg | The continuously inhabited city | Coriovallum |
|---|---|---|---|---|
| Earliest Roman grant of rights | city rights about 98 to 100 | market rights after about 121 | none recorded | none recorded |
| Recorded military presence from | 19 BC | not stated in these sources | not stated in these sources | not stated in these sources |
| Oldest surviving Roman stone building | not stated in these sources | not stated in these sources | not stated in these sources | bath house, first phase 65 to 73 |
| Inhabited without interruption since Roman times | not stated in these sources | no, abandoned after 270 | yes | no |
| Earliest medieval city rights | 1230 | not stated in these sources | 1284 | none recorded |
Two separate mistakes are waiting in this table and both are ordinary. The first is answering a superlative before defining it: "oldest" is not a property of a city but of a city under a test, and here three of the four candidates win under some test. The second is quieter and does more damage in real work: when a comparison is turned into code, missing values have to become something, and the something is usually zero or false. Do that here and Nijmegen scores nothing for its stone buildings while Coriovallum scores nothing for its garrison, and both are artefacts of what nobody happened to write down. A learner who has met this once will insist that a dataset distinguish "no" from "not recorded", which is the single most useful habit anyone can carry into working with real data. The table was built from the sources before this paragraph was written, and every unfilled cell says so rather than guessing.
Product comparisons, medical records, survey answers, school league tables, historical claims: real data is full of blanks, and the blanks mean at least three different things. Practised on an argument this city has been having for a century.
| Stage | Rule | What it prevents | What it gives you |
|---|---|---|---|
| Name the test first | Define the criterion before collecting any candidate | A superlative that changes with the question | A comparison that can be settled |
| Separate the three blanks | Distinguish "no", "not recorded" and "not applicable" in the data itself | Silence counted as a negative | A table that says what it knows |
| Never default to zero | Make the missing value explicit and refuse to sum over it silently | A garrison scored as none | Totals you can defend |
| Count the coverage | Report how many cells each row and column actually has | A winner declared from two filled cells | An honest confidence |
| Re-run under each test | Show every criterion and its winner rather than choosing one | One claim presented as the answer | A reader who can decide for themselves |
Four toy animals and a question: which is best? The children pick tests, fastest, tallest, loudest, softest, and discover a different winner each time. Then one animal has no answer for one test, and they have to decide whether that means it loses or means they do not know. The distinction lands hard at nine years old and never leaves.
The table above in Python with three states rather than two: a value, a recorded absence, and an unknown. A scorer that refuses to rank when coverage is below a threshold. Then the stretch: what would you need to find in an archive to fill the four unknown cells, and which one would change a winner?
The same three-state discipline on a spreadsheet from work where blank cells are already being summed, averaged or filtered. Adults almost always find at least one report where an empty cell has been silently counted as a zero and somebody has been ranked on it.
The population, household, area, density, school and university figures come from the offices and entries named beside them. The five tests are this page's framing of claims those sources make, every cell is either quoted or marked as not stated, and no cell was filled by inference.
Where a learner starts is decided in the free hour, and no part of that decision involves the address.
Children choose their own tests and watch the winner change with each one.
Coding for KidsPython and AI for KidsLearners build a small table with gaps and decide, in code, what a gap means.
Maths Through CodingProblem Solving and Computational Thinking for KidsTeenagers write a scorer that reports coverage and declines to rank when the evidence is thin.
Data Science for TeensPython for TeensAdults audit a live spreadsheet for blanks that are being treated as zeros.
Artificial Intelligence CoursePython Automation CourseBecause four towns have a claim, the model will pick whichever the phrasing favours, and it will not tell you that the answer moved.
A tool asked this question produces a confident sentence, usually with Nijmegen in it, sometimes with a rival, and occasionally with a hedge. What it will not do on its own is lay out the five tests, show that three different towns win among them, and point out that most of the comparison is blank. Nor will it flag the deeper problem, which is that when this sort of table gets loaded into a program the blanks silently become zeros and the missing evidence starts voting.
That is why the learner still builds it. Asked directly the tool will explain missing-data handling perfectly well and will write the three-state scorer on request. The thing it does not supply is the reflex of looking at a comparison and asking how many cells are actually filled. A thirteen-year-old in Lent who has done that with the Roman record will do it with a product comparison at twenty-three and a patient dataset at thirty-three, and will be the one who notices that half the rows are inferences. Whatever the tools are called then, blank cells will still need a policy.
Archaeology is not the reason to put a Nijmegen child in front of an editor in 2026. The reasons are narrower and more durable: a superlative is empty until its test is named, real tables come with holes in them, writing code forces a decision about what a hole means, and taking that decision carelessly is the ordinary route by which confident nonsense gets published. The longer argument is in the longer case for teaching a child to code in 2026.
The hill, the west and the Waalsprong are each a real trip on a dark evening, and the bridges are the only way between the last of them and the rest. The lesson does not use the bridges.
The class runs at the kitchen table in Lent, Hatert or Hees at the same hour every week, whatever the weather is doing on the Waal.
Instruction is in English. Groep, havo, vwo and profielkeuze are said the way the child's school says them, and translated in neither direction.
Three things: a piece of work that shows where the learner actually stands, the name of the course that fits, and a slot in the week. Arranging all three requires no payment details from anybody.
Two learners at the same stage work together whether one is in Neerbosch and the other in Ressen; two at different stages do not, whatever the distance between them.
Usually eight lessons a month at one fixed slot. Nijmegen is in the northern half of Gelderland, which takes its school holidays with regio Midden, and holiday weeks are agreed before the slot is.
Only one of the two countries adjusts its clocks, so the distance to the teacher is shorter between late March and late October and longer the rest of the year. Either way the overlap covers the later part of the afternoon, the early evening, and all of Saturday and Sunday.
A city that keeps its arguments in public
Nijmegen declared itself the oldest city in the country in 2005 and has been arguing the point ever since, in newspapers, in museums and on signposts. It is a good place to raise a child who asks what the test was, and a weekly hour at home is a cheap way to find out whether they take to it.
Published here so that nobody has to ask.
A complete lesson with a real task, a level and a named next course.
Per month, normally eight lessons, five to ten learners placed by ability.
Per month, normally eight lessons, one learner with one teacher.
A single international rate applies, quoted in dollars, with no euro list beside it, so a family in Ressen sees what a family on the hill sees. Nothing is paid until the free lesson has produced a course and a timetable, and payment then goes over WhatsApp. Pauses, plan changes and missed weeks are set out on the pricing page.
Rated 4.9 across 547 Google reviews. These are real reviews, reproduced as written.
★★★★★
"The one step solution for my son. Modern Age Coders make learning coding so simple that kids love it. The teachers explain complex concepts clearly with practical exercises and interactive content."
Ria Mukherjee
Parent
★★★★★
"Modern Age Coders has been a game-changer for me. I struggled to grasp IT concepts and coding before joining, but their classes transformed everything. I can now confidently write complex programs with ease."
Samriddha Mondal
Student
★★★★★
"One of the most wonderful education centres out there. Education is not limited to school syllabus but focuses on skill development."
Vansh Agarwal
Student
★★★★★
"My child Dhairya is really enjoying the Modern Age Coders classes. This is his first online class and he eagerly looks forward to it. I can already see his improvement, and the teachers are very cooperative."
Sonam Oswal
Parent of Dhairya
★★★★★
"Modern Age Coders have wonderful teachers who teach in a clear, easy and practical way. The teacher boosts students' confidence and inspires them to learn without hesitation."
Sonu Goyal
Parent
★★★★★
"I highly recommend this computer coding class! The teachers are incredibly knowledgeable and passionate about coding."
Ritu Kedia
Parent
The first thing on screen might be four toy animals and an argument about tests, a table in Python with three states instead of two, or a spreadsheet from work whose blanks are quietly being added up.
The city, its claim, its districts, the teaching and the terms.
Under three of the five tests this page sets out, yes: the earliest Roman grant of rights, around the year 98 or 100 depending on the source; a recorded military presence from 19 BC; and medieval city rights in 1230. Under a test for the oldest surviving Roman stone building another town wins, and under a test for unbroken habitation since Roman times a third does. The city declared itself the oldest in 2005, and its own entry says it is one of four places with a claim. Building that table is the project on this page.
The whole municipality: 189,871 people on 1 January 2026, including Lent, Ressen and Oosterhout north of the Waal and Hatert, Hees, Neerbosch and Sint Anna on the south side. The statistics office splits it into 9 wijken and 44 buurten, and none of those boundaries affects the class.
Not at all. A learner in Lent and one on the hill are in the same group when they are at the same stage, and the bridge that would separate them for an in-person class never comes into it.
No. Lessons run in English throughout. The Dutch a school uses is kept: a teacher says groep, havo, vwo and profielkeuze because that is what the child is called on to recognise. Everything else is English, and no Dutch-language edition of the course exists.
Summer here means a three-and-a-half-hour gap to the teacher and winter means four and a half, since the Indian clock is fixed and the Dutch one is not. Workable hours therefore begin when school lets out and run to mid-evening, with the whole weekend open as well. One slot is agreed at the free lesson and kept.
Two counts answer two questions. The municipality reports 7,610 students at the applied level and 13,180 at the university level. Radboud University reports 24,633 of its own enrolled on 1 October 2022. Enrolment at an institution and residence in a municipality are different things, and this page never adds or subtracts one from the other.
The first job is to locate the boundary of what the learner already manages, and then to put a single piece of work just past it. For a child that might be an argument about which toy animal wins and why the winner keeps changing. For a teenager, a three-state table and a scorer that declines to guess. For an adult, a spreadsheet from work with blanks in it. By the close there is a named course, a rung to start on, a weekly time and a price in dollars. No money has moved.
No, and none is claimed at the Valkhof, in Lent or anywhere in the Netherlands. Lessons are live online and need a laptop or desktop, working audio, a current browser and a stable connection. The telephone number on this page is Indian and is described as such.
The first lesson is free. Group tuition is USD 100 a month for two live lessons a week, normally eight in the month, in a group of five to ten. Private tuition is USD 150 a month, one learner with one teacher at the same frequency. Course, format, recurring time and availability are confirmed before payment.
Between five and ten, matched on level, pace and goal rather than on age, school or district. Private tuition is one learner and one teacher. If no group at the right level is running, the family can take private tuition or wait for the next one to form.
Nijmegen is the largest municipality of Gelderland, whose page is about a province split between two holiday calendars; south across the Maas is Limburg and its contested highest point. Everything in the series descends from the Netherlands coding hub. Where the ambition is training a model instead of writing a program, the two doors are AI and machine learning classes in the Netherlands and the AI and Python Academy.