What are the best coding classes in Maastricht?
Coding classes in Maastricht serve 126,026 people (Statistics Netherlands, 1 January 2026), of whom only 10.1 percent are under fifteen and 20.9 percent are between fifteen and twenty-five, the shape of a place where a university sits inside a small old town. Its history entry states plainly that Maastricht never held city rights in the sense of a charter, which is awkward, because every other city page in this series quotes a year for exactly that. A field that is filled in everywhere else is not the definition of anything. Modern Age Coders teaches live online in English here and in Borgharen and Itteren, ages 6 to 67, free first lesson, then USD 100 monthly in a group of five to ten or USD 150 one to one.
Nearly every Dutch city can name the year it was granted its rights, and this cluster has quoted a dozen of them. Maastricht cannot, because it never received a charter at all: what 1229 records is a duke's permission to build a stone wall. Nobody doubts that Maastricht is a city, so the field that every other record has filled in turns out not to be what makes a city a city. Build a classifier on it and the oldest continuously inhabited place in the country comes back false.
Facts last verified 8 September 2026. Teaching is online; no Maastricht branch is claimed.
A groep 5 child in Wyck, a teenager in Heer who wants typed code before the profielkeuze closes, a university student whose programme assumes data skills, and an adult in Borgharen returning to work: four doors into a compact city.

