PYH / YOUNG / 01
Scratch first
Block coding for children not yet typing, 6 to 12.
Open the syllabusHagen · Python, live and online · Ages 9 to adult
Add up a year of Hagen rainfall in Python and you can get 970.9999999999999 millimetres instead of 971. Nothing is broken; that is how computers store decimals, and it is exactly the kind of thing a learner alone with a video never notices. Our live online Python classes put a mentor beside you, in English, to catch it. This page explains what that looks like, how Informatik works in North Rhine-Westphalia up to an Abitur written without a computer, and the Hagen rain project in full.
Live classes since 2020 · 10,000+ students worldwide · Google rating 4.9 across about 547 reviews
The answer first
Modern Age Coders teaches online Python classes for Hagen as live video lessons in English: a mentor follows what each learner types and makes sure they understand why the code works. There are separate courses for children from 9, for Oberstufe pupils facing the Informatik Abitur and for adults, each taught by one regular mentor to a batch of fifteen to twenty people or to a single learner.
Choose a starting course
One for children, one for Oberstufe pupils heading for an Informatik exam, and one for anyone from 13 who wants a recognised Python qualification to aim at.

PYH / 01
For children of nine to twelve, roughly two terms and a half. A child types every line, draws with turtle graphics, builds small games and reaches real data files.
Open the syllabus →
PYH / 02
Oberstufe pupils aged 16 to 19, six months, Grundkurs and Leistungskurs paths. Java and Python, data structures, and tracing code on paper.
Open the syllabus →
PYH / 03
From about 13 to adult, five months, joinable any month. Python from zero to the level of the Python Institute's two entry exams.
Open the syllabus →Why live
Videos explain. A mentor notices. Most of what goes wrong for a beginner is something only a person watching would notice.
| Moment | Alone with a video | With a live mentor |
|---|---|---|
| First error message | Copied into a search engine, often misread | Read aloud together, line number first |
| Indentation slip | Program silently does the wrong thing | Spotted on the shared screen within seconds |
| A strange decimal like 970.9999999999999 | Assumed to be a bug in Python | Explained: how computers store decimals |
| Stuck for twenty minutes | The evening ends there | One question from the mentor unblocks it |
| Code that works | Moved on from | Explained back in the learner's own words |
Our own observations from teaching live classes, not a study. The decimal row is the subject of the Hagen project below.
Concretely: sixty minutes of video call, one screen shared at a time. The learner types in their own editor on their own computer; the mentor sees it, asks questions and only very rarely takes over the keyboard. Between classes there is one short task. In a batch, learners share their screens in turn, so a mistake one person makes becomes a lesson for everyone.
Every class is taught in English by mentors based in India. We offer no lessons in German, and we say so before anyone books.
Mentors speak calmly, rephrase, and get used to each learner's accent. Since Python's keywords and error messages are English anyway, the class and the code speak the same language.
A laptop or desktop computer, a stable connection and a headset. Python costs nothing; setting it up is the first job you and your mentor do together.
A tablet is fine for a ten year old watching Scratch, but Python needs a real keyboard.
NRW schools and the Abitur
It starts early, in grades 5 and 6 for every pupil, and it ends on paper: NRW's written Informatik Abitur uses no computer.
According to the Informatik-Monitor 2026/27 of the Gesellschaft für Informatik, Informatik is required in grades 5 and 6 at every general school type in North Rhine-Westphalia. In the Oberstufe it can be taken as a three-hour Grundkurs from the Einführungsphase and, in the Qualifikationsphase, either as a three-hour Grundkurs or a five-hour Leistungskurs.
| Question | What the GI reports |
|---|---|
| Who sets the tasks? | The Land, centrally, the same for every school |
| How many tasks? | One set of four for the Grundkurs and one of four for the Leistungskurs |
| Who chooses? | The teacher picks two of the four in a Grundkurs and three in a Leistungskurs; pupils do not choose |
| Is a computer used? | No: "Der Einsatz eines Computers ist für die Bearbeitung der schriftlich Abituraufgaben nicht vorgesehen." |
| Which aids? | A German spelling dictionary and a scientific calculator or CAS |
| Written or oral? | Always written in a Leistungskurs; written or oral in a Grundkurs |
Quoted and summarised from the GI's Informatik-Monitor 2026/27, NRW entry, as published on 2 November 2026 when we read it.
A paper exam changes how you should learn to program. With no computer to run the code, a pupil must predict what it does: trace the loop, track every variable, know what a number will look like. That is why our Python classes ask learners to predict output before they run anything, and why the rain project below is a good exam habit as much as a coding one. We teach alongside the school course and award no grades; the school's Informatik is the one that counts. Our Informatik Abitur in NRW page goes deeper.
A real Hagen project
A simple question, how much rain fell in a year, leads straight to one of the most useful lessons in programming.
Between June 1978 and December 2007 the Deutscher Wetterdienst operated a station named Hagen-Fley. Its day-by-day observations are open data (CC BY 4.0: reuse is fine as long as the DWD is credited), and our copy dates from 3 November 2026.
From it we made hagen_regen.csv: one row per day from 1 January 1979 to 31 December 2007, 10,592 days, with the date and the rainfall in millimetres, always written with one decimal place, such as 2.2.
Which year was the wettest, and how much rain fell in 1987? Version 1 adds up each year's daily values as ordinary decimal numbers (floats) and prints the totals.
It also asks a yes-or-no question that looks too easy to fail: was 1987's total exactly 971.0 mm?
import csv
rain = {}
with open("hagen_regen.csv", encoding="utf-8") as f:
for rec in csv.DictReader(f):
year = rec["datum"][:4]
rain[year] = rain.get(year, 0) + float(rec["regen_mm"])
wettest = max(rain, key=rain.get)
print("Wettest year:", wettest, rain[wettest], "mm")
print("1987 total:", rain["1987"])
print("Was 1987 exactly 971.0 mm?", rain["1987"] == 971.0)It prints: Wettest year: 1981 1201.2999999999988 mm, 1987 total: 970.9999999999999 and Was 1987 exactly 971.0 mm? False.
Every daily value had one decimal place, so every total should too. Instead Python prints 1201.2999999999988 and 970.9999999999999, and the comparison with 971.0 says False. The reason is that a computer stores numbers in binary, and most decimal fractions, 0.1 among them, have no exact binary form, the way one third has no exact decimal form. Each value is stored as the nearest possible binary number, and after 365 additions the tiny differences show. Try it yourself: in Python, 0.1 + 0.2 prints 0.30000000000000004.
The fix is to count in whole numbers. Every value in this file is given to a tenth of a millimetre, so Version 2 turns each day into an integer number of tenths (2.2 becomes 22), adds integers, which a computer does exactly, and divides by 10 only once, when printing.
tenths = {}
with open("hagen_regen.csv", encoding="utf-8") as f:
for rec in csv.DictReader(f):
year = rec["datum"][:4]
tenths[year] = tenths.get(year, 0) + round(float(rec["regen_mm"]) * 10)
wettest = max(tenths, key=tenths.get)
print("Wettest year:", wettest, tenths[wettest] / 10, "mm")
print("1987 total:", tenths["1987"] / 10)
print("Was 1987 exactly 971.0 mm?", tenths["1987"] == 9710)
print("Years over 1,000 mm:", sorted(y for y in tenths if tenths[y] >= 10000))The new lines it prints: Wettest year: 1981 1201.3 mm, 1987 total: 971.0, Was 1987 exactly 971.0 mm? True and Years over 1,000 mm: ['1981', '1984', '1986', '1993', '1998', '2002', '2007'].
| Year | Adding floats | Adding tenths |
|---|---|---|
| 1981 | 1201.2999999999988 | 1201.3 |
| 1987 | 970.9999999999999 | 971.0 |
| 1989 | 767.3999999999996 | 767.4 |
| 1991 | 754.3000000000003 | 754.3 |
| 2003 | 719.8 | 719.8 |
Rain values: DWD, station 01920 Hagen-Fley, RSK (precipitation per day), years 1979 to 2007, CC BY 4.0, file taken on 3 November 2026. We wrote the code and did the adding; seven of the 29 years passed 1,000 mm. The DWD is not involved in our classes.
Look at 2003: the float total happens to come out as exactly 719.8. That is the dangerous part. The error is not always visible, so a program that seems to work on one year can fail on the next. The rule that follows is short: never compare two floats with ==, and when you need exact sums of decimal values, count in whole units.
From first line to exam level
Our sequence, with the habit each stage builds. Children move through it slowly with games; teenagers and adults faster with data.
| Stage | Content | Habit |
|---|---|---|
| 1 | print, variables, arithmetic | Predict before you run |
| 2 | if, for, while | Trace the loop by hand |
| 3 | Lists and dictionaries | Choose the right container |
| 4 | Functions | Write it once, test it twice |
| 5 | Files and real data | Check what the data really contains |
| 6 | Numbers inside the machine | Know what a float can and cannot hold |
| 7 | Projects and exam tasks | Explain every line in words |
Our own outline. Abitur pupils work through stages 1 to 7 with Java alongside Python, as the Informatik Abitur course does.
Stage 6 is where many self-taught programmers have a gap. It looks like trivia until a bank balance, a grade average or a sensor total goes subtly wrong. For pupils facing a paper exam it is also the stage that makes predictions reliable: if you know that 0.1 is stored inexactly, you will not be surprised by the output you are asked to predict.
Times and holidays
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.
| Hagen | India, to 28 March 2027 | India, from 28 March 2027 |
|---|---|---|
| 15:35 | 20:05 | 19:05 |
| 17:40 | 22:10 | 21:10 |
| Saturday 12:30 | 17:00 | 16:00 |
| Sunday 09:30 | 14:00 | 13:00 |
Germany switches between MEZ, UTC+1, and MESZ, UTC+2, under the Einheitenzeitgesetz; the latest switch to MEZ was on 25 October 2026 and the next to MESZ is on 28 March 2027. India does not switch (UTC+5:30), so its clocks run four hours thirty ahead of Hagen in winter and three hours thirty in summer. Batch times are agreed, not fixed.
School holidays in North Rhine-Westphalia for 2026/27, from the KMK overview dated 9 October 2025: autumn from 17 to 31 October 2026; Christmas from 23.12.2026 to 06.01.2027; Easter from 22 March to 3 April 2027; a single Whitsun day on 18 May 2027; and summer from 19 July to 31 August 2027. Classes carry on through all of them unless you choose to pause.
Hagen's population on 31 December 2024 was 190,384, by the Destatis count; North Rhine-Westphalia as a whole had 18,034,454. Learners from Dortmund (603,462), Bochum (358,676) or Wuppertal (358,193) are also in North Rhine-Westphalia and share the same school calendar and the same central Abitur.
Checks of understanding
Five checks we use in class. Each one is a small task, not a test score.
| Check | The learner can |
|---|---|
| Prediction | Write down the output of a short program before running it |
| Tracing | Fill in a table of variable values for each loop step on paper |
| Error reading | Find the failing line from a traceback alone |
| Number sense | Explain why 0.1 + 0.2 is not printed as 0.3 |
| Explanation | Describe a program they wrote in five plain sentences |
Prediction and tracing are exactly what a paper exam rewards. We practise them on every program, not only before exams.
Number sense often decides the last marks on a tracing task.
Number sense is the check most professionals have never been taught. It matters the moment Python touches money or measurements.
Bring a spreadsheet from work and we will test it with you.
Other courses
Some come before Python, some beside school, some after the first course.
PYH / YOUNG / 01
Block coding for children not yet typing, 6 to 12.
Open the syllabusPYH / YOUNG / 02
Graphs, fractions and geometry with code, 10 to 15.
Open the syllabusPYH / YOUNG / 03
Support for the school subject, Klasse 5 to 10.
Open the syllabusPYH / TEEN / 01
A complete Python course from zero, 13 to 18.
Open the syllabusPYH / TEEN / 02
Data structures and problem solving, 13 to 18.
Open the syllabusPYH / TEEN / 03
Pandas, charts and simple models, 14 to 18.
Open the syllabusPYH / ADULT / 01
From the first line to confident programs.
Open the syllabusPYH / ADULT / 02
Scripts that take over routine work.
Open the syllabusPYH / ADULT / 03
Storing and querying data properly.
Open the syllabusThe format
Two one-hour classes each week on video with the same mentor, and a short task in between. No recordings stand in for a person.
School-day afternoons
For children and pupils in Hagen.
Evenings and weekends
For adults, and for pupils before exams.
One to one
A slot agreed with your mentor.
The mentor sees each line as you type.
Output is guessed before code runs.
Continuity from first class to last.
Children, teenagers and adults apart.
Tracing tasks for exam candidates.
What was learned and what comes next.
Student work
A handful of things our students made. The student labs page has more examples.

