HEP / YOUNG / 01
Scratch coding
For younger siblings not ready to type yet.
Open the syllabusHeilbronn · Python · Live online lessons
"Online" can mean a video you watch alone or a teacher you talk to. Ours are the second kind: a live mentor, a shared screen and your own keyboard, every lesson. This page shows what happens in one of those lessons, the order in which Python is learned, how it sits beside the new compulsory Informatik subject in Baden-Württemberg, and a project on Heilbronn's own market list in which a perfectly ordinary Python dictionary loses two traders without a word of warning.
Live online since 2020 · 10,000+ learners worldwide · a real mentor in every Python lesson
What this is
Online Python classes for Heilbronn at Modern Age Coders are live video lessons in English: a mentor and the learner share code on screen, the learner types every line, and questions are answered on the spot. Children from about 9, teenagers and adults follow the same Python path at their own speed, either in a class of fifteen to twenty or privately, with a mentor who matches their pace and accent.
Three Python starts
The same language at three ages. The trial lesson settles which one fits.

HEP / 01
Ages 9 to 12. Typed Python from lesson one: drawings, games, lists and small data files, with the mentor beside them on screen.
Open the syllabus →
HEP / 02
Ages 13 to 18. From variables to files, functions and dictionaries, then projects on real open data like the Heilbronn market list.
Open the syllabus →
HEP / 03
Adults and students. A complete course for beginners who want Python for work, study or a change of direction.
Open the syllabus →Live online, explained
Nothing is pre-recorded. Here is a typical hour, step by step, as a Heilbronn learner would see it.
A laptop or desktop computer with a keyboard, a stable internet connection and a quiet corner. A tablet works for Scratch but not for typed Python. Headphones help younger children concentrate.
Parents do not need to know Python. For children under 12 we ask that an adult is nearby for the first few lessons, mostly to help with the screen sharing.
A recorded course cannot see that a learner has misread an error message. A mentor can, within seconds, and that is where most beginners otherwise give up.
Live classes also set a rhythm. Two fixed lessons a week keep a learner moving through the dull middle part of learning a language, where many self-taught learners stop.
All lessons are taught in English, by mentors based in India. Python itself is written in English words such as print, for and while, so a learner in Heilbronn who studies it in English is reading the language the way it is written.
A Heilbronn data project
Because one stall number is shared, and a dictionary keeps only one value per key. Stadt Heilbronn publishes its weekly market list as open data under CC BY 4.0, and our learners use it to discover that rule the memorable way.
The dataset is called "Heilbronner Wochenmarkt" on the city's open data portal, published on 9 March 2022, with a list of market traders and their market days dated 1 March 2022. We downloaded it on 3 November 2026: 1,717 bytes, semicolon separated, one row per trader.
Each row has a stall number (STANDORT), a category, the trader's name and seven columns MO to SO with a 1 on each day the trader comes. One row describes a visiting service rather than a trader; we take it out before class, which leaves 30 rows in our file wochenmarkt_2022.csv.
The learner wants to look up any trader by stall number, so a dictionary is the natural choice: the stall as the key, the name as the value. The first program builds it and prints how many stalls it holds.
Before running it, the learner writes down a prediction. Almost everyone predicts 30, one entry per row. The program disagrees.
import csv
rows = []
stalls = {}
with open("wochenmarkt_2022.csv", encoding="utf-8") as f:
for row in csv.DictReader(f, delimiter=";"):
rows.append(row)
stalls[row["STANDORT"]] = row["NAME"]
print("Rows read:", len(rows))
print("Stalls in the dictionary:", len(stalls))
print("Stall 18 belongs to:", stalls["18"])It prints: Rows read: 30, Stalls in the dictionary: 28 and Stall 18 belongs to: Olivenoel, Tee und Honig aus Kreta.
Thirty rows went in and 28 entries came out. No error, no warning. The Python tutorial explains why in one sentence: "If you store using a key that is already in use, the old value associated with that key is forgotten." Somewhere in the file a stall number appears more than once, and each new trader quietly replaced the one before. Version 2 counts every stall number before trusting it as a key.
from collections import Counter
uses = Counter(row["STANDORT"] for row in rows)
shared = {stall: n for stall, n in uses.items() if n > 1}
print("Stall numbers used more than once:", shared)Run after Version 1, it prints: Stall numbers used more than once: {'18': 3}.
Stall 18 is home to three different traders, so the dictionary kept only the last one read and forgot two. The cure is to store a list of names for each stall instead of a single name. Version 3 does that, then answers a question a market visitor might actually ask: how many traders come on each day of the week?
traders = {}
for row in rows:
traders.setdefault(row["STANDORT"], []).append(row["NAME"].strip())
print("Traders at stall 18:", len(traders["18"]))
for day in ["MO", "DI", "MI", "DO", "FR", "SA", "SO"]:
print(day, sum(1 for row in rows if row[day] == "1"))Run after Versions 1 and 2, it prints Traders at stall 18: 3, then one line per day: MO 0, DI 13, MI 0, DO 19, FR 0, SA 25, SO 0.
| Day | Traders listed |
|---|---|
| Tuesday (DI) | 13 |
| Thursday (DO) | 19 |
| Saturday (SA) | 25 |
| Monday, Wednesday, Friday, Sunday | 0 |
Data: Stadt Heilbronn, Heilbronner Wochenmarkt, resource "Wochenmarkthändler und ihre Markttage 2022", licence CC BY 4.0, downloaded 3 November 2026. Counts are our own, from our 30-row class file. Eleven traders are listed for all three market days. The list dates from 2022, so it describes that market, not today's.
The file has more surprises for sharp eyes, and each one is a small lesson. Stall labels include 13a and 28a, so the stall column is text, not a number, and sorting it naively puts 13a in an odd place. Numbers 4 and 5 never appear. One name starts with a space. Umlauts are written out as ue and ae, and the category for fruit and vegetables is spelled GEMueSE UND OBST, half in capitals. None of this is wrong; it is simply what real files look like.
The Python path
Months, not weeks, and the order matters more than the speed. These are our own stages, used for every age; children take longer at each stage than adults.
| Stage | What the learner can do | Teen or adult, typical lessons | Child 9 to 12, typical lessons |
|---|---|---|---|
| 1. First programs | print, input, variables, simple arithmetic | 4 to 6 | 8 to 10 |
| 2. Decisions and loops | if, while and for, small games | 8 to 10 | 12 to 16 |
| 3. Collections | lists and dictionaries, and when each fits | 8 to 10 | 14 to 18 |
| 4. Files | read a CSV file, check it, count with it | 6 to 8 | 10 to 14 |
| 5. Functions and tests | split a program into tested pieces | 8 to 12 | Usually after 12 |
| 6. Projects | a project on real data, explained to others | Ongoing | Ongoing |
Our own planning figures from teaching Python live online since 2020, not a promise; every learner is different. The market project above belongs to stages 3 and 4.
The commonest mistake self-taught learners make is to rush stage 3. Lists and dictionaries look simple, but choosing between them, and knowing what each will silently do with duplicates, is exactly what the market file tests. We spend time there on purpose.
Schools in Baden-Württemberg
Informatik is now compulsory in Baden-Württemberg from grade 5, but it starts with the basics and grows year by year. The Gesellschaft für Informatik records the details for 2026/27.
| Topic | What the Informatik-Monitor 2026/27 records |
|---|---|
| New compulsory subject | Informatik und Medienbildung, across all Sek I school types from 2025/26 |
| First grades | Started in grades 5 and 6, then growing year by year |
| National comparison | One of four Länder meeting the short-term goal of four compulsory hours |
| Older profile subject | IMP (Informatik, Mathematik, Physik) is being phased out |
| Oberstufe | Only about one pupil in twelve takes Informatik, among the lowest shares in Germany |
Source: Gesellschaft für Informatik, Informatik-Monitor 2026/27, national overview and Baden-Württemberg page, read on 2 November 2026. Its words for the new subject: "Pflichtfach Informatik und Medienbildung", introduced "mit dem Schuljahr 2025/2026".
For a Heilbronn family this means two things. Younger pupils will meet computing at school sooner than their older siblings did, which is good news. But the Oberstufe figure shows that most pupils still leave school without studying Informatik in depth. Our Python classes sit alongside school for both groups: a head start for the younger ones and depth for teenagers who want more than the timetable gives. We teach alongside school, not instead of it, and the school's own course is the one that counts for grades.
Times
Afternoons and early evenings in Heilbronn fall in the Indian evening, so the hours work for both sides. School holidays do not pause the classes unless you want them to.
| Heilbronn | India until 28 March 2027 | India from 28 March 2027 |
|---|---|---|
| 15:45 | 20:15 | 19:15 |
| 17:45 | 22:15 | 21:15 |
| Saturday 11:30 | 16:00 | 15:00 |
| Sunday 16:00 | 20:30 | 19:30 |
Germany runs on UTC+1 in winter and UTC+2 in summer under the Einheitenzeitgesetz; the 2026 summer time finished on 25 October 2026 and the next begins on 28 March 2027. India stays at UTC+5:30, which puts it 4 h 30 ahead of Heilbronn in winter and 3 h 30 ahead in summer. Times shown are examples only.
| Break | Dates |
|---|---|
| Autumn | 26 to 30 October 2026, plus 31 October |
| Christmas | 23 December 2026 to 9 January 2027 |
| Easter | 25 March, then 30 March to 3 April 2027 |
| Whitsun | 18 to 29 May 2027 |
| Summer | 29 July to 11 September 2027 |
Source: Kultusministerkonferenz, Ferien im Schuljahr 2026/2027, Baden-Württemberg row, status 9 October 2025. The KMK sets summer holidays; Baden-Württemberg sets the rest.
Signs of progress
Our checkpoints. A learner who can do the right-hand column without help has truly learned the stage.
| Stage | Can follow along | Can do alone |
|---|---|---|
| Variables | Copies a program and runs it | Predicts its output before running |
| Loops | Changes a loop that works | Writes a loop from a plain-English task |
| Dictionaries | Looks up a key | Checks a key column for duplicates first |
| Files | Opens a file the mentor chose | Opens a new file and reports its oddities |
| Functions | Calls a function | Writes and tests one |
Before you trust a dictionary, ask how many rows went in and how many keys came out. If the numbers differ, something was forgotten.
Say your prediction out loud before you press run. Being wrong is how you learn which idea you had not understood.
Ask your child to show you one surprising output from this week and explain it. That is a better progress check than any certificate.
Mentors send a short note each month: what was built, what was hard, and the next stage.
Beyond the first course
Where Python leads next, by age. All taught live in English by a regular mentor.
HEP / YOUNG / 01
For younger siblings not ready to type yet.
Open the syllabusHEP / YOUNG / 02
School maths turned into small Python programs.
Open the syllabusHEP / YOUNG / 03
Support beside the new BW subject, in English.
Open the syllabusHEP / TEEN / 01
Charts and conclusions from real files.
Open the syllabusHEP / TEEN / 02
Why a dictionary is fast, and when it is not.
Open the syllabusHEP / TEEN / 03
Models built in Python and tested honestly.
Open the syllabusHEP / ADULT / 01
Scripts that save hours each week.
Open the syllabusHEP / ADULT / 02
From spreadsheets to reproducible Python.
Open the syllabusHEP / ADULT / 03
Where keys must be unique by design.
Open the syllabusOrganisation
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
Heilbronn afternoons for pupils.
After work
Early evening slots for adults.
Weekends
Saturday and Sunday, morning or afternoon.
You see the mentor and the mentor sees your code.
The learner types; the mentor guides.
An hour each, at fixed times you choose.
Every lesson is live; there is no video library to fall behind on.
Short written progress for learners and parents.
Join a class of 15 to 20, or learn privately.
Student work
Work by our students in other countries, made in the same live lessons. More is 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
You pay monthly, and each month includes eight live lessons. Euro amounts here follow the European Central Bank reference rate, but checkout takes payment in US dollars; your bank does the currency conversion, so the euro total on your statement can be a touch 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
Unedited Google reviews from our learners and their parents.
★★★★★
"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
Heilbronn asks
No. Lessons are live and in English only. Our mentors are based in India and adapt to each learner's pace and accent, but they do not teach in German.
A real mentor on a video call in real time, with the learner's code shared on screen. Nothing is pre-recorded. The learner types, the mentor guides and answers questions as they come up.
A laptop or desktop with a keyboard, a browser, a steady internet connection and ideally headphones. We help install a free code editor in the first lesson. Tablets are not suitable for typed Python.
From about 9, once a child reads and types comfortably. Younger children start with Scratch. There is no upper age limit; many of our Python learners are adults.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. Heilbronn afternoons and early evenings are evening in India.
Yes, since the 2025/26 school year: the Gesellschaft für Informatik records the new compulsory subject Informatik und Medienbildung across secondary school types, starting in grades 5 and 6 and growing each year.
We cannot promise grades. We teach alongside school, and the school course is the one that is assessed. What our classes add is regular practice and depth in Python and problem solving.
An original Python exercise of ours on Stadt Heilbronn's open Wochenmarkt list, licensed CC BY 4.0. Thirty rows go into a dictionary and only 28 entries come out, because stall 18 is shared by three traders. Learners find out why and fix it.
Group classes have 15 to 20 learners of a similar age. One-to-one lessons are also available, with the same mentor at times you agree.
Monthly. Fees appear in euro, converted at the European Central Bank reference rate, and payment is taken in US dollars, which your bank converts. The trial lesson is free.
Read next
More for Python learners in Heilbronn and the region.
All our Germany pages in one place.
The Land rules and holidays in full.
For pupils heading to the Oberstufe.
Where Python leads next.
Projects built in our classes.
Our teaching approach in detail.
Part of the guide: Coding classes in Baden-Württemberg
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 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 trial is a real lesson: you share your screen, write a first Python program with the mentor, and talk about what you want to build. Afterwards the mentor recommends a course and a time.
Want to know more first? See how we teach, or browse every course and its syllabus.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Lessons are live online with mentors in India and taught only in English. Message us on WhatsApp for the fastest 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