POS / KIDS / 01
Python and AI for Kids
A gentle first language from nine.
Open the syllabusOsnabrück · Python, live online · Ages 10 to adult
Osnabrück publishes live data from its own street sensors, and anyone with a few lines of Python can read it. That is a good picture of what learning Python online can lead to. This page answers the five questions people in Osnabrück ask about live online lessons, gives an honest idea of how long the Python path takes, explains where Informatik sits in Lower Saxony schools, and walks through a project on the city's bike counter at Arndtplatz, where a program that reads only the first page of answers misses more than half the bikes.
Live online since 2020 · 10,000+ students worldwide · real code, real data, taught in English
In short
In Osnabrück, Modern Age Coders teaches Python online in live video lessons held in English. Learners write the code on their own machines; one regular mentor in India follows the shared screen, asks questions and fits pace and accent to them. Pupils from about ten start with Maths through Coding or Python for Teens; adults take the Python Masterclass or Python web development. Classes run for fifteen to twenty learners, or one to one.
Three Python courses
One for a pupil who likes maths, one for a teenager who wants the whole language, and one for an adult who wants Python that talks to the web.

POS / 01
Ten to fifteen. School maths, from fractions to functions, explored in Python, so a pupil learns both at once and sees why each formula works.
Open the syllabus →
POS / 02
Thirteen to eighteen, from the first variable to classes, files and web data such as the Osnabrück API in the project below.
Open the syllabus →
POS / 03
For adults who know a little Python: building web applications and APIs with Django and Flask, and reading other people's APIs.
Open the syllabus →Online, explained
These are the questions families and adult learners in Osnabrück ask before the first class, with the answers we give them.
The mentors are based in India, so an Osnabrück afternoon is their evening. Nobody is passed from mentor to mentor during a course, and after a few weeks the mentor knows which explanations work for them and which mistakes they tend to make.
The Python path
Longer than an advert says and shorter than many people fear. The table shows the timings our mentors plan with at two classes a week; every learner is different.
| Milestone | Pupils 10 to 12 | Teenagers | Adults |
|---|---|---|---|
| Programs with input, loops and conditions | 3 months | 2 months | 1 to 2 months |
| Functions, lists and dictionaries | 6 months | 4 months | 3 months |
| Reading files and real data | 9 months | 6 months | 4 months |
| Classes, testing and web data (APIs) | Second year | 9 to 12 months | 6 months |
Twenty minutes of practice between classes matters more than anything else. So does a project the learner cares about: a game, a maths question, or data about their own city.
Learners who already know Scratch or another language move faster through the first milestone.
Long gaps. Two weeks without any code costs about a week of progress, which is why classes carry on through the school holidays for anyone who wants them.
Copying code without understanding it, including code from an AI tool. Our mentors ask learners to explain every line they hand in.
Lower Saxony schools
Informatik is compulsory for every Lower Saxony pupil for two years, late in Sekundarstufe I. These facts were read in the Gesellschaft für Informatik's monitor and the KMK calendar on 2 November 2026.
The Informatik-Monitor 2026/27 notes that every general school in Niedersachsen has had to teach Informatik in the ninth and tenth school years since 2024/25. Which programming language a school uses is the school's choice.
A pupil who has already written Python for a year or two arrives in grade 9 able to concentrate on the ideas, such as algorithms and data, rather than on the syntax.
Lower Saxony's Gymnasium runs to grade 13: grade 11 is the Einführungsphase, grades 12 and 13 the Qualifikationsphase. Informatik there is a course pupils choose.
The monitor lists Niedersachsen among the Länder with the lowest uptake, about one Oberstufe pupil in twelve. Our classes run alongside school and award no marks; the school course is the one that counts.
| Break | From and to |
|---|---|
| Herbstferien | 12 to 24 October 2026 |
| Weihnachtsferien | 23 December 2026 to 9 January 2027 |
| Winterferien | 1 and 2 February 2027 |
| Osterferien | 22 March to 3 April 2027 |
| Sommerferien | 8 July to 18 August 2027 |
Informatik facts: GI Informatik-Monitor 2026/27, Niedersachsen page and the Länder comparison. Holidays: KMK Ferienkalender 2026/27, version of 9 October 2025; Lower Saxony also has free days on 7 and 18 May 2027. Modern Age Coders is independent of the GI, the KMK and the Niedersachsen ministry. The Herbstferien appear again in the project below.
A real Osnabrück project
The Datenplattform Osnabrück publishes counts from AI-based traffic sensors through an open API. Our teenagers and adults use one counter to learn the first rule of working with any web API: the answer comes in pages, and a program has to ask for all of them.
GovData lists the dataset Verkehrszählung Osnabrück from SWO Netz GmbH under the Datenlizenz Deutschland Namensnennung 2.0. It describes AI-based sensors that send traffic counts over LoRaWAN and tell apart cars, lorries, motorbikes, bicycles and pedestrians.
We use datastream 5521: bicycles counted at Arndtplatz/Martinistraße going into the Arndtstraße, one reading every 15 minutes. A full week would have 672 readings. We fetched the data on 4 November 2026.
The API never sends everything at once. Our request asks for 200 readings at a time; the reply contains those 200 and a field called @iot.nextLink with the address of the next page. The last page has no next link.
A program that reads only the first reply gets a number that looks perfectly reasonable, and is wrong. Nothing warns you.
import json
from urllib.parse import quote
from urllib.request import urlopen
BASE = "https://daten-api.osnabrueck.de/v1.1/Datastreams(5521)/Observations"
def fetch_week(start, end):
query = (f"$filter=phenomenonTime ge {start} and phenomenonTime lt {end}"
"&$select=phenomenonTime,result&$orderby=phenomenonTime asc&$top=200")
url = BASE + "?" + quote(query, safe="$=&,")
rows, pages = [], 0
while url:
with urlopen(url) as reply:
page = json.load(reply)
rows += page["value"]
pages += 1
url = page.get("@iot.nextLink") # missing on the last page
return rows, pages
school, pages = fetch_week("2026-10-05T00:00:00Z", "2026-10-12T00:00:00Z")
print("Pages:", pages, " readings:", len(school), "of", 7 * 96)
print("Bikes, 5 to 11 October 2026:", sum(r["result"] for r in school))It prints Pages: 4 readings: 636 of 672 and Bikes, 5 to 11 October 2026: 2063.
The loop keeps going while there is a next link and stops when the API stops sending one. Four pages came back for the week of 5 to 11 October 2026, with 636 of the 672 possible readings: 36 quarter-hours had no reading at all, which is worth reporting next to the total.
first_page_only = school[:200]
print("If we had stopped after page 1:", sum(r["result"] for r in first_page_only), "bikes")
holiday, pages = fetch_week("2026-10-12T00:00:00Z", "2026-10-19T00:00:00Z")
print("Pages:", pages, " readings:", len(holiday), "of", 7 * 96)
print("Bikes, 12 to 18 October 2026 (Herbstferien):", sum(r["result"] for r in holiday))Run after Version 1. It prints If we had stopped after page 1: 865 bikes, then Pages: 3 readings: 600 of 672 and Bikes, 12 to 18 October 2026 (Herbstferien): 1559.
With only the first page, the week would have had 865 bikes, fewer than half of the real 2,063. The second week falls in the Lower Saxony Herbstferien and shows 1,559 bikes, but it also has fewer readings, 600 against 636. Dividing by the readings, the school week averaged 3.24 bikes per quarter-hour and the holiday week 2.60, still about a fifth lower. That is our calculation, not a claim about why.
| Week | Pages | Readings of 672 | Bikes |
|---|---|---|---|
| 5 to 11 October, school week | 4 | 636 | 2,063 |
| Same week, first page only | 1 | 200 | 865 |
| 12 to 18 October, Herbstferien | 3 | 600 | 1,559 |
Data: Datenplattform Osnabrück, SensorThings API, datastream 5521 (Fahrraeder, Arndtplatz/Martinistraße, in die Arndtstraße), listed on GovData as Verkehrszählung Osnabrück under the Datenlizenz Deutschland Namensnennung 2.0, fetched 4 November 2026. Totals, readings and per-reading averages are ours. Because the API is live, a later run can differ if the platform corrects past readings.
$top=200 to $top=50. How many pages now, and does the total change?phenomenonTime and find the busiest day of each week.Times
Pick what suits you. Here is how a few Osnabrück times read on the mentor's clock.
| Osnabrück | India this winter | India from 28 March 2027 |
|---|---|---|
| 15:10 | 19:40 | 18:40 |
| 16:40 | 21:10 | 20:10 |
| Saturday 14:00 | 18:30 | 17:30 |
| Sunday 11:30 | 16:00 | 15:00 |
Since 25 October 2026 Germany has been on MEZ, UTC+1; on 28 March 2027 it moves to MESZ, UTC+2, as the Einheitenzeitgesetz sets out. India is fixed at UTC+5:30. That makes the gap 4 h 30 this winter and 3 h 30 from the end of March. The rows are conversions only, never fixed batch times.
Learners in Georgsmarienhütte, Bramsche, Wallenhorst, Belm or Melle join the same live classes. The booking page shows each slot on your own clock.
Milestones
Five steps we use in our progress notes.
| Step | What the learner can do |
|---|---|
| 1 | Write a program that asks, decides and answers |
| 2 | Use loops that stop at the right time |
| 3 | Organise data in lists and dictionaries |
| 4 | Read a file or a web API completely and summarise it |
| 5 | Check their own results and report what is missing |
The Arndtplatz project covers steps 4 and 5. A learner who has seen 865 turn into 2,063 knows to ask whether a computer has really read everything.
Notes to you describe code written and ideas explained.
If an answer can come in pages, assume it does.
Report how many readings you got, not just the total.
Further courses
The same live format in English, with one mentor, as a class or one to one.
POS / KIDS / 01
A gentle first language from nine.
Open the syllabusPOS / KIDS / 02
Blocks before typing, for the youngest.
Open the syllabusPOS / KIDS / 03
Step-by-step thinking through puzzles.
Open the syllabusPOS / SCHOOL / 01
Ready for Informatik in grades 9 and 10.
Open the syllabusPOS / SCHOOL / 02
For the Qualifikationsphase.
Open the syllabusPOS / SCHOOL / 03
Charts and models from real data.
Open the syllabusPOS / ADULT / 01
From no code at all to confident.
Open the syllabusPOS / ADULT / 02
Towards the Python Institute exam.
Open the syllabusPOS / ADULT / 03
Databases behind every web API.
Open the syllabusHow it runs
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
Mid-afternoon on weekdays.
Weekends
Late morning to afternoon.
1-on-1
Agreed with your own mentor.
Help while you are stuck, not later.
Every line is the learner's own.
Continuity from first class to last.
Twenty minutes between lessons.
Real German open data and APIs.
Fifteen to twenty learners, or one.
Student work
A small selection of student projects; the student labs page has the full set.

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
The monthly fee includes eight live lessons. We quote it in euro using the European Central Bank reference rate; the money is collected in US dollars and converted by your bank, so a small difference on your statement is to be expected.
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 posted on Google, unaltered.
★★★★★
"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 Osnabrück
No. Classes are live and taught in English only. The mentors, who work from India, adapt to each learner's pace and accent and put key terms in the chat, so learners who are not fluent in English can follow.
Live, always. A mentor is on video for the whole hour, sees the learner's screen and helps in real time. Nothing is pre-recorded.
Our mentors plan with about two months for a teenager to write programs with loops and conditions, and about six to work with real data, at two classes a week. Adults often move faster and children of ten to twelve a little slower; every learner differs.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. Mid-afternoon after school and weekend late mornings are common choices in Osnabrück.
For every pupil in the ninth school year: the Gesellschaft für Informatik reports it as compulsory in grades 9 and 10 across Lower Saxony since 2024/25. In the Oberstufe it is a course pupils can choose.
An API is a way for programs to ask a website for data. The Osnabrück platform answers in pages of readings, so the project teaches learners to follow every page. Working with APIs is a normal part of real Python work.
Yes. It comes from the Datenplattform Osnabrück traffic sensors, datastream 5521 at Arndtplatz/Martinistraße, listed on GovData under the Datenlizenz Deutschland Namensnennung 2.0 and fetched on 4 November 2026. The totals are our own.
Yes. The Python Masterclass starts from nothing. Adults who already know some Python often choose Python Web Development, where they build and use APIs themselves.
Fifteen to twenty learners at a similar level in a group class. One-to-one classes are private, two a week.
By the month. The fee is shown in euro at the European Central Bank reference rate and charged in US dollars, which your bank converts, so the statement can differ by a little. The first class is free.
Read next
Further pages for Python learners around Osnabrück.
The Land page for Niedersachsen.
Our main Python page.
The same subject, in German, for pupils.
The Abitur course in Lower Saxony.
Courses for 13 to 18.
All our Germany pages.
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
It is a normal lesson: you write and run a small program while the mentor sees how you approach it and how much English support is useful. Afterwards we recommend a course and group.
Background reading: how we teach; every syllabus is under courses.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Live online lessons in English only, with mentors in India. A WhatsApp message gets the quickest 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