PYM / FIRST / 01
Scratch for kids
For children not yet ready to type, 6 to 12.
Open the syllabusMainz · Python, live online · Ages 9 to adult
Search for online Python in Mainz and most results are recorded videos: you press play, you are on your own. Our classes are the opposite. A mentor is on the call, watches you type, and stops you at the line where you went wrong. This page shows what that looks like hour by hour, the path we follow from a first print() to real data, where Python sits in Rhineland-Palatinate schools, and a program that reads the Rhine at Mainz.
Live online since 2020 · 10,000+ students worldwide · a real mentor on every call, in English
In one paragraph
Online Python classes in Mainz at Modern Age Coders are live video lessons taught in English by a mentor who watches the learner write real Python and corrects it on the spot. Children from 9, teenagers and adults each follow their own course, from first programs to working with real data, in a group of fifteen to twenty or one to one, at times that fit a Mainz day.
Where Python starts
Three courses, one per age. The language is the same Python 3 in each; the pace, the examples and the projects are not.

PYM / 01
For 9 to 12 year olds, over 8 to 10 months. Turtle graphics and games first, so a child sees each line do something, then lists, files and small AI projects.
Open the syllabus →
PYM / 02
For 13 to 18 year olds, over 10 to 12 months. Beginner to advanced: functions, files, classes, testing and data, with projects a teenager can show to a teacher or university.
Open the syllabus →
PYM / 03
Adults 18 and over, 9 to 11 months. From zero to confident, for career changers, students and people who want to automate their own work.
Open the syllabus →What "live online" means
An hour, on video, with a shared screen. Here is a typical one for a teenage group, step by step.
A one-to-one class follows the same shape, but the middle part is longer and the mentor can move as fast or as slowly as the learner needs. Children's classes break the hour into shorter pieces with more drawing and games, because a nine year old concentrates in bursts.
A laptop or desktop computer with a keyboard, a stable internet connection and a headset or quiet room. Python and a simple editor are installed together in the first class; tablets are fine for watching but not for typing code.
No previous programming, no special maths, no paid software. Python is free, and every tool we use in class runs on Windows, macOS and Linux.
A recorded lesson cannot see your screen. Most beginners stop not because Python is hard but because one small error blocks them for an evening. A mentor clears that block in a minute and teaches the learner how to clear the next one.
Taught in English
No. Every class is in English, and we would rather you knew that before you book.
Python's keywords are English words: if, for, while, return, import. Its error messages are in English, and so is the official documentation. A learner in Mainz who studies Python in English never has to translate between the classroom and the tool.
Our mentors are based in India and teach only in English. We do not have German-speaking teachers and do not pretend to.
Mentors speak clearly and not too fast, rephrase when an explanation does not land, and get used to each learner's accent quickly. Learners may answer in simple English; nobody is marked down for grammar in a programming class.
Because the code is on the shared screen the whole time, a missed word rarely means a missed idea.
The Python path
The order matters more than the speed. Each stage depends on the one before, and every stage ends with something the learner made.
| Stage | What the learner can do | Typical month (teen or adult group) |
|---|---|---|
| 1. First programs | print, input, variables, arithmetic, string formatting | Month 1 |
| 2. Decisions and loops | if, elif, else, for, while, counting and totals | Months 1 to 2 |
| 3. Collections | Lists, dictionaries, sets, and choosing between them | Months 2 to 3 |
| 4. Functions | Write, test and reuse functions with clear inputs and outputs | Months 3 to 4 |
| 5. Files and data | Read CSV and JSON, clean values, summarise | Months 4 to 6 |
| 6. Internet data | Fetch data from a public web service, save a snapshot, analyse it | Months 6 to 8 |
| 7. Projects | A program of the learner's own design, documented and tested | Months 8 onwards |
Our own course structure. Children aged 9 to 12 cover stages 1 to 5 more slowly, with games and turtle graphics, and meet stage 6 in a simplified form. Adults on the masterclass go further into classes, testing and automation.
Stage 6 is where online Python becomes interesting in Mainz specifically: the federal waterways administration publishes the Rhine water level at Mainz as live open data, and a learner at stage 6 can fetch it, store it and ask it questions. The project below is that stage in miniature.
A real Mainz project
The Rhine gauge at Mainz reports the water level every fifteen minutes. We saved a month of readings and asked a question that sounds simple and is not.
PEGELONLINE, the gauge service of the Wasserstraßen- und Schifffahrtsverwaltung des Bundes, publishes the level at gauge MAINZ (Rhine kilometre 498.27) as open data under the Datenlizenz Deutschland Zero 2.0, which allows commercial and non-commercial reuse. We requested the last 31 days on 3 November 2026 and saved the answer as rhein_mainz.json: 2,975 readings, each a timestamp and a level in centimetres.
The level is measured from the gauge zero, which PEGELONLINE gives as 78.373 metres above sea level (NHN). So 120 cm does not mean the river is 120 cm deep; it is a reading on a scale.
How much did the Rhine rise in Mainz this month? The quick answer is to subtract the first reading from the last. Version 1 does that, and also finds the lowest and highest readings.
Then we ask a better question: what was the biggest rise within any 24 hours? That needs a window that slides along the readings, one step at a time, which is Version 2.
import json
from datetime import datetime
with open("rhein_mainz.json", encoding="utf-8") as f:
readings = [(datetime.fromisoformat(r["timestamp"]), r["value"]) for r in json.load(f)]
first, last = readings[0], readings[-1]
print("Readings:", len(readings))
print("From", first[0], "to", last[0])
print("Change, first to last:", last[1] - first[1], "cm")
low = min(readings, key=lambda r: r[1])
high = max(readings, key=lambda r: r[1])
print("Lowest:", low[1], "cm at", low[0])
print("Highest:", high[1], "cm at", high[0])It prints: Readings: 2975, From 2026-10-03 20:00:00+02:00 to 2026-11-03 18:45:00+01:00, Change, first to last: 23.0 cm, Lowest: 94.0 cm at 2026-10-06 13:00:00+02:00 and Highest: 162.0 cm at 2026-10-28 12:30:00+01:00.
A rise of 23 cm in a month sounds calm. But the lowest and highest readings are 68 cm apart, and they are only three weeks apart. The first-to-last figure hides everything that happened in between: the river can climb, fall back and climb again, and subtracting two endpoints sees none of it.
from datetime import timedelta
DAY = timedelta(hours=24)
rise, start = 0, 0
for end in range(len(readings)):
while readings[end][0] - readings[start][0] > DAY:
start += 1
window = readings[start:end + 1]
lowest = min(window, key=lambda r: r[1])
if readings[end][1] - lowest[1] > rise:
rise = readings[end][1] - lowest[1]
found = (lowest, readings[end])
print("Biggest rise within 24 hours:", rise, "cm")
print("From", found[0][1], "cm at", found[0][0], "to", found[1][1], "cm at", found[1][0])The two new lines it prints: Biggest rise within 24 hours: 28.0 cm and From 121.0 cm at 2026-10-25 02:30:00+02:00 to 149.0 cm at 2026-10-26 01:30:00+01:00.
In one day, from the early hours of 25 October 2026, the Rhine at Mainz rose 28 cm, more than the whole "change" in Version 1. Look closely at the clock: the window runs from 02:30 to 01:30 the next night, which looks like 23 hours. It is 24. Summer time ended that very night, the clocks went back an hour, and because each timestamp carries its offset (+02:00, then +01:00), Python measured real elapsed time. Had we stripped the offsets, the window would have been wrong by an hour.
| Question | Answer | What it hides |
|---|---|---|
| Last reading minus first | 23 cm | Every rise and fall in between |
| Highest minus lowest | 68 cm | How long the change took |
| Biggest rise within 24 hours | 28 cm | Slower rises spread over several days |
Data: WSV, PEGELONLINE, gauge MAINZ, series W (water level, raw data), readings from 3 October 2026 20:00 to 3 November 2026 18:45, downloaded 3 November 2026, licence Datenlizenz Deutschland Zero 2.0. Calculations and code are ours. Raw gauge data can be revised later; we are not connected with the WSV.
Mainz schools
Some do, many do not yet. Rhineland-Palatinate is one of six Länder where Informatik is not compulsory for every pupil, but that is scheduled to change.
| Where | What the GI reports |
|---|---|
| Informatik-Profil-Schulen | Compulsory Informatik in grade 5 at 21 schools since 2021/22, then continuous Informatik from grade 6 to 10 if chosen |
| Gymnasium (nine-year) and Integrierte Gesamtschule | A two- to three-hour Informatik elective in grades 9 and 10 |
| Gymnasium (eight-year) | A three-hour Wahlpflichtfach Informatik in grades 8 and 9 |
| Oberstufe, Einführungsphase and Qualifikationsphase | Grundfach three hours a week, Leistungsfach five hours a week |
| From 2028/29 | Informatik compulsory at all schools, four weekly hours in total |
Compiled from the GI Informatik-Monitor 2026/27 (the Rhineland-Palatinate entry and the national overview), which we read on 2 November 2026.
The Oberstufe in Rhineland-Palatinate is known by the name of this city: the Land ordinance for it is the "Mainzer Studienstufe". In the Abitur, the Leistungsfach Informatik is examined in writing; the GI notes that the written tasks are drafted by teachers at each school and submitted to the education ministry, and that practical parts with a computer are allowed but not required. A pupil who keeps a Grundfach from the Einführungsphase onwards can be examined in it orally.
For a Mainz pupil, that means the school course is the one that decides the grade, and we teach beside it rather than instead of it. What we add is time at the keyboard: most school Informatik is three hours a week shared between theory, written work and a class of twenty-five, while our learners write Python for most of every hour. Our Rhineland-Palatinate page covers the Land in more detail.
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.
| Mainz | India in winter (until 28 March 2027) | India in summer (from 28 March 2027) |
|---|---|---|
| 15:45 | 20:15 | 19:15 |
| 17:15 | 21:45 | 20:45 |
| Saturday 12:00 | 16:30 | 15:30 |
| Sunday 10:15 | 14:45 | 13:45 |
German clocks follow the Einheitenzeitgesetz: UTC+1 (MEZ) through the winter, UTC+2 (MESZ) through the summer. The 2026 switch back happened on 25 October; the 2027 switch forward is on 28 March. India is on UTC+5:30 all year: 4 hours 30 minutes ahead of Mainz in winter, 3 hours 30 minutes in summer. The rows are examples, not fixed batch times.
| Holiday | First day | Last day |
|---|---|---|
| Herbstferien | 5 October 2026 | 16 October 2026 |
| Weihnachtsferien | 23 December 2026 | 8 January 2027 |
| Osterferien | 22 March 2027 | 2 April 2027 |
| Sommerferien | 28 June 2027 | 6 August 2027 |
Taken from the KMK holiday overview for 2026/2027 (dated 9 October 2025), Rheinland-Pfalz line. That line lists no winter or Whitsun holidays for the Land.
Classes run through the holidays unless you ask to pause. Mainz has 224,684 residents (Destatis, 31 December 2024) and is the capital of a Land of 4,129,569, but our learners also join from the other bank of the Rhine: Wiesbaden, with 288,850, is in Hessen, so a Wiesbaden pupil has Hessen's school rules and holidays, not those in the table above. Online, the river is no border; we simply plan around the right calendar.
Checkpoints
Our own checkpoints, each proven by a program the learner wrote and can explain.
| Checkpoint | Proof |
|---|---|
| Reads code | Predicts the output of ten lines before running them |
| Writes code | Solves a small task without copying an example |
| Debugs | Reads a traceback and finds the failing line alone |
| Handles data | Loads a CSV or JSON file and answers a question about it |
| Thinks in windows | Explains why first-to-last change and the biggest 24-hour rise differ |
You will get a short note after every few classes: what your child built, which checkpoint is next, and one thing to ask them about at dinner.
Children are never compared with each other in reports.
Bring your own data if you can. A file from your job or hobby makes the "handles data" checkpoint far more useful than any example of ours.
The debugging checkpoint is the one that changes most: after it, being stuck stops being a reason to quit.
Further Python
Before Python, beside school, and after the first course. All live and in English.
PYM / FIRST / 01
For children not yet ready to type, 6 to 12.
Open the syllabusPYM / FIRST / 02
School maths explored in Python, 10 to 15.
Open the syllabusPYM / FIRST / 03
Help beside Informatik lessons, Klasse 5 to 10.
Open the syllabusPYM / DEEP / 01
Python with data and first models, 14 to 18.
Open the syllabusPYM / DEEP / 02
Data structures and problem solving, 13 to 18.
Open the syllabusPYM / DEEP / 03
Oberstufe Informatik in Java and Python, 16 to 19.
Open the syllabusPYM / PRO / 01
Scripts for real work, then applied AI.
Open the syllabusPYM / PRO / 02
Python, statistics and machine learning in depth.
Open the syllabusPYM / PRO / 03
Preparation for the Python Institute exams.
Open the syllabusThe format
Two one-hour live classes a week with the same mentor, plus a short task in between. Nothing is pre-recorded.
Late afternoon
Mainz school-day slots for children and teenagers.
Weekend
Saturday and Sunday daytime for families and adults.
One to one
A time you agree with your mentor, changeable at short notice.
Typed code in a real editor, never a toy language.
The mentor sees the learner's code as it is written.
One person who knows the learner's habits.
Nine year olds and adults never share a batch.
Short practice between classes, checked next time.
Brief updates on what was built and what is next.
Student work
A selection of student work, from games to data tools. 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
A monthly fee covers eight live classes. The figure you see is in euro, converted at the European Central Bank reference rate; the charge itself goes through in US dollars, and your bank turns it into euro, so the amount it books may be slightly different.
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
What parents and students wrote on Google, unedited.
★★★★★
"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
Mainz asks
No. We teach in English and nothing else; our mentors work from India and slow down, rephrase and adjust to how each learner speaks. Python itself uses English keywords and error messages, so learning it in English is a natural fit.
Live. A mentor is on the video call for the whole hour, sees the learner's screen and corrects mistakes as they happen. We do not sell recorded courses; the live mentor is the point of the class.
A laptop or desktop with a keyboard, a reliable internet connection and a headset. Python and the editor are free and are installed together in the first class. A tablet alone is not enough for typing code.
From about 9, in our Python and AI for Kids course. Younger children usually start with Scratch, where blocks replace typing, and move to Python when reading and typing feel comfortable.
Some do. The Gesellschaft für Informatik reports compulsory Informatik in grade 5 at 21 Informatik-Profil-Schulen in Rhineland-Palatinate and electives at most Gymnasien. From 2028/29 Informatik becomes compulsory at all schools in the Land, 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. Late afternoons and weekend daytimes are the usual choices in Mainz.
Yes. The adult Python masterclass assumes no experience at all and moves from first programs to working with files, data and automation. Many adult learners bring a task from their own job to practise on.
An original exercise of ours on a month of water levels from the federal gauge at Mainz. Learners compare the first-to-last change with the biggest rise inside any 24 hours, using a sliding window, and see why the two answers differ.
A group batch holds fifteen to twenty people of roughly the same age. One-to-one classes give a learner a mentor to themselves for two classes a week, at agreed times.
Monthly. The fee is displayed in euro at the European Central Bank reference rate, while the payment is taken in US dollars and converted by your bank, so the statement amount can differ a little. The first class is free with no card needed.
Read next
More about Python and coding for learners in and around Mainz.
School rules and classes across the Land.
Our Python courses for every age in Germany.
How children aged 9 to 12 learn Python.
For learners starting after school.
Every Germany page in one place.
The method behind each live class.
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
In the first class the mentor helps install Python, writes a first program with the learner and gets a sense of their pace and English. Afterwards we recommend the course that fits, and whether a batch or private lessons would suit.
Curious first? See how we teach or read all course syllabuses.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Every lesson is a live video call in English with a mentor in India. For a quick answer, message us on WhatsApp 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