BOT / YOUNG / 01
Informatik Companion
Beside school Informatik from grade 5.
Open the syllabusBottrop · Python · Live online, in English
Can a pupil in Bottrop take Informatik in the Oberstufe, and as a Leistungskurs? The answer is sitting in two open files from the NRW school ministry, and a learner who knows a little Python can find it in six steps. That project is the centre of this page. Around it: how our live online Python lessons in English actually run, what NRW schools teach in Informatik from grade 5 to the Abitur, and the times that suit Bottrop.
Live online since 2020 · 10,000+ learners worldwide · Python you type and understand
Short version
Modern Age Coders teaches Python to Bottrop learners in live video lessons held in English. Learner and mentor look at one shared screen of code; the learner types, runs and fixes it while the mentor guides as it happens. From roughly age 10 up to adults, everyone works through one Python sequence at a speed that suits them, taught by a mentor who adapts to how they speak, either among fifteen to twenty classmates or privately.
Python to start with
Three starting points by age and goal; the trial lesson decides.

BOT / 01
Younger learners from 9. First typed programs, games and small files, at a gentler pace.
Open the syllabus →
BOT / 02
Teenagers. Lists, dictionaries, sets, functions and real files, like the NRW school data below.
Open the syllabus →
BOT / 03
Oberstufe pupils. Java and Python alongside the school course, including tracing code on paper for the written exam.
Open the syllabus →Live online
A video call, one shared screen, and the learner's hands on the keyboard. Nothing is recorded and nothing is left for later.
A real person on video for the whole hour, who sees the learner's code as it is typed and can point to a line the moment something goes wrong.
The mentor explains and asks, but the learner writes every line. Learning to type, run and read Python is the skill; watching someone else do it is not.
When Python prints an error, mentor and learner read it together from the bottom up. After a few weeks most learners can fix their own mistakes before asking.
Bring a computer with a keyboard, a connection that handles video calls, and somewhere calm to sit; headphones are a plus. Setting up Python and a free editor is part of lesson one.
Tablets and phones are not suitable for typed Python. For children under 12, a parent nearby for the first lessons makes the screen sharing easier.
Lessons are only ever in English. The mentors work from India and get used to each learner's voice and tempo within the first weeks.
Python is itself written in English words, so a Bottrop pupil reads print, for and if as they are, and practises English along the way.
A Bottrop data project
Four of the five, and none as a Leistungskurs, as the files listed them. The NRW school ministry publishes its list of schools and the Oberstufe courses each one offers, free to reuse under the Datenlizenz Deutschland Namensnennung 2.0. Our learners answer the question in six steps and print a count after each one.
Schulgrunddaten NRW lists every school with a school number, a school type code and a municipality code. The course file, Kursangebot in der gymnasialen Oberstufe, lists for each school number the subjects it offers as Grundkurs and Leistungskurs in each phase. The ministry notes that the two can be linked "über die Schulnummer".
We downloaded both on 3 November 2026 and kept only the columns we need in two class files, schulen_nrw.csv and kurse_nrw.csv. In the key file the subject code for Informatik is IF.
A filter that returns zero is a mystery: was there really nothing, or did one condition go wrong? Printing the count after every step turns the mystery into a map. If a step drops more rows than expected, that is where to look.
Bottrop's municipality code is 05512000, and school types are codes too: 15 is Gesamtschule and 20 is Gymnasium, the two school types with an Oberstufe in this file.
import csv
with open("schulen_nrw.csv", encoding="utf-8") as f:
schools = list(csv.DictReader(f))
print("Step 1, all schools in NRW:", len(schools))
bottrop = [s for s in schools if s["municipality"] == "05512000"]
print("Step 2, in Bottrop:", len(bottrop))
upper = [s for s in bottrop if s["school_type"] in ("15", "20")]
print("Step 3, Gesamtschule or Gymnasium:", len(upper))It prints: Step 1, all schools in NRW: 5646, Step 2, in Bottrop: 32 and Step 3, Gesamtschule or Gymnasium: 5.
Each count can be checked by eye. Thirty-two entries in Bottrop, including primary schools and a few that are not schools at all, such as the school supervision office, which has its own type code. Five of them are a Gesamtschule or a Gymnasium. Now the second file: keep only the courses of those five, then narrow down to Informatik, then to Leistungskurs.
numbers = {s["school_no"] for s in upper}
with open("kurse_nrw.csv", encoding="utf-8") as f:
courses = [c for c in csv.DictReader(f) if c["school_no"] in numbers]
print("Step 4, schools with any Oberstufe course listed:", len({c["school_no"] for c in courses}))
informatik = [c for c in courses if c["subject"] == "IF"]
print("Step 5, offering Informatik:", len({c["school_no"] for c in informatik}))
lk = [c for c in informatik if c["lk_q1"] == "1" or c["lk_q2"] == "1"]
print("Step 6, offering it as Leistungskurs:", len({c["school_no"] for c in lk}))Run after Steps 1 to 3, it prints: Step 4, schools with any Oberstufe course listed: 5, Step 5, offering Informatik: 4 and Step 6, offering it as Leistungskurs: 0.
| Step | Count |
|---|---|
| 1. Schools and school offices in NRW | 5,646 |
| 2. In Bottrop (municipality 05512000) | 32 |
| 3. Gesamtschule or Gymnasium | 5 |
| 4. With Oberstufe courses listed | 5 |
| 5. Listing Informatik | 4 |
| 6. Listing Informatik as Leistungskurs | 0 |
Files from the NRW Ministerium für Schule und Bildung (Schulgrunddaten NRW; Kursangebot in der gymnasialen Oberstufe), Datenlizenz Deutschland Namensnennung 2.0, retrieved on 3 November 2026; every count here is our own. The ministry notes that schools may offer further subjects through cooperations not listed here, and that the data come from the previous year's survey, with 15 October as the reference date.
That last note matters more than any line of code. Step 6 says 0, but the file only lists what each school offers itself; a cooperation with a neighbouring school could add a Leistungskurs that the file never shows. A careful analyst reports "none listed in the ministry file" rather than "impossible in Bottrop". Across the whole of NRW the same file lists Informatik at 654 of 956 schools with Oberstufe courses, and as a Leistungskurs at 109.
Schools in NRW
Early, from grade 5, and with a written exam on paper at the end. The NRW rules for 2026/27 are summarised by the GI's Informatik-Monitor.
| Stage | What NRW provides |
|---|---|
| Grades 5 and 6 | Compulsory Informatik at all general school types |
| Qualifikationsphase | Grundkurs with three weekly lessons, or Leistungskurs with five, where offered |
| Written Abitur | Tasks set centrally; no computer is used in the written exam |
| Written exams 2027 | 13 April to 5 May 2027 |
Sources: Gesellschaft für Informatik, Informatik-Monitor 2026/27, NRW page, and the NRW school ministry's standardsicherung page on Zentralabitur dates for 2027, both read on 2 November 2026. The Monitor's words on the exam: "Der Einsatz eines Computers ist für die Bearbeitung der schriftlich Abituraufgaben nicht vorgesehen."
Two practical points follow for Bottrop families. First, whether a Leistungskurs exists depends on the school, as the data project shows. Second, because the written exam is on paper, a pupil must be able to read and trace code without running it. In our classes every program is predicted on paper before it runs. Our role is to support, not to replace: marks come only from the school.
The Python path
Our order, for every age. The funnel project above uses everything up to sets and files.
Printing and variables first, then decisions with if, then loops. After that come lists, and from lists the comprehension, the one-line filter used in every step of the funnel.
Then dictionaries and sets. A set is how the funnel counts schools rather than course rows: a school offering Informatik in three phases is still one school.
Files, with the habit of looking at the first lines before parsing. Both NRW files begin with a line "sep=;" before the real header, which our class files remove.
Then functions, so a six-step analysis can be rerun for any city and any subject, and finally projects that a learner can explain to someone else.
As our own rough guide, a teenager or adult with two lessons a week can write a funnel like this one after about three months. Younger pupils need longer, which is normal.
Times
Late afternoon in Bottrop is evening in India, where the mentors are. NRW holidays do not pause lessons unless you want them to.
| In Bottrop | In India now | In India from 28 March 2027 |
|---|---|---|
| 15:25 | 19:55 | 18:55 |
| 17:10 | 21:40 | 20:40 |
| Saturday 14:00 | 18:30 | 17:30 |
| Sunday 10:45 | 15:15 | 14:15 |
Time in Germany follows the Einheitenzeitgesetz: UTC+1 in winter, UTC+2 in summer. The 2026 summer time ended on 25 October 2026; 2027 summer time starts on 28 March 2027. India never changes from UTC+5:30, so it is four and a half hours later than Bottrop in winter and three and a half in summer. Examples, not set times.
| Break | From | Until |
|---|---|---|
| Autumn | 17 October 2026 | 31 October 2026 |
| Christmas | 23 December 2026 | 6 January 2027 |
| Easter | Mon 22 March 2027 | Sat 3 April 2027 |
| Whitsun | 18 May 2027 | 18 May 2027 |
| Summer | 19 July 2027 | 31 August 2027 |
Source: KMK, Ferien im Schuljahr 2026/2027, Nordrhein-Westfalen row, status 9 October 2025. NRW has no winter break in this table.
Checkpoints
Our checkpoints, each one a thing the learner can do without help.
| Checkpoint | Shows that the learner can |
|---|---|
| Prediction | Say what a program prints before running it |
| Comprehension | Write a one-line filter over a list |
| Sets | Count distinct things, not rows |
| Funnel | Print a count after every filtering step |
| Caveat | Say what the data cannot show |
When a filter gives you zero, do not trust it yet. Print the count after every step and find where the rows went.
Read the notes that come with a dataset. They often say what the data leaves out.
Ask your child to walk you through their steps and the count at each one.
A monthly note sums up what was built and what is next.
More courses
For three age groups, all live and in English with a regular mentor.
BOT / YOUNG / 01
Beside school Informatik from grade 5.
Open the syllabusBOT / YOUNG / 02
Logic puzzles that prepare for code.
Open the syllabusBOT / YOUNG / 03
For younger siblings first.
Open the syllabusBOT / TEEN / 01
Object-oriented programming in Java.
Open the syllabusBOT / TEEN / 02
Fast, correct solutions under time limits.
Open the syllabusBOT / TEEN / 03
Joins and filters in a database.
Open the syllabusBOT / ADULT / 01
A full course for adult beginners.
Open the syllabusBOT / ADULT / 02
From files to clear findings.
Open the syllabusBOT / ADULT / 03
Build complete web applications.
Open the syllabusPractical details
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.
Afternoon
After school in Bottrop.
Early evening
For adults after work.
Weekend
Saturday afternoon or Sunday morning.
Learner and mentor see the same code.
Every line comes from the learner.
Continuity from week to week.
Projects on real German files.
Code traced by hand, for the exam.
15 to 20 learners, or one to one.
Student work
A few projects by our students abroad. The student labs page holds the rest.

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 pays for eight live lessons. We show euro amounts calculated with the European Central Bank reference rate; the actual payment is in US dollars, and your bank converts it, so the euro debit can come out marginally 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
Our Google reviews, quoted without edits.
★★★★★
"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
Bottrop asks
No, English is the only teaching language. Mentors in India keep to each learner's tempo and accent, and there is no German option.
Yes, every minute of it. You and the mentor are on a video call together, looking at your own code, and no part of the course is pre-recorded.
Typed Python suits most learners from about 10, and our children's Python course takes nine year olds. Below that, Scratch comes first. There is no upper limit.
In the NRW ministry's course file, four of Bottrop's five Gymnasien and Gesamtschulen list Informatik in the Oberstufe and none lists it as Leistungskurs. Schools may offer more through cooperations not shown in the file, so ask the school.
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays. Bottrop afternoons are evenings in India.
Yes, in grades 5 and 6 at all general school types, according to the Gesellschaft für Informatik. In the Qualifikationsphase it can be a three-hour Grundkurs or a five-hour Leistungskurs where a school offers it.
We teach alongside the school course, including Java and Python and tracing code on paper, since the written NRW exam uses no computer. We promise no marks; school grades come from school.
A Python task we designed around the NRW school ministry's open files. Learners filter from 5,646 entries for NRW down to Bottrop's five Oberstufe schools in six steps, printing a count after each, and find Informatik listed at four of them.
Each group has fifteen to twenty people of about the same age; private lessons are the alternative.
Per month. Euro figures here use the ECB reference rate, the charge itself goes through in US dollars, and your bank converts it. Your trial costs nothing.
Read on
Further reading for the Ruhr.
All of Germany on one page.
The NRW overview.
The exam in detail.
A machine-learning project on German data.
Projects by our students.
How a live class works.
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
Your trial is a full lesson: screen shared, a first program written and run together, and a few minutes on what you want Python for. You leave with a recommended course and slot.
For background, see how we teach or look through all courses.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Taught live, online and in English from India. Questions? WhatsApp is the quick route.
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