PGO / PUPIL / 01
Python and AI for kids
A first Python course for younger pupils.
Open the syllabusGöttingen · Python · Taught live online
Göttingen has kept a weather record since the nineteenth century, and that record makes a fine Python teacher. On this page: what "live online" means in our Python classes, the order in which a beginner should learn the language, how it relates to Informatik at schools in Lower Saxony, and a project on seventy years of Göttingen weather in which copying three lines of code produces a wrong number that nobody would question.
Live online since 2020 · 10,000+ learners worldwide · real Python, typed by you
Briefly
Online Python classes for Göttingen at Modern Age Coders are live lessons over video, taught in English: the mentor and the learner see the same code, the learner types and runs it, and the mentor explains and corrects in real time. Pupils from about 10, students and adults move along one Python path at their own speed, and the mentor tunes the lesson to how fast they work and how they speak, whether they share it with fifteen to twenty others or have it alone.
Python courses
One for pupils who like maths, one for teenagers, one for adults who want Python for data.

PGO / 01
Pupils of about 10 to 15. School maths explored in Python: patterns, counting, averages and small simulations.
Open the syllabus →
PGO / 02
Ages 13 to 18. The full language from variables to functions and files, with projects on real data.
Open the syllabus →
PGO / 03
Students and adults. Python for reading, checking and summarising data, the skills the weather project uses.
Open the syllabus →Live, not recorded
Ours are. Every lesson is a real-time video call with a mentor, and the learner's own code is on the shared screen for most of it.
| Our live online class | A typical recorded course | |
|---|---|---|
| Who explains | A mentor, in real time | A video, the same for everyone |
| When you are stuck | You ask, and get an answer in seconds | You search, or wait for a forum reply |
| Who types | You, while the mentor watches | You, alone, after watching |
| Pace | Set by the mentor for you or your group | Set by you, which is easy to let slip |
| Errors | Read together, line by line | Often the point where learners stop |
A laptop or desktop computer, a browser, headphones and an internet connection good enough for a video call. In the first lesson the mentor helps install Python and a free editor.
Nothing else. There is no software to buy and no textbook to order.
All lessons are in English, taught by mentors based in India who adjust to each learner's accent and speed.
For a Göttingen learner that is rarely a hurdle: Python's keywords are English, and most of what is said in class is about code everyone can see.
A Göttingen data project
That copied code drifts, and that a function stops it. The Deutscher Wetterdienst publishes every daily reading of its Göttingen station, open data under CC BY 4.0, and the years 1950 to 2019 have no missing highs, lows or rain values at all.
Station 01691 is simply called Göttingen. Its daily file starts on 1 January 1858 and ends on 31 December 2025, 59,690 days in all. We downloaded it on 3 November 2026 and keep four columns for class in goettingen_daily.csv: the date, the day's highest and lowest temperature, and the rain in millimetres.
The early decades have many gaps, so we work with 1950 to 2019, seven complete decades.
How many summer days, with a high of 25 degrees or more? How many frost days, with a low below 0? How many wet days, with 1 mm of rain or more? We ask them first for the 2010s.
A beginner usually writes the first count, then copies it twice and edits the copies. That is what Version 1 does, with one small slip in the third copy, the kind every programmer has made.
import csv
with open("goettingen_daily.csv", encoding="utf-8") as f:
days = [row for row in csv.DictReader(f) if "2010" <= row["date"][:4] <= "2019"]
summer = 0
for day in days:
if day["high"] != "-999" and float(day["high"]) >= 25:
summer += 1
frost = 0
for day in days:
if day["low"] != "-999" and float(day["low"]) < 0:
frost += 1
wet = 0
for day in days:
if day["low"] != "-999" and float(day["low"]) >= 1.0:
wet += 1
print("2010s days:", len(days), " summer:", summer, " frost:", frost, " wet:", wet)It prints: 2010s days: 3652 summer: 436 frost: 792 wet: 2647.
Does 2,647 wet days in ten years sound right? It is about 72% of all days. Many people would accept it without a second look. But look at the third block: it still reads the column "low", copied from the frost block, and only the rule was changed. It has counted nights that stayed above 1 degree, not rainy days. No error message, just a believable wrong number.
The fix is not to be more careful with copying. It is to stop copying. The Python tutorial puts it plainly: "The keyword def introduces a function definition." Version 2 writes the counting once, as a function that takes the days, the column and the rule, and calls it three times for every decade. The rule is passed as a small anonymous function; in the tutorial's words, "Small anonymous functions can be created with the lambda keyword."
def count(days, column, rule):
total = 0
for day in days:
if day[column] != "-999" and rule(float(day[column])):
total += 1
return total
with open("goettingen_daily.csv", encoding="utf-8") as f:
everything = list(csv.DictReader(f))
for start in range(1950, 2020, 10):
decade = [d for d in everything if start <= int(d["date"][:4]) < start + 10]
print(start, len(decade),
count(decade, "high", lambda t: t >= 25),
count(decade, "low", lambda t: t < 0),
count(decade, "rain_mm", lambda r: r >= 1.0))Run after Version 1, it prints one line per decade (start year, days, summer days, frost days, wet days): 1950 3652 265 926 1148, 1960 3653 269 842 1229, 1970 3652 306 673 1150, 1980 3653 333 764 1243, 1990 3652 376 692 1156, 2000 3653 379 753 1164, 2010 3652 436 792 1072.
| Decade | Summer days (25 degrees or more) | Frost days (below 0) | Wet days (1 mm or more) |
|---|---|---|---|
| 1950s | 265 | 926 | 1,148 |
| 1960s | 269 | 842 | 1,229 |
| 1970s | 306 | 673 | 1,150 |
| 1980s | 333 | 764 | 1,243 |
| 1990s | 376 | 692 | 1,156 |
| 2000s | 379 | 753 | 1,164 |
| 2010s | 436 | 792 | 1,072 |
Counts are ours, from the DWD Climate Data Center daily file for station 01691 Göttingen (CC BY 4.0), fetched on 3 November 2026. The station metadata lists new positions on 15 December 1967, 12 August 1978, 10 November 1993 and 24 August 2007, so decades are not measured at exactly the same spot.
The real 2010s figure is 1,072 wet days, not 2,647. And with the function in place, the whole seventy-year table costs one loop. Any later fix, such as changing wet days to 5 mm or more, is made in one line and applies to every decade at once. That is why functions matter more than any other idea in the first months of Python.
count. Which decade had the most?count so it returns a share of days instead of a number, and explain why that is fairer for decades with 3,652 and 3,653 days.First steps in Python
Our order, which every learner follows at their own speed. The weather project sits at step 5.
Most self-taught beginners skip step 5 because programs still work without it, for a while. Then the copies drift, as Version 1 showed. In our classes functions come early and are used in every project from then on.
How long does it take? As our own rough guide, teenagers and adults with two lessons a week usually reach step 5 within two to three months and step 7 within six; younger pupils take longer. That is a planning figure from our teaching, not a promise.
Schools in Lower Saxony
Every pupil in Lower Saxony now has Informatik in the last two years of Sekundarstufe I. Earlier, it depends on the school.
The Gesellschaft für Informatik reports that since the 2024/25 school year every general school in Lower Saxony teaches Informatik as a required subject in Klasse 9 and 10. Haupt-, Real- and Oberschulen may add a two-hour elective from Klasse 6.
Later on, few keep going: the same Monitor puts Lower Saxony among the three Länder where only about every twelfth Oberstufe pupil chooses Informatik.
Learners who already write functions and read files arrive at grade 9 Informatik with time to think about ideas instead of syntax.
Our lessons run beside school and never replace it; marks come from the school course alone, and we promise none.
From the GI's Informatik-Monitor for 2026/27 (the Lower Saxony page and the Germany-wide summary), consulted 2 November 2026.
Times
Late afternoon in Göttingen is evening in India, and weekend afternoons work well too. Lessons continue through Lower Saxony's school holidays unless you pause them.
| Göttingen | India in winter (to 28 March 2027) | India in summer (from 28 March 2027) |
|---|---|---|
| 15:20 | 19:50 | 18:50 |
| 17:40 | 22:10 | 21:10 |
| Saturday 13:30 | 18:00 | 17:00 |
| Sunday 14:00 | 18:30 | 17:30 |
Germany switches between UTC+1 and UTC+2 under the Einheitenzeitgesetz. The clocks went back on 25 October 2026 and go forward on 28 March 2027; India stays at UTC+5:30, 4 h 30 ahead in winter and 3 h 30 in summer. No batch is fixed to these times.
| Holiday | First day | Last day |
|---|---|---|
| Autumn | 12 October 2026 | 24 October 2026 |
| Christmas | 23 December 2026 | 9 January 2027 |
| Winter | 1 February 2027 | 2 February 2027 |
| Easter | 22 March 2027 | 3 April 2027 |
| Summer | 8 July 2027 | 18 August 2027 |
Taken from the Kultusministerkonferenz overview of holidays for 2026/2027 (dated 9 October 2025), line for Niedersachsen, which also marks 7 May and 18 May 2027 as free days.
Checkpoints
Our checkpoints. Each one is a habit, not a topic.
| Habit | What it looks like |
|---|---|
| Predict | Says what a program will print before running it |
| Read errors | Reads a traceback from the bottom and finds the line |
| No copies | Turns repeated code into a function |
| Check data | Counts missing values before computing anything |
| Explain | Describes a result and its limits in plain words |
If you are about to paste the same block a third time, stop and write a function.
When a number looks reasonable, check it anyway. Reasonable is not the same as right.
Ask your teenager to show you a function they wrote and the three places it is used.
A short note each month says what was built, what was hard and what is next.
Next courses
For pupils, teenagers and adults. Taught live, in English, by a regular mentor.
PGO / PUPIL / 01
A first Python course for younger pupils.
Open the syllabusPGO / PUPIL / 02
Alongside school Informatik, grades 5 to 10.
Open the syllabusPGO / PUPIL / 03
Contest-style problems we write ourselves.
Open the syllabusPGO / TEEN / 01
Faster programs and why they are faster.
Open the syllabusPGO / TEEN / 02
Java and Python for the Abitur years.
Open the syllabusPGO / TEEN / 03
Keep every version of your code.
Open the syllabusPGO / ADULT / 01
The complete language for adult beginners.
Open the syllabusPGO / ADULT / 02
The numbers behind every summary.
Open the syllabusPGO / ADULT / 03
Store and query data properly.
Open the syllabusPracticalities
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.
Weekday afternoons
After school or lectures.
Weekday evenings
Until about 18:00 Göttingen time.
Weekends
Saturday or Sunday afternoons.
Mentor and learner see the same code.
You type; the mentor guides.
One person who follows your progress.
German open data from the first months.
Two live lessons of an hour.
A class of 15 to 20, or one to one.
Student work
Projects from our classes in other countries. The student labs show more of them.

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
Eight live lessons make up each monthly fee. Our euro figures come from the European Central Bank reference rate; your card is charged in US dollars and your bank does the exchange, so the euro amount it books can be a little 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 learners and parents wrote in their Google reviews, unchanged.
★★★★★
"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
Göttingen questions
No. All lessons are live and taught in English only, by mentors based in India who adapt to your pace and accent. We do not run German-language classes.
Live. Every lesson is a real-time video call with a mentor, with your code on the shared screen. There are no recorded lessons to work through alone.
From about 10 for this Python path, once typing is comfortable; younger children usually start with Scratch. Adults of any age are welcome.
Printing, variables, decisions and loops, then lists and dictionaries, then functions, then files. Functions come early in our classes because copied code causes hidden mistakes.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. Mentors in India teach in their evening while it is afternoon in Göttingen.
For Klasse 9 and 10, yes: the Gesellschaft für Informatik records it as required at every general school since 2024/25, with optional electives from Klasse 6 at some school types.
A Python project we wrote on the DWD station Göttingen. Counting summer, frost and wet days by copying code gives 2,647 wet days in the 2010s, a believable but wrong number; one function gives the right answer, 1,072, and a seventy-year table.
Python and a free code editor, which the mentor helps you install in the first lesson. You also need a browser for the video call and ideally headphones.
Between 15 and 20 people of roughly the same age share a group. Private lessons with your own mentor are the other option.
Each month. The page converts fees into euro with the ECB reference rate, while the charge runs in US dollars for your bank to change. Your trial costs nothing.
More pages
More for Python learners in Göttingen.
Everything we offer in Germany.
Rules and dates for the whole Land.
The exam at the end of school.
Where Python can lead.
What our students build.
Our method in detail.
Part of the guide: Coding classes in Lower Saxony
More guides: Coding classes in North Rhine-Westphalia · 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 trial is a live lesson: share your screen, write and run a short program with the mentor, and talk about what you want to do with Python. You then get a recommendation for a course and a time.
For more background, read how we teach or see the course catalogue.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Lessons run live online in English with mentors in India. WhatsApp is the fastest way to reach us.
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