Typed Python, turtle drawings and a first program that learns a rule, in English, for the groep 5 to 8 child anywhere in the municipality.
See the syllabus
Two years from a blank file to real projects, for the teenager whose school offers no route into programming.
See the syllabus
Typed JavaScript, React and Node, for the student in an international programme who wants code that fails at compile time rather than in front of a marker.
See the syllabus
Excel, SQL, Python and BI, for the working parent whose categories never quite fit the records they are applied to.
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 126,026 people on 1 January 2026, in 73,352 households averaging 1.68 people, on 55.79 square kilometres of land inside 60.12 of territory: a published 2,251 residents to the square kilometre. In 1995 the count was 118,454, so the city has gained 7,572 people in thirty-one years, a rise of 6.4 percent, the smallest in this series.
Only 12,719 residents are under fifteen, while 26,390 are between fifteen and twenty-five and 28,459 are sixty-five or over. 42,398 households hold one person, 58 percent, the highest share on this site. A university city inside a small old town produces exactly this shape.
32 primary establishments teach 7,556 pupils and 10 secondary establishments teach 6,252. The municipality counts 27,768 students at institutions here, and separately 4,490 residents in applied higher education and 11,600 at university level, which are different measures and are never added on this page.
The university reports 23,324 students and 4,654 full-time-equivalent staff for 2024, with 61 percent of students coming from abroad. Its own founding year is given as 1974 in one entry and 1976 in another, and both are printed here rather than reconciled.
Two thousand years of habitation, and no charter
The city's history entry states that Maastricht never had city rights in the sense of a charter. What 1229 records is ducal permission to build a stone wall, which is not the same instrument. Archaeological evidence supports twenty centuries of continuous habitation, and the Sint-Servaasbrug, built between 1280 and 1298, is regarded as the oldest bridge in the country.
The statistics office counts a single woonplaats divided into 7 wijken and 44 buurten. The municipal entry names three places: the city itself at 122,013, Borgharen at 1,725 and Itteren at 935, on a date it does not give.
The Vrijthof, the churches, the shopping streets and the university buildings scattered among them. Dense, walkable and holding a large share of the 42,398 single-person households.
Across the Sint-Servaasbrug, the station quarter and the nineteenth-century streets around it, the side most visitors arrive on and the side the trains from Germany and Belgium reach first.
The residential districts out towards the Belgian border, where most of the 12,719 under-fifteens live and where the primary schools are fullest.
The slopes towards the plateau, with its hundreds of kilometres of tunnel systems in the marl beneath. Quiet residential ground and the edge of the built city.
North along the Maas, a village inside the municipality with its own school and its own name, and a genuine journey into the centre on a winter evening.
The smaller of the two villages, further north between the river and the canal. A place where a coding club will not form locally and where the class arrives through the connection instead.
The class reaches the city and both villages at one hour and one fee, and stage rather than address decides which group a learner joins.
The national count, the municipal entry, the history entry, the university, the bridge and the treaty.
Statistics Netherlands, 1 January 2026: 126,026 residents; 73,352 households averaging 1.68 people, 42,398 of them single-person, 58 percent; 12,719 under fifteen; 26,390 aged fifteen to twenty-five; 31,074 aged twenty-five to forty-five; 27,384 aged forty-five to sixty-five; 28,459 aged sixty-five and over; 32 primary establishments with 7,556 pupils and 10 secondary with 6,252; 27,768 students at institutions here; 4,490 residents in applied higher education and 11,600 at university level; total area 6,012 hectares, land 5,579; density 2,251; one woonplaats, 7 wijken and 44 buurten; 118,454 residents in 1995, a rise of 7,572.
Its own entry: 126,017 residents on 1 January 2026, nine fewer than the national figure for the same date, both kept; 60.12 square kilometres, 55.99 of land and 4.13 of water, against 55.79 of land nationally, both kept; mayor Wim Hillenaar since 2023; in Limburg, on both banks of the Maas; places Maastricht 122,013, Borgharen 1,725 and Itteren 935, with no date given for those three.
The history entry states that Maastricht never had city rights in the sense of a charter. It records 1229 as ducal permission to build a stone wall, which is a different instrument. A year of 1284 circulates in connection with a joint-governance treaty; that attribution was not confirmed at a source read here and is not asserted on this page.
The municipal entry says Maastricht is among the places that call themselves the oldest city in the Netherlands, on the basis that archaeological excavation shows the city has been continuously inhabited for twenty centuries. The competing claims of other towns are argued on another page in this series and are not re-argued here.
The university reports 23,324 students and 4,654 full-time-equivalent staff for 2024, with 61 percent of students from abroad; one entry says the institution started in 1974 and another gives 1976. The Sint-Servaasbrug was built between 1280 and 1298, had nine arches and has had seven since works in 1932 to 1934, and is regarded as the oldest bridge in the Netherlands.
The Treaty of Maastricht was signed on 7 February 1992 in the Statenzaal of the Gouvernement aan de Maas by twelve signatories and entered into force on 1 November 1993.
Modern Age Coders has no connection to the municipality, the university or any school named here and claims none. The two founding years for the university are both printed because two sources give two answers, and choosing between them is not this page's job.
One field, a dozen records that have it, one record that does not, and a category that was never defined by the field in the first place.
Every other city page in this cluster carries a year of city rights: 1185, 1230, 1233, 1245, 1246, 1254, 1259, 1266, 1343, 1809 and more. The obvious classifier writes itself: a place is a city if it has a year in that column. It is simple, it is fast, and on this dataset it is almost always right.
Maastricht has no year, because it never received a charter. The classifier returns false for a place with 126,026 residents, two thousand years of continuous habitation, a university and the oldest bridge in the country. The code has done exactly what it was told, and what it was told was wrong.
City rights are strongly associated with being a city, which is why the field looks definitional and why it works on almost every row. Association is not definition: a charter is one historical route into the category and not the category itself. The learner rewrites the rule so that the field becomes evidence rather than the test, and immediately has to decide what the test actually is.
| Place | City rights year in the record | Classifier verdict | A city? |
|---|---|---|---|
| Most cities in this cluster | present, from 1185 onward | city | yes, correctly |
| Maastricht | none, no charter was ever issued | not a city | yes, incorrectly rejected |
| A large village with no charter | none | not a city | correct, but for the wrong reason |
| A tiny place granted rights and long since shrunk | present | city | the same rule failing the other way |
This is how most classification goes wrong in practice. Somebody needs to sort records into a category, the data offers a field that correlates strongly with it, and the field becomes the rule because it is there. Accuracy on the available rows is high, which is precisely what stops anybody from questioning it, and the failures land on the cases that are unusual for reasons the field cannot see. Two habits prevent it. Ask what the category actually means before choosing a feature to represent it, and write down the answer, even when it is awkward. Then hunt deliberately for a member of the category that lacks the feature, because one such case tells you more about a rule than a thousand that fit. Maastricht is that case, sitting inside a cluster of pages that had been quoting the field for weeks. The rows above use the years published on the pages of this series and the history entry named in the evidence for this one.
Active customer, qualified lead, senior employee, at-risk pupil, eligible household: every one of these gets operationalised as whatever column happens to exist. Practised on a city with no charter.
| Stage | Rule | What it prevents | What it gives you |
|---|---|---|---|
| Define before you measure | Write the category in words before choosing a field for it | A rule chosen because the data was handy | Something to test the field against |
| Name the correlate | Say out loud that the field stands in for the concept | A proxy quietly promoted to a definition | A rule you can argue about |
| Hunt the counter-example | Look for a clear member of the category that lacks the feature | High accuracy hiding a broken rule | The failure mode, before production finds it |
| Check both directions | Also look for a non-member that has the feature | A one-sided test | The full picture of where the rule fails |
| Keep the field as evidence | Let the column inform the decision rather than make it | Automated rejection of the awkward case | A rule that can handle an exception |
A rule that says a bird is anything that flies. The class tests it: a bat flies and is not a bird, a penguin is a bird and does not fly. Two counter-examples, one in each direction, and the children have learned more about definitions than a lesson on definitions would teach.
The city-rights classifier in Python over the records in this series, an accuracy score that looks excellent, and then the one row that breaks it. The stretch: propose three alternative rules, test each against the same awkward case, and say what data you would need to settle it.
The same audit on a rule at work: who counts as active, senior, at risk or eligible. Adults almost always find a definition that began as a convenient column and has since been quoted in decisions nobody revisits.
The population, household, area, school, university, bridge and treaty figures come from the offices and entries named beside them. The city-rights years used in the classifier are those published on the other pages of this series, and the statement that Maastricht never received a charter is quoted from the history entry rather than inferred from the absence of a date.
The starting rung is decided in the free hour, and neither the wijk nor the village enters into it.
Children break a rule from both sides and see why definitions need care.
Coding for KidsPython and AI for KidsLearners write a test, find a case it gets wrong, and decide what to change.
Maths Through CodingProblem Solving and Computational Thinking for KidsTeenagers build the classifier, score it, break it deliberately and propose alternatives.
Python for TeensTypeScript CourseAdults trace a working rule back to the column it was built on and test it from both sides.
Data Analysis CourseAI and ML MasterclassBecause a model trained on records where the field is nearly always present will treat its absence as a defect rather than as information.
Ask a tool for the year Maastricht received city rights and you may well get a date, because dates like 1229 and 1284 sit near the question in the sources and one of them will look like an answer. The history entry says something more specific and less convenient: no charter was ever issued. That is not a gap in the record, it is the record, and the difference between a missing value and a value of none is exactly the sort of distinction that gets flattened when text becomes a table.
So the learner builds the classifier and then goes hunting for the row that breaks it. That is the whole exercise, and it is closer to what professional work actually consists of than any amount of syntax: choosing how to represent a concept, discovering the representation is wrong at the edges, and deciding what to do about it. A fourteen-year-old in Wyck who has seen a rule reject their own city will look for the awkward case in every rule they meet afterwards. Tools will keep filling fields confidently. Deciding what a category means is not a thing they can be asked to do for you.
The case for a Maastricht child learning to code in 2026 is therefore not about medieval charters. It is that categories get turned into rules by whatever column is available, that the rules are usually right and fail on the interesting cases, and that a city with two thousand years of habitation and no city rights is the best possible place to learn it. The longer argument is in why writing code still repays a child in 2026.
Maastricht is compact and Belgium is minutes away, but Itteren and Borgharen are still a drive on a dark evening and the city's own schools are spread across both banks. The lesson removes the journey entirely.
The class runs at the kitchen table in Heer, Wyck or Borgharen at one fixed hour a week, whatever the Maas is doing.
Teaching is in English, which the 61 percent of students from abroad already work in. Groep, havo, vwo and profielkeuze stay Dutch because those are the words on the timetable.
Evidence of the real level, a course chosen on that evidence, and a slot in the week, arranged without payment details.
A learner in Itteren and a learner in the centre work together when they are at the same stage, and separately when they are not.
Two lessons a week at one repeating slot, eight in most months. Maastricht takes its holidays with regio Zuid along with the rest of Limburg, and weeks away are written in before the slot is fixed.
The Dutch clock changes twice a year and the Indian one does not, so the gap to the teacher depends on the season. Late afternoon, early evening and the whole weekend suit both ends.
The fewest children of any city on this site
Only 12,719 residents are under fifteen, 10.1 percent, against 26,390 aged fifteen to twenty-five. A child here is in a smaller cohort than almost anywhere in the country, and a group of five to ten drawn from across the world rather than from one street is a different proposition from whatever the local school can assemble.
On the page rather than kept for a phone call.
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 and never in euros, so Itteren is charged exactly what the Vrijthof is. Payment follows the free lesson rather than preceding it and goes over WhatsApp once a course and a time are agreed. Pausing, changing plan and missing a week 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 task might be a rule that says a bird is anything that flies, a classifier that rejects your own city, or a definition at work that began as whichever column happened to exist.
The city, its villages, its record, the teaching and the terms.
That is what its history entry says: Maastricht never had city rights in the sense of a charter. The year 1229 records a duke's permission to build a stone wall, which is a different instrument, and a year of 1284 circulates in connection with a joint-governance treaty without being confirmed at any source read here. Since nobody disputes that Maastricht is a city, the field that almost every other city record carries turns out not to define the category, and building the classifier that gets this wrong is the project on this page.
Its entry says the city is among those that make the claim, on the basis of archaeological evidence for twenty centuries of continuous habitation. Other towns claim the title on other grounds, and that argument is set out in full on the Nijmegen page in this series rather than repeated here.
The whole municipality: the city itself, given as 122,013 in its entry, plus Borgharen at 1,725 and Itteren at 935. The statistics office treats the municipality as a single woonplaats with 7 wijken and 44 buurten.
No. Every lesson runs in English, which suits a city where 61 percent of the university's students come from abroad. The Dutch school words are kept as they are, so groep, havo, vwo and profielkeuze are spoken as a child hears them, but no Dutch-language version of the course exists.
The teacher is three and a half hours ahead under Dutch summer time and four and a half in winter, because the Indian clock does not change. The workable window runs from the end of the school day to mid-evening, with both weekend days open, and one repeating slot is agreed in the free lesson.
Two sources give two answers. One entry says the institution started in 1974 and another gives a founding year of 1976. This page prints both rather than choosing. For 2024 the university reports 23,324 students and 4,654 full-time-equivalent staff, with 61 percent of students from abroad.
The teacher finds the edge of what the learner can already do and sets a single task just past it. A child might test the rule that a bird is anything that flies. A teenager builds a classifier and hunts for the row that breaks it. An adult brings a working definition from their own organisation. The hour ends with a course, a rung, a weekly time and a dollar figure, and nothing has been charged.
No, and none is claimed near the Vrijthof, in Wyck 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 wijk. 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.
Maastricht sits in Limburg, whose page is about a highest point that depends on what you count as the country; north up the Maas is Nijmegen, where the argument about the oldest city is set out in full. The parent of the whole series is the Netherlands coding hub, and for machine learning rather than software there are AI and machine learning classes in the Netherlands and the AI and Python Academy.