PJE / KIDS / 01
Coding for kids
Scratch first for children not yet ready to type.
Open the syllabusJena · Python · Live online
Jena has measured its weather at the same observatory site for two centuries, and that record is now open data. It makes a fine first serious Python project, because it is long, real and full of gaps. This page is for Jena learners and parents weighing up an online Python class: six questions to ask before you book with anyone, what the new Thuringian school subject covers, and how our learners turn 195 years of temperatures into a trend they can defend.
Live online classes since 2020 · 10,000+ students worldwide · every line typed by the learner
In short
Modern Age Coders runs online Python classes for Jena that are live, taught in English, and hands-on: on a video call the learner writes and runs Python in their own editor while the mentor watches the shared screen and asks questions. From about 9 children type their own programs; older learners go further, into data files and simple models. Classes of fifteen to twenty or one to one, with one India-based mentor who keeps to each learner's pace and accent.
Python by age
One for children, one for teenagers, one for adults. The free first class tells us which suits.

PJE / 01
Nine to twelve year olds type their first programs, draw with turtle graphics and build small games before trying a little machine learning.
Open the syllabus →
PJE / 02
Thirteen to eighteen. A full route from variables and loops to files, classes and data projects like the Jena temperature record.
Open the syllabus →
PJE / 03
Adults with no experience. Clear foundations first, then the scripts and libraries that make Python useful at work.
Open the syllabus →Before you book
There are many online courses, and they differ more than their websites suggest. These six questions sort them quickly. They apply to us as much as to anyone.
Our own checklist. Tool ages are quoted from the providers' terms in our AI tools age guide; OpenAI sets 13 with a parent's permission under 18, Anthropic sets 18.
Two live classes of an hour each, usually a few days apart, and a short task in between. In class the mentor introduces one idea, the learner uses it to build something, then deliberately breaks it and explains the error message.
Between classes the learner finishes the task alone and brings questions. Nothing is marked; the point is to arrive with something to show.
Any laptop or desktop made in the last ten years will do, plus a camera, headphones with a microphone and reliable internet. Python costs nothing; setting it up together is part of lesson one.
A quiet corner helps more than a fast machine. The programs on this page run in seconds on an ordinary laptop.
Thuringian schools
Thuringia is building up a new compulsory subject, Medienbildung und Informatik, or MBI, one year group at a time.
According to the Gesellschaft für Informatik's Informatik-Monitor 2026/27, MBI started in the 2024/25 school year at all general schools in Thuringia. It is currently taught in grades 5, 6 and 7 and is being extended one grade a year, reaching grade 10 in the 2029/30 school year.
A Jena pupil in grade 5 today will have MBI every year up to grade 10. An older sibling in grade 8 may have none at all, because the subject arrived after them.
The KMK's scientific commission recommends six compulsory weekly hours of Informatik across lower secondary by 2030. The monitor names Thuringia as one of only three Länder that already meet that target, with Mecklenburg-Vorpommern and Saarland.
Thuringian secondary pupils attend a Gymnasium, a Regelschule with two tracks or a Gemeinschaftsschule with three; MBI applies to all of them.
| Grade in 2026/27 | MBI this year? | MBI through to grade 10? |
|---|---|---|
| 5 | Yes | Yes |
| 6 | Yes | Yes |
| 7 | Yes | Yes, as the subject moves up |
| 8 | No | The rollout reaches grade 8 in 2027/28, after this year group |
| 9 and 10 | No | The rollout reaches these grades after this year group has left them |
Source: Gesellschaft für Informatik, Informatik-Monitor 2026/27, national summary and Thuringia page, read on 2 November 2026. The year-by-year reading in the right-hand column is our own, from the stated rollout of one grade per year to grade 10 in 2029/30.
Our classes run next to school and never replace it; school marks come from school. For a pupil who wants more programming than MBI offers, or who missed it, typed Python is the natural next step. Our Informatik companion for Klasse 5 to 10 follows school topics in English, and the Thuringia page covers the Land in more depth.
A Jena data project
The Deutscher Wetterdienst publishes the yearly mean temperature for its station Jena (Sternwarte) back to 1821, free to reuse under CC BY 4.0. A single year tells you little; a moving window over thirty years tells you a lot, as long as it refuses to fill holes it cannot see into.
The file we downloaded on 3 November 2026 holds one row per year, and the sixth column, called JA_TT, is the annual mean air temperature. A value of -999 means "missing". We saved the product file as jena_years.txt and read it with nothing but plain Python.
It has gaps of two kinds. Two years, 1823 and 1845, are present but marked -999. Eight years, 1843, 1870, 1875 to 1878, 1922 and 1945, are simply absent. A program that does not look for both kinds will quietly get wrong answers.
The station's metadata says the early values come from three readings a day, at 08, 14 and 20 local time in 1821 and 1822 and at 07, 14 and 21 from 1824. Instruments and routines changed later too, and the station moved slightly over the years; it has stood at 154.5 metres since August 2004.
So we treat the very early decades with care, and we say so. Part of working with real data is writing down what you do not know.
mean_temp = {}
with open("jena_years.txt", encoding="latin-1") as f:
next(f) # skip the header line
for line in f:
cols = [c.strip() for c in line.split(";")]
year, value = int(cols[1][:4]), float(cols[5])
if value != -999: # -999 is the DWD code for "no value"
mean_temp[year] = value
print("Years with a mean temperature:", len(mean_temp))
print("First:", min(mean_temp), " last:", max(mean_temp))
for y in (1864, 1990, 2024):
print(y, mean_temp[y], "C")It prints Years with a mean temperature: 195, First: 1821 last: 2025, then 1864 6.19 C, 1990 10.7 C and 2024 12.01 C.
Single years jump around. 1864 is the coldest year in the file at 6.19 degrees, 2024 the warmest at 12.01, and the years in between swing by a degree or more from one to the next. Comparing two chosen years can tell almost any story. A moving average does something fairer: for every end year it averages the thirty years up to and including it, so each value rests on three decades of weather rather than one.
def window_mean(end, size=30):
years = range(end - size + 1, end + 1)
if any(y not in mean_temp for y in years):
return None # a gap: refuse to guess
return round(sum(mean_temp[y] for y in years) / size, 2)
for end in (1908, 1921, 1950, 1990, 2020, 2025):
print("30 years to", end, ":", window_mean(end))It prints 30 years to 1908 : 8.11, 30 years to 1921 : 8.61, 30 years to 1950 : None, 30 years to 1990 : 9.28, 30 years to 2020 : 10.3 and 30 years to 2025 : 10.51.
| Thirty years ending | Mean temperature |
|---|---|
| 1908 (1879 to 1908) | 8.11 C |
| 1921 (1892 to 1921) | 8.61 C |
| 1950 | No answer: 1922 and 1945 missing |
| 1990 (1961 to 1990) | 9.28 C |
| 2020 (1991 to 2020) | 10.3 C |
| 2025 (1996 to 2025) | 10.51 C |
Data: Deutscher Wetterdienst, Climate Data Center, annual values for station 02444 Jena (Sternwarte), column JA_TT, CC BY 4.0, downloaded 3 November 2026. The windows, the None results and the table are our own work.
Look at the None. Any window that contains 1922 or 1945 has a hole, and the function returns nothing rather than averaging 29 years and calling it 30. That rule costs a lot: complete windows exist only for end years 1908 to 1921 and 1975 to 2025, 65 windows in all. But the ones it does give are honest, and they climb: from 8.11 degrees for the thirty years to 1908, to 9.28 for 1961 to 1990, to 10.51 for 1996 to 2025. Over the two complete stretches the Jena record has warmed by more than two degrees on a thirty-year average. That is our reading of this one station's data, not a forecast and not a statement about anywhere else.
Class times
A Jena afternoon is an Indian evening, and a Jena weekend morning is an Indian afternoon, which leaves plenty of room for both sides.
| Jena | India in winter | India from 28 March 2027 |
|---|---|---|
| 16:40 | 21:10 | 20:10 |
| 17:20 | 21:50 | 20:50 |
| Saturday 14:00 | 18:30 | 17:30 |
| Sunday 12:00 | 16:30 | 15:30 |
Jena keeps German legal time under the Einheitenzeitgesetz: UTC+1 from 25 October 2026 and UTC+2 from 28 March 2027. India stays at UTC+5:30. The rows are illustrations, not fixed batch times.
Thuringian school holidays in 2026/27, per the Kultusministerkonferenz table: autumn 12 to 24 October 2026, Christmas 23 December 2026 to 2 January 2027, winter 1 to 6 February 2027, Easter 22 March to 3 April 2027, a free day on 7 May 2027, and summer from 10 July to 20 August 2027. Classes continue through them unless a family pauses. Learners join from across Jena and from nearby Weimar, Apolda, Stadtroda, Kahla and Erfurt.
For pupils who want a contest alongside the course: the Informatik-Biber runs from 9 to 20 November 2026 through schools, and pupils from grade 3 can also try the Jugendwettbewerb Informatik. Our competitions calendar lists the dates. We are not connected with any organiser.
Skills ladder
Our own ladder. Each rung is a thing the learner can do without help.
| Rung | Skill | Shown by |
|---|---|---|
| 1 | Variables, input and output | A program that asks a question and answers it |
| 2 | Loops and decisions | Tracing a loop on paper before running it |
| 3 | Lists and dictionaries | Storing a year and its value, like the Jena file |
| 4 | Functions with clear rules | A function that returns None when it cannot answer |
| 5 | Files and real data | Reading a published file and naming its gaps |
Rung 4 is the heart of the Jena project: a function that knows when to refuse.
Progress is reported as things your child can do, not hours spent.
Before you average anything, count how many values you actually have.
A program that says "I cannot tell" is more useful than one that guesses quietly.
Beyond the first course
Each one live and in English, with a mentor who stays with the learner, in a class or on its own.
PJE / KIDS / 01
Scratch first for children not yet ready to type.
Open the syllabusPJE / KIDS / 02
Averages and patterns explored in Python.
Open the syllabusPJE / KIDS / 03
How machines learn, with no adult accounts.
Open the syllabusPJE / TEEN / 01
Long datasets, charts and first models.
Open the syllabusPJE / TEEN / 02
Contest problems and fast solutions.
Open the syllabusPJE / TEEN / 03
Saving and sharing code properly.
Open the syllabusPJE / ADULT / 01
Python, SQL and spreadsheets for real work.
Open the syllabusPJE / ADULT / 02
From Python to deep learning.
Open the syllabusPJE / ADULT / 03
PCEP and PCAP, for a recognised milestone.
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.
School afternoons
For pupils after lessons and homework.
Early evenings
For adults on working days.
Private slots
Agreed with the mentor, weekends included.
A person teaches, nothing is replayed.
The mentor asks; the learner types.
Continuity from first loop to project.
Slowed down and repeated when needed.
No adult accounts in children's classes.
A class of fifteen to twenty, or private.
Student work
Projects from Python learners in many countries; see the student labs page for more.

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 classes are included in each monthly fee. For Jena we print the price in euro, using the ECB reference rate of the day, but you are charged in US dollars; the bank exchanges it on your side, so cents may differ.
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
Google reviews from students and parents, quoted word for word.
★★★★★
"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
Jena learners ask
No. Lessons are only in English, and always live. Mentors adapt their speed and accent to the learner and explain again in simpler words when needed, so pupils who learn English at school can follow comfortably.
Ask whether it is live, who types the code, whether the teacher stays the same and what the learner will have built at the end. A free first class lets you see all four for yourself.
Medienbildung und Informatik is a new compulsory subject in Thuringia, taught in grades 5 to 7 in 2026/27 and growing by one grade a year to grade 10 in 2029/30, according to the Gesellschaft für Informatik.
Nine is a good age, when a child reads fluently and can find letters on a keyboard. Six to eight year olds begin in Scratch and switch later.
The full version suits teenagers and adults. Children of 9 to 12 do a shorter version with a week of their own noon temperatures, then a short list of Jena years.
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 usually come after school and adults in the evening.
Mentors based in India who teach live online in English. A learner keeps the same mentor for the whole course.
By the month. We quote euro using the ECB reference rate, collect the payment in US dollars, and leave the exchange to your bank, which is why the amount you see on the statement can be marginally different. You pay nothing for the first class.
Only where the provider's age limit allows. Children's courses use none. Teenagers may use ChatGPT from 13 with a parent's permission; Claude is kept to adult courses because Anthropic sets 18.
Yes, in their own classes, starting from the very first line of Python.
Elsewhere on this site
More for Jena learners.
Our pages for every part of Germany.
MBI, holidays and the Land in detail.
Python for learners anywhere in Germany.
Courses for 13 to 18.
How all sixteen Länder compare.
Our method, class by class.
Part of the guide: Coding classes in Thuringia
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 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 Brandenburg · Coding classes in Mecklenburg-Vorpommern
Start here
Treat the free class as a taster lesson. A few lines of Python get written and run, the mentor sees how the learner reasons and how easy English feels, and you get a clear suggestion for a course and group.
Want to read first? Try how we teach or all courses.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Live online lessons, in English only, with mentors in India. WhatsApp, in English, is the quickest 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