HAM / KIDS / 01
Scratch coding
The block-based first step for under-nines.
Open the syllabusHamm · Python online · Ages 9 to adult
Most questions we hear from Hamm start the same way: what actually happens in an online class, and can a child or a busy adult really learn programming through a screen? This page walks through one live lesson minute by minute, shows the Python path from age 9 to adult, explains where Python meets school Informatik in North Rhine-Westphalia, and ends with a project on the city's own running routes, where a few lines of Python find the signs that do not quite match the path.
Live online since 2020 · 10,000+ students worldwide · real Python, typed by the learner, taught in English
In short
Online Python classes for Hamm at Modern Age Coders are live video lessons in English: the learner types real Python on their own computer while a regular mentor in India watches the code, asks questions and adjusts the pace and accent to them. Children start at 9 with Python and AI for Kids, teenagers take Python for Teens, adults the Python Masterclass. Classes run in a group of fifteen to twenty, or one to one.
The three Python courses
The language is the same at every age; what changes is the speed, the projects and how much is explained before the learner tries.

HAM / 01
A first typed language for children of nine to twelve: drawings with a turtle, quiz games, and a gentle start on how programs can learn.
Open the syllabus →
HAM / 02
Thirteen to eighteen. Everything from variables to classes and files, with projects on real data such as the Hamm routes below.
Open the syllabus →
HAM / 03
University students and adults. Starts at zero and goes as far as automation, data and object-oriented design, around work hours.
Open the syllabus →Live online, explained
One lesson lasts sixty minutes. The learner sits at their own computer, the mentor joins by video, and both look at the same code. Here is how the hour usually goes.
| Item | Why |
|---|---|
| Laptop or desktop computer | Typing code on a phone or tablet is too slow to learn on |
| A current browser | For the video call and, for younger children, an online editor |
| Python installed (teens and adults) | The mentor helps with the installation in the first class |
| Headset or earphones | So the mentor's voice is clear and there is no echo |
| A quiet hour | The same time each week makes the habit stick |
Nothing is pre-recorded. If the learner is stuck, the mentor sees it on the screen within seconds, which is the main difference from a video course. In a group class of fifteen to twenty the mentor moves between screens in turn; in a one-to-one class the whole hour belongs to one learner.
The Python path
The same ideas in the same order for everyone, with different projects and a different speed for a ten year old, a sixteen year old and an adult.
| Stage | Ideas | A typical project |
|---|---|---|
| 1 | print, variables, input | A greeting program that asks your name |
| 2 | if, loops, lists | A times-table quiz that keeps score |
| 3 | functions, dictionaries, files | Read a small CSV file and summarise it |
| 4 | classes and objects | A Route type with its own methods, like the project below |
| 5 | libraries, data, testing | Charts, simple models and tests that prove the code works |
Children of nine to twelve usually need eight to ten months to reach stage 3 at a comfortable pace. Most teenagers get there in four to six months and meet classes, stage 4, before the end of their first year.
A child who has done Scratch first already knows loops and conditions as blocks. Python then feels like writing the same ideas in words.
Adults move fastest through the early stages and slowest through the habit part: practising between classes. The Python Masterclass keeps weekly tasks short for that reason.
Adults who want an outside target can aim for the PCEP or PCAP certificates; we prepare learners for them, and the exams themselves are run by the Python Institute, not by us.
NRW schools
Every Hamm pupil now has Informatik in grades 5 and 6; what language the school uses after that is up to the school. The facts below are from the Gesellschaft für Informatik and the KMK.
The Informatik-Monitor 2026/27 of the Gesellschaft für Informatik records that Informatik is a compulsory subject in grades 5 and 6 at every general school type in North Rhine-Westphalia. A Hamm child therefore meets programming ideas at about ten or eleven.
In the Oberstufe, Informatik can be taken in the Qualifikationsphase as a Grundkurs with three lessons a week or as a Leistungskurs with five.
The written Informatik Abitur in NRW is set centrally, and, as the monitor puts it, a computer is not intended for working on the written tasks. Pupils write algorithms on paper, which is why reading and tracing code by hand matters as much as typing it.
NRW's written Abitur exams in 2027 run from 13 April to 5 May 2027. We teach alongside school: the school course and its exams are the ones that count.
| Holiday | Dates |
|---|---|
| Herbstferien | 17 to 31 October 2026 |
| Weihnachtsferien | 23 December 2026 to 6 January 2027 |
| Osterferien | 22 March to 3 April 2027 |
| Pfingsten | 18 May 2027 |
| Sommerferien | 19 July to 31 August 2027 |
Sources: Gesellschaft für Informatik, Informatik-Monitor 2026/27, North Rhine-Westphalia page; KMK, Ferienkalender 2026/27, Stand 9 October 2025; NRW Schulministerium, Zentralabitur dates for 2027; all read 2 November 2026. NRW has no winter break in 2026/27. We have no link with the Gesellschaft für Informatik, the KMK or the NRW school ministry.
For younger pupils there is a free national route too. The Jugendwettbewerb Informatik is open in principle from grade 3 and, from 2026, has three levels: Bronze for grades 5 and 6, Silber for 7 to 9 and Gold from grade 10. We do not use its tasks in class; we write our own puzzles in the same spirit and label them as ours.
A real Hamm project
Stadt Hamm publishes its signposted running routes as open data. Our teenagers and adults use them for their first object-oriented program: a Route type that carries its own data and its own methods.
The dataset Laufstrecken Stadt Hamm contains, in the city's words, the running routes signposted by Stadt Hamm, including the marathon and half-marathon course. It is listed on GovData through Open.NRW under the Datenlizenz Deutschland Namensnennung 2.0, which allows reuse with credit. We downloaded the 20 routes from the city's map service on 3 November 2026.
Each route has a name such as "10 km Rundweg Pelkum", a type such as "8-10 km Rundweg", and a measured length in kilometres. We keep those three fields in a file called hamm_routes.csv.
Fourteen route names promise a distance: 10 km, 6 km, 5 km or 2,5 km. Is the measured route really that long? A runner training for a time cares, and so does anyone who has wondered why their watch disagrees with a sign.
Rather than juggling three separate lists, the program makes one object per route. Each object knows its name, its type and its length, and later learns to answer questions about itself.
import csv
class Route:
def __init__(self, name, kind, km):
self.name = name
self.kind = kind
self.km = float(km)
def __repr__(self):
return f"{self.name} ({self.km} km)"
routes = []
with open("hamm_routes.csv", encoding="utf-8") as file:
for line in csv.DictReader(file):
routes.append(Route(line["name"], line["type"], line["km"]))
print("Routes:", len(routes))
print("Longest:", max(routes, key=lambda r: r.km))
print("Shortest:", min(routes, key=lambda r: r.km))It prints Routes: 20, Longest: Rund um Hamm-Mitte (42.19 km) and Shortest: Winterlaufstrecke Maximilianpark (1.0 km).
The __repr__ method is why print shows a readable name and length instead of a memory address. Now we add two methods: one reads the promised distance out of the name, taking care of the German decimal comma in "2,5", and one works out the difference in percent.
def signed_km(self):
first = self.name.split()[0] # "10", "2,5", or a word
if self.name.split()[1:2] == ["km"]:
return float(first.replace(",", "."))
return None
def off_by(self):
nominal = self.signed_km()
if nominal is None:
return None
return round(100 * (self.km - nominal) / nominal, 1)
Route.signed_km = signed_km
Route.off_by = off_by
named = [r for r in routes if r.signed_km() is not None]
print("Routes with a distance in the name:", len(named))
for r in sorted(named, key=lambda r: r.off_by()):
if abs(r.off_by()) >= 2:
print(f" {r.name}: measured {r.km} km, {r.off_by()} %")Run after Step 1. It prints Routes with a distance in the name: 14, then five routes from 6 km Rundweg Heessen: measured 5.7 km, -5.0 % to 5 km Rundweg Herringen: measured 5.17 km, 3.4 %.
The interesting line is Route.signed_km = signed_km. The method is attached to the class, not to any single route, and all twenty objects made in Step 1 can use it at once. That is what a class is for: the data lives in each object, the behaviour lives in one place.
| Route | In the name, km | Measured, km | Difference |
|---|---|---|---|
| 6 km Rundweg Heessen | 6 | 5.70 | -5.0 % |
| 10 km Rundweg Bockum-Hövel | 10 | 9.71 | -2.9 % |
| 2,5 km Rundweg Selbachpark | 2.5 | 2.43 | -2.8 % |
| 5 km Rundweg Hamm-Mitte | 5 | 5.14 | +2.8 % |
| 5 km Rundweg Herringen | 5 | 5.17 | +3.4 % |
Data: Stadt Hamm, Laufstrecken Stadt Hamm, via Open.NRW and GovData, licence Datenlizenz Deutschland Namensnennung 2.0, downloaded 3 November 2026. The comparison with the names is ours. A route name is a friendly label, not a promise of precision; a difference of a few percent is normal for a signposted loop, and the city does not claim otherwise.
def finish(self, pace): # pace in minutes per km
minutes = round(self.km * pace)
return f"{minutes // 60}:{minutes % 60:02d}"
Route.finish = finish
for name in ["Halbmarathon", "Rund um Hamm-Mitte"]:
r = next(r for r in routes if r.name == name)
print(name, "at 6:00 per km:", r.finish(6), " at 5:15 per km:", r.finish(5.25))Run after Steps 1 and 2. It prints Halbmarathon at 6:00 per km: 2:07 at 5:15 per km: 1:51 and Rund um Hamm-Mitte at 6:00 per km: 4:13 at 5:15 per km: 3:41.
laps_for(target_km) that says how many laps of a Winterlaufstrecke make 10 km.signed_km that includes "2,5 km".signed_km returns for it.Class times
Times are set with each learner. These sample rows show how a Hamm time reads on the mentor's clock.
| Hamm | India until 28 March 2027 | India from 28 March 2027 |
|---|---|---|
| 14:15 | 18:45 | 17:45 |
| 17:15 | 21:45 | 20:45 |
| Saturday 11:30 | 16:00 | 15:00 |
| Sunday 09:00 | 13:30 | 12:30 |
German time follows the Einheitenzeitgesetz: MEZ (UTC+1) through the winter, MESZ (UTC+2) through the summer, with the change back on 25 October 2026 and the next change forward on 28 March 2027. India keeps UTC+5:30 the whole year, so the difference is four and a half hours now and three and a half hours after the spring change. No row here is a fixed batch.
Learners in Werne, Ahlen, Unna or Bergkamen take the same classes, since nothing depends on where you sit. The booking page shows each time in your own clock.
Milestones
Our own checkpoints, used to report to learners and parents.
| Checkpoint | The learner can show |
|---|---|
| 1 | A program that asks a question and answers it |
| 2 | A loop that stops at the right moment |
| 3 | A function used three times with different inputs |
| 4 | A class with two methods, used on real data |
| 5 | A tested program someone else can run |
The Hamm routes project is checkpoint 4. A learner who can explain why one method serves twenty objects has understood the idea that most beginners find hardest.
We report what was built and explained, never screen hours.
If you keep three lists that always change together, you probably want a class.
A sign on a path is a label; the measured data is the fact.
Beyond the first course
Live, in English, with one regular mentor, in a group or one to one.
HAM / KIDS / 01
The block-based first step for under-nines.
Open the syllabusHAM / KIDS / 02
Puzzles that build step-by-step thinking.
Open the syllabusHAM / KIDS / 03
School maths explored with Python.
Open the syllabusHAM / SCHOOL / 01
Alongside NRW Informatik from grade 5.
Open the syllabusHAM / SCHOOL / 02
Java and Python for the Oberstufe.
Open the syllabusHAM / SCHOOL / 03
Python on real datasets.
Open the syllabusHAM / ADULT / 01
Towards the Python Institute certificates.
Open the syllabusHAM / ADULT / 02
Scripts that save hours at work.
Open the syllabusHAM / ADULT / 03
For interviews and deeper code.
Open the syllabusHow classes run
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.
After school
Afternoons for pupils, from early afternoon.
After work
Early evening slots for adults.
1-on-1
A time you fix with your own mentor.
An hour each, live, with the same mentor.
The mentor guides; the hands on the keys are the learner's.
Twenty minutes, so it actually gets done.
Plain words, repeated when asked.
Open data from German cities, not toy lists only.
Fifteen to twenty learners, or just one.
Student work
Some projects by our students; 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
Billing is monthly, for eight classes. On this page the amount appears in euro, calculated with the European Central Bank reference rate; your card is charged in US dollars and your bank converts it, which can move the final figure slightly.
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 left on Google by students and parents, 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
Questions from Hamm
No. Classes are live and in English only. The mentors, who are based in India, speak clearly, adjust to the learner's pace and accent, and rephrase until it is understood. Python itself is written in English words, so the language of the lesson and the language of the code are the same.
A live video lesson of sixty minutes. The learner types Python on their own computer and shares the screen, and the mentor watches, explains and asks questions in real time. Nothing is a recording.
Around 9, when typing is comfortable. Younger children usually start with Scratch, where the same ideas are blocks, and move to Python and AI for Kids later.
Not at first. Younger children can start in an online editor in the browser. Teenagers and adults install Python in the first class with the mentor's help; it is free and takes a few minutes.
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 early afternoon or Saturday, adults an early evening.
It helps with the thinking behind it. NRW teaches compulsory Informatik in grades 5 and 6, and the written Informatik Abitur is done on paper without a computer, so we also practise reading and tracing code by hand. The school course is the one that is graded.
Yes. The Python Masterclass starts at zero. Adults usually book early evenings or weekend mornings, and many choose one to one so the projects can match their work.
Yes. It uses the dataset Laufstrecken Stadt Hamm, published by the city under the Datenlizenz Deutschland Namensnennung 2.0 and downloaded on 3 November 2026. The comparison between names and measured lengths is our own.
Between fifteen and twenty learners at a similar level. The one-to-one plan gives two private classes a week instead.
Monthly. The fee is shown in euro using the European Central Bank reference rate, but the payment is taken in US dollars and converted by your bank, so the statement can differ by a little. The first class is free.
Read next
More for Python learners in Hamm and North Rhine-Westphalia.
The Land page for NRW.
Our main Python page for Germany.
When children are ready to type.
The NRW Abitur in Informatik.
Getting ready for the youth contest.
All our Germany pages.
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
The free class is a real lesson: the learner writes and runs a first program while the mentor sees how they think and how much English support helps. Then we suggest a course and a group.
Want the details first? How we teach covers a live class in depth, and the course list has every syllabus.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
All classes are live online with mentors in India and taught in English only. Message us on WhatsApp in English for a fast reply.
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