PKA / YOUNG / 01
Maths through coding
School maths explored in Python, 10 to 15.
Open the syllabusKaiserslautern · Python · Live online
In spring 2027 the strongest young mathematicians from every Land travel to Kaiserslautern for the national final of the Mathematik-Olympiade. Python and maths belong together: a few lines of code can test a hunch on a century of data in a second, and the maths says what the result does and does not mean. This page is for Kaiserslautern learners and parents: how the first four weeks of a live online Python class go, the Olympiad calendar for 2026/27, a correlation project on 104 years of Kaiserslautern weather, what Rhineland-Palatinate schools teach, and class times.
Live online since 2020 · 10,000+ students worldwide · Python with the maths explained
In short
Online Python classes for Kaiserslautern at Modern Age Coders are taught live in English: learners type and run Python on their own computer while the mentor follows the shared screen and asks questions. Children start at about 9; teenagers and adults go on to data, statistics and small models, with the maths explained. Each learner has one mentor based in India who keeps to their pace and accent, in a class of fifteen to twenty or one to one.
Starting points
Two Python courses by age, and one for pupils who want Python and contest maths together.

PKA / 01
Children around nine to twelve. Proper Python from hour one, with pictures, number games and, later on, a first program that improves by looking at examples.
Open the syllabus →
PKA / 02
Secondary-school age. The whole language, loops to files to data, with the maths inside every program spelled out.
Open the syllabus →
PKA / 03
For pupils who enjoy hard problems. Original Olympiad-style problems in English, proof-writing, and Python to test ideas on small cases.
Open the syllabus →Live online
Two live lessons a week on video, the learner typing throughout. This is a typical first month for a Kaiserslautern teenager; children move more slowly, adults sometimes faster.
| Week | In the live lessons | The learner can then |
|---|---|---|
| 1 | Install Python together, print, input, arithmetic | Turn a height in centimetres into metres and feet |
| 2 | Conditions and loops, traced on paper first | Predict what a loop prints before running it |
| 3 | Lists and simple functions | Store a list of numbers and compute their mean |
| 4 | Reading a text file line by line | Open a real data file and count its rows |
Our own plan, adjusted for each learner. Children of 9 to 12 spend about twice as long on each week's content, with more games.
A mentor teaches in real time, watching the learner's shared screen. Mistakes are spotted early, and an idea that does not click is explained again another way. Nothing is a recording.
Lessons are in English only; we never teach in German and say so before any trial. Mentors speak clearly, slow down and repeat. Python's own words are English, so the language and the code support each other.
The same mentor, based in India, stays with the learner for the whole course and comes to know how they think: who rushes, who hesitates, who learns most from breaking things.
Maths in Kaiserslautern
From 30 May to 2 June 2027. Rhineland-Palatinate hosts the Bundesrunde of the 66th Mathematik-Olympiade in Kaiserslautern.
| Round | Date | Who takes part |
|---|---|---|
| Schulrunde | From the start of the school year to October 2026 | Pupils at participating schools |
| Regionalrunde | 11 November 2026, as listed by the organisers | Those who qualify from the school round |
| Landesrunde | 26 to 28 February 2027 | Those who qualify from the regional round |
| Bundesrunde, in Kaiserslautern | 30 May to 2 June 2027 | Teams of up to 15 per Land, from grade 8 |
Sources: mathe-wettbewerbe.de, Mathematik-Olympiade pages, and Mathematik-Olympiaden e.V. Read on 2 November 2026. Grades 5 to 7 compete in three rounds and finish at the Landesrunde; from grade 8 there are four. Local arrangements are made through schools.
The Mathematik-Olympiade is a national competition with about 200,000 participants a year, from grade 3 to grade 13; primary schools have been included since 2005. It rewards careful reasoning and written proofs, not speed with a calculator.
Entry is through schools. A Kaiserslautern pupil who enjoys puzzles should ask their maths teacher about the school round.
Python is a fine laboratory: try a claim on the first hundred cases, spot a pattern, find a counterexample. But a computer check of small cases is evidence, not a proof, and the Olympiad marks proofs.
Our Mathematik-Olympiade preparation page explains how we teach with original problems written by us. We never reproduce the organisers' tasks and we are not connected with the competition.
A Kaiserslautern data project
Germany's national weather service keeps a daily record for Kaiserslautern going back to 1901 and lets anyone reuse it, with credit, under CC BY 4.0. Learners turn a hunch into one number between -1 and 1, then learn exactly what that number can and cannot tell them.
For every day the file holds, among other things, the mean temperature and the lowest temperature. We downloaded it on 3 November 2026 and saved it as kaiserslautern_days.txt. Missing values are written -999.
A frost day, for us, is a day whose lowest temperature is below 0 degrees. We keep only complete years, those with every day present, which leaves 104 years between 1901 and 2025.
Warmer years should have fewer frost days. That sounds obvious, but how strong is the link, really? A year can be warm on average and still have a cold January.
Correlation measures how tightly two lists of numbers move together. A value near 1 means they rise together, near -1 that one falls as the other rises, near 0 that there is no straight-line link.
days, frost, temp_sum = {}, {}, {}
with open("kaiserslautern_days.txt", encoding="latin-1") as src:
src.readline() # the header row
for row in src:
parts = row.split(";")
year = int(parts[1].strip()[:4])
t_mean, t_min = float(parts[13]), float(parts[16])
if t_mean == -999 or t_min == -999:
continue
days[year] = days.get(year, 0) + 1
temp_sum[year] = temp_sum.get(year, 0) + t_mean
frost[year] = frost.get(year, 0) + (t_min < 0)
full = [y for y in days if days[y] >= 365]
x = [temp_sum[y] / days[y] for y in full] # mean temperature of the year
y = [frost[yr] for yr in full] # days with a minimum below 0 C
print("Complete years:", len(full))
print("Frost days, fewest and most:", min(y), max(y))It prints Complete years: 104 and Frost days, fewest and most: 34 124.
The range alone is striking: one complete year in the record has only 34 frost days, 1974, and another has 124, 1955. Version 2 calculates the correlation from scratch, with no library, so every step of the formula is visible: subtract each list's mean, multiply the differences pair by pair, add them up, and divide by the spread of each list.
def mean(v):
return sum(v) / len(v)
def correlation(a, b):
ma, mb = mean(a), mean(b)
top = sum((p - ma) * (q - mb) for p, q in zip(a, b))
spread_a = sum((p - ma) ** 2 for p in a) ** 0.5
spread_b = sum((q - mb) ** 2 for q in b) ** 0.5
return top / (spread_a * spread_b)
print("r between mean temperature and frost days:", round(correlation(x, y), 2))
first = [v for yr, v in zip(full, y) if yr <= 1930]
last = [v for yr, v in zip(full, y) if yr >= 1996]
print("Average frost days 1901 to 1930:", round(mean(first)), " 1996 to 2025:", round(mean(last)))It prints r between mean temperature and frost days: -0.73 and Average frost days 1901 to 1930: 77 1996 to 2025: 71.
| Measure | Value |
|---|---|
| Complete years used | 104 |
| Fewest frost days in a year | 34 (1974) |
| Most frost days in a year | 124 (1955) |
| Correlation r, mean temperature and frost days | -0.73 |
| Average frost days, 1901 to 1930 | 77 (30 complete years) |
| Average frost days, 1996 to 2025 | 71 (21 complete years) |
Figures computed by us from the DWD's daily record for station 02486 (Kaiserslautern), using the daily mean and the daily minimum; file fetched 3 November 2026; licence CC BY 4.0, credit Deutscher Wetterdienst. The rules for a frost day and a complete year are ours.
An r of -0.73 is a strong negative link: in warmer years there are clearly fewer frost days, though not perfectly so. To see that the number is not luck, our learners shuffle the frost counts so that each year gets another year's count, and compute r again: with the order broken it drops to about -0.1. What r cannot do is explain why. It says the two lists move together, not that one causes the other; here the cause is obvious, but for many pairs of numbers it is not, and a high r has fooled many people.
Two more cautions, both from reading the metadata. The station has stood in 15 different places since records began in 1843, and since 1901 its height above sea level has ranged from about 230 to just over 300 metres, which matters for frost. And only 21 of the last 30 years are complete, so the 71 for 1996 to 2025 rests on fewer years than the 77 for 1901 to 1930. Honest analysis states both.
Rhineland-Palatinate schools
For now, only some pupils have it; from 2028/29 every school in Rhineland-Palatinate will teach it.
The Gesellschaft für Informatik counts Rhineland-Palatinate among six Länder where no Informatik lesson is compulsory for all pupils. The exception is a set of 21 Informatik-Profil-Schulen, which have taught it as a compulsory subject in grade 5 since 2021/22.
Elsewhere, Informatik depends on what a school offers and what a pupil chooses, up to the Oberstufe.
The monitor reports that Informatik becomes compulsory at all schools in the Land from the 2028/29 school year, with four weekly hours in total.
Our classes sit beside school and never replace it; marks and the Abitur come from school alone. Pupils who already take the subject can follow it in English with our Informatik Abitur course, and the Rhineland-Palatinate page has more on the Land.
Source: Gesellschaft für Informatik, Informatik-Monitor 2026/27, national summary and Rhineland-Palatinate page, read on 2 November 2026. Most Gymnasien in the Land follow the nine-year route; some offer eight.
Class times
After school, after work and at weekends. The mentor's clock in India is several hours ahead, so a Kaiserslautern afternoon is an Indian evening.
| In Kaiserslautern | Mentor's clock now | Mentor's clock after the spring change |
|---|---|---|
| 16:25 | 20:55 | 19:55 |
| 17:25 | 21:55 | 20:55 |
| Saturday 12:30 | 17:00 | 16:00 |
| Sunday 15:45 | 20:15 | 19:15 |
Kaiserslautern keeps Central European Time, UTC+1, from 25 October 2026 and summer time, UTC+2, from 28 March 2027, under the Einheitenzeitgesetz; India is on UTC+5:30 all year. These are examples, not set group times.
School will be closed in Rhineland-Palatinate, per the Kultusministerkonferenz, over Christmas from 23 December 2026 until 8 January 2027, for Easter from 22 March to 2 April 2027, and all summer from 28 June to 6 August 2027; the autumn break (5 to 16 October 2026) is already past. Python lessons do not have to stop. Learners join from all parts of Kaiserslautern and from nearby Landstuhl, Otterberg, Enkenbach-Alsenborn, Ramstein-Miesenbach and Kusel.
Skills
Our own ladder, the same for every age, with the maths named at each step.
| Rung | Python skill | Maths behind it |
|---|---|---|
| 1 | Print, input and arithmetic | Order of operations |
| 2 | Loops and conditions | Counting and cases |
| 3 | Lists and functions | Mean and spread |
| 4 | Files and real data | Complete and missing cases |
| 5 | Your own analysis | Correlation, and what it does not prove |
Rung 5 is the frost project. A learner who can say what a correlation does not prove reads the news differently.
You get told what your child can now do on their own.
Write the formula out by hand once before you call a library.
A strong r says "together", never "because".
Further courses
Same promise for all nine: real-time teaching in English and one mentor for the duration, group or private.
PKA / YOUNG / 01
School maths explored in Python, 10 to 15.
Open the syllabusPKA / YOUNG / 02
Contest problems for younger pupils.
Open the syllabusPKA / YOUNG / 03
Logic puzzles that grow into proofs.
Open the syllabusPKA / TEEN / 01
Correlation, spread and uncertainty.
Open the syllabusPKA / TEEN / 02
Analysis and Stochastik for the Abitur.
Open the syllabusPKA / TEEN / 03
Algorithms for contests.
Open the syllabusPKA / ADULT / 01
Python from the first line.
Open the syllabusPKA / ADULT / 02
Data, models and honest reporting.
Open the syllabusPKA / ADULT / 03
Calculus and linear algebra.
Open the syllabusPractical details
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.
Afternoons
For pupils after the school day.
Evenings
For adults after work.
Private
A time agreed with the mentor, any day.
The learner writes every line.
Formulas written out before libraries.
Repeated, simplified, never rushed.
From first lesson to final project.
Contest-style tasks written by us.
Groups of fifteen to twenty, or private lessons.
Student work
Some work by our Python learners around the world; more on the student labs page.

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 monthly fee pays for eight live classes. The euro amount shown comes from the European Central Bank reference rate; the payment is taken in US dollars, and your bank does the conversion, so its euro figure may differ slightly 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
Google reviews from students and parents, quoted 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
Kaiserslautern learners ask
No. Teaching is live and only ever in English. Because the mentor tunes speed and pronunciation to each learner, pupils with ordinary school English cope well, and Python's keywords are English in any case.
Yes. According to the organisers, Rhineland-Palatinate hosts the Bundesrunde of the 66th Mathematik-Olympiade in Kaiserslautern from 30 May to 2 June 2027, with teams of up to 15 pupils per Land from grade 8.
As a laboratory, yes: testing ideas on small cases and finding counterexamples. But the Olympiad marks written proofs, and a computer check is evidence, not proof. We teach both and use only problems we wrote ourselves.
Often a little, yes. Most children are ready at about nine, when reading is quick and the keyboard is familiar; until then Scratch gives the same ideas with blocks.
Not yet for every pupil: Rhineland-Palatinate has no Informatik compulsory for all, apart from grade 5 at 21 profile schools. From 2028/29 it becomes compulsory at all schools, four weekly hours in total.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. Kaiserslautern pupils mostly choose the hours after school; adults often take 17:25 or later.
Programmers with teaching experience who work from India and teach over live video, in English. A learner does not change mentor partway through.
Per month, in US dollars. The euro you see here is the ECB reference-rate equivalent; your bank does the actual exchange, which can move the final figure slightly. The first class is free of charge.
Learners use 104 complete years of Kaiserslautern weather from the Deutscher Wetterdienst, count frost days per year and calculate the correlation with the mean temperature by hand. It comes out at -0.73, a strong link that still does not, by itself, prove a cause.
Yes, in adult classes or one to one, from the first line of Python.
Elsewhere on this site
More for Kaiserslautern learners.
The index of our German city and Land pages.
The Land in more detail.
How we prepare pupils, in English.
The same topic, explained in German.
Python for any age, anywhere in Germany.
Our method in one page.
Part of the guide: Coding classes in Rhineland-Palatinate
More guides: Coding classes in North Rhine-Westphalia · 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 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
The free class is a real hour of Python. The learner writes and runs a short program, the mentor sees how they reason and how comfortable English is, and you leave with a clear course recommendation.
Read first, if you like: how we teach and all courses.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Teaching is live, online and English-only, from mentors in India. Send a WhatsApp message if you have a question.
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