AI and ML
An AI nutrition coach that reads what you eat and works you toward a target.

AI and ML
A chatbot that answers mathematics and programming questions, built and deployed by a student.

AI and ML
An assistant that helps a young person recognise unsafe situations online.

Web app
A weather forecasting site with live conditions for any location.
Fees
One fee per month, eight live classes. The euro amount on this page is calculated with the European Central Bank reference rate, but payment is taken in US dollars, so your bank converts it and its euro figure can be a little different from ours.
Free first class
Free
no card required
Group batch
€90
a month, eight live classes, charged in US dollars
One to one
€134
a month, eight live classes, charged in US dollars
What families say
Reviews on Google by parents and students, as they wrote them.
★★★★★
"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
Hagen asks
No, English is the only teaching language. Mentors work from India and fit their speed and wording to each learner. Python's own keywords and error messages are English, so the language of the class matches the language of the code.
Yes. A mentor is on the video call for the full hour, sees the learner's shared screen and helps in the moment. There are no pre-recorded lessons in place of the mentor.
No, it is a paper exam: the GI states that no computer is used for the written Informatik papers in North Rhine-Westphalia. The Land sets the tasks, and the teacher chooses two of four in a Grundkurs and three of four in a Leistungskurs.
Yes. Grades 5 and 6 include required Informatik at all general schools, and electives follow later, differing by school type.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. Pupils often choose late afternoons, adults evenings or weekend mornings.
A lesson we built from Hagen-Fley rainfall published by the Deutscher Wetterdienst, 1979 to 2007. Adding the daily values as floats gives 970.9999999999999 mm for 1987; counting in whole tenths of a millimetre gives exactly 971.0.
Because Python stores such numbers in binary, and 0.1 and 0.2 have no exact binary form. Each is stored as the nearest possible value, so the sum prints as 0.30000000000000004. Compare floats with a tolerance, or count in whole units.
From about 9, yes, in our Python and AI for Kids course. Younger children usually start with Scratch, where blocks replace typing.
Batches run with fifteen to twenty learners matched by age and level; with one-to-one there is nobody else, just the learner and the mentor twice a week.
Each month. The euro price you see uses the European Central Bank reference rate; the money moves in US dollars, and your bank turns that into euro, so a few cents can differ. The trial costs nothing and needs no card details.
Further pages
More for Python learners in Hagen and North Rhine-Westphalia.
Informatik across NRW school types.
The central paper exam in detail.
All our Python courses for Germany.
Informatik in the Oberstufe, explained in English.
For those starting after school.
Our live method in detail.
Part of the guide: Coding classes in North Rhine-Westphalia
More guides: Coding classes in Lower Saxony · Coding classes in Land Bremen · Coding classes in Hesse · Coding classes in Bavaria · Coding classes in Saxony-Anhalt · Coding classes in Schleswig-Holstein · Coding classes in Baden-Württemberg · Coding classes in Saarland · Coding classes in Rhineland-Palatinate · Coding and maths in Berlin · Coding and maths in Hamburg · Coding classes in Saxony · Coding classes in Thuringia · Coding classes in Brandenburg · Coding classes in Mecklenburg-Vorpommern
Start here
Let us know how old the learner is and what the aim is: a first program, the Abitur, or something for work. The free hour gets Python running and tries one small task; after it you hear which course and which format we suggest.
Curious about the method? How we teach describes it, and the course list has every syllabus.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
All classes are live online and only in English, with mentors in India. Message us on WhatsApp for the quickest reply, in English.
A priority demo is a full class of about 45 to 60 minutes. After the class the mentor sends a written skill report and a personal learning roadmap on WhatsApp. If you enrol, the demo fee is adjusted against your first month's fee. Share your demo Order ID with us on WhatsApp and we take it off.
Book a priority demo