LIM / KIDS / 01
Python and AI for kids
Typed Python, drawings and small AI projects for 9 to 12 year olds.
Open the syllabusLima Metropolitana · Live online, in English · Ages 6 to 67
Lima is ten million people spread over 43 districts, and a good coding class is rarely in the district where a family lives. This page places every age, from a six year old in Comas to a retired engineer in San Borja, on the right live online course, shows what Lima schools leave out, sets out what teenagers face after 5° de secundaria, and ends with a project on the city's own air-monitoring stations.
Teaching live online since 2020 · over 10,000 learners in many countries · one mentor who follows each student
The short answer
Modern Age Coders runs live online coding classes in English for every age in Lima Metropolitana. Children of 6 to 8 start with Scratch, 8 to 12 year olds build Roblox games or type Python, teenagers learn Python, Java, web, apps and AI (with IB and IGCSE help for international-school students), and university students and adults take Python, data analysis or AI agents. Each lesson has a real mentor on camera; families choose a class of fifteen to twenty learners or private lessons, at the hour their household prefers, with no trip across Lima.
Start here in Lima
One for primaria, one for the step from games to typed code, and one for secundaria. University and adult courses follow further down the page.

LIM / 01
Ages 6 to 12, placed with children their own age, over 10 to 12 months. Scratch stories and games come first, then small apps and a gentle first look at AI. No typing needed at the start.
Open the syllabus →
LIM / 02
For 8 to 14 year olds who already spend hours in Roblox. They script their own games in Luau, learn why a game breaks, and fix it themselves.
Open the syllabus →
LIM / 03
Ages 13 to 18, from zero, over 10 to 12 months. Typed Python with files, data and real projects, for 1° to 5° de secundaria at any Lima school.
Open the syllabus →Lima in figures
INEI's 2025 census counts 10,141,775 people in Lima Metropolitana, the province of Lima, which is made of 43 districts. Callao is a separate constitutional province with its own count. The largest of them holds more people than several whole Peruvian departments.
| Unit | Population, 2025 |
|---|---|
| Lima Metropolitana (province of Lima, 43 districts) | 10,141,775 |
| San Juan de Lurigancho | 1,176,422 |
| San Martín de Porres | 764,012 |
| Ate | 702,531 |
| Comas | 578,818 |
| Villa María del Triunfo | 485,531 |
| Villa El Salvador | 451,546 |
| San Juan de Miraflores | 420,096 |
| Santiago de Surco | 402,074 |
| Puente Piedra | 398,960 |
| Lima (the historic centre district, Cercado) | 314,840 |
| Santa María del Mar (the smallest) | 994 |
Source: INEI's 2025 census tables (Indicadores demográficos, table 1, total population on the reference day of 15 September 2025). For the city as a whole, INEI's 2017 sociodemographic profile (table 1.9) counted 9,562,280 people in the Lima Metropolitana urban area, Callao included. We list districts one by one and never add them together.
San Juan de Lurigancho, with 1,176,422 people in 2025, has more people than the whole department of San Martín, which INEI counts at 967,938. San Martín de Porres and Ate each pass 700,000. A coding academy in Miraflores or San Isidro is a long way from most of these families.
The smallest district, Santa María del Mar on the southern beaches, has 994 people. Between those two extremes sit 41 other districts, each with its own schools, traffic and timetable.
A weekly class that needs a trip across the city costs an afternoon, not an hour. For a working parent with two children in different grades, it often means choosing which child goes.
Live online classes remove the map from the decision. A child in Carabayllo, a teenager in Chorrillos and an adult in La Molina join the same quality of class from the room they are already in.
Online or across town
For coding, yes, as long as it is live and the learner's hands are on the keyboard. A recorded video is not the same thing, and we do not sell recordings as classes.
The learner shares their screen, writes the code and gets stuck in front of a real person. The mentor asks what they expected to happen, waits for the answer and only then points to the line that needs changing. That conversation is the class, and it works the same on a video call as across a desk.
What disappears is the journey: no waiting in the car outside the academy, no rush from school to a second building, and no lost class because of a strike, rain or a late bus.
INEI reports that in the second quarter of 2026, 84.7% of households in Lima Metropolitana had an internet service, against 64.5% across the country and 27.1% in rural areas. Most Lima families already have the connection a video class needs.
The rest is simple: a laptop or desktop computer for typed code (a tablet is enough for a six year old's first Scratch weeks), headphones with a microphone, and a quiet corner. We check all three in the free first class.
Every age, every course
Start from the learner's age and what they want to make, not from a programming language. The ages and course routes below are ours; the school years beside them use MINEDU's normative ages.
| Learner | Usual school stage | First course | Where it can lead |
|---|---|---|---|
| Ages 6, 7 and 8 | First three grades of primaria | Scratch, in Coding for Kids | Stories that move, small games, first logic |
| 8 to 14 | 3° primaria to 2° secundaria | Roblox or Minecraft coding | Their own playable worlds and scripts |
| 9 to 12 | 4° to 6° primaria | Python and AI for Kids | Their first programs typed by hand, drawings, tiny AI models |
| 10 to 15 | Primaria to secundaria | Maths through coding | School maths explored and checked in Python |
| 13 to 18 | All five years of secundaria | Python first; Java, web, apps or AI next | Real projects, contest practice, PCEP |
| IB or IGCSE student | International or bilingual school | IB Computer Science, IGCSE CS or maths | Coursework and exam support in English |
| University student | Any university in Lima | Java, Python, data structures and algorithms | Course projects and interview practice |
| Adult, 18 to 67 | Work, a career change or retirement | Python masterclass, data analysis, AI agents | Automation, analysis and agent tools at work |
Course ages and routes are ours. MINEDU measures normative age on 31 March, so a child born in the second half of the year may sit one grade away from the row shown.
A first grader drags blocks to make a character jump; by fourth or fifth grade many children want to type real words. We move each child when they are ready, not on a fixed date, and never put a seven year old with a twelve year old.
Teenagers in Lima often have tried a short workshop already. What they rarely get is a year of steady programming: loops, functions, files, testing, then a second language. That is what turns a curious fourteen year old into one who can build something real.
Students at Lima universities take Java, Python and data structures alongside their degree; working adults learn Python, data analysis or AI agents around their job. Our oldest learners are in their sixties, and the class waits for them as patiently as for a child.
Families at international and bilingual schools have their own page, English-medium coding classes in Lima, and families with children in primaria can read the Spanish page on clases de programación para niños en inglés. Adults over fifty may prefer the guide to coding after 50 in Peru.
What school covers
Not as a timetabled subject. Lima's public and private schools follow the national curriculum, the CNEB, whose secundaria week has no computing area. A few pilots have started, and Lima has the first of them.
Under the regular school day, each secundaria grade has 35 teaching hours a week, and each teaching hour lasts 45 minutes. Matemática has 4 of them and Inglés 3. Digital skills sit in competency 28, about working in virtual environments built with ICT, and that competency is transversal: every area is meant to use it, and no area owns it.
So a Lima teenager can spend five years of secundaria using computers in class and never be asked to write a program. Some private schools add their own workshops, which vary a great deal from school to school.
In July 2025 MINEDU started its Fábrica de Programadores: a thousand public-school pupils in the last two years of secundaria (4° and 5°) in Lima Norte learn Python towards an international certificate, and those who complete both stages may then take the PCEP exam. MINEDU presents it as a first stage it hopes to spread nationwide.
For the other districts, and for younger children, the same path exists outside school. Our PCEP and PCAP course follows that certificate, and our Python for Teens course reaches the level a student needs before it.
On 16 March 2026, 53,631 schools of Educación Básica Regular reopened across Peru for 6,225,000 students, according to MINEDU. Our classes do not follow that calendar: a family can start in any month, keep the same slot through the July break and the summer, or pause when exams take over.
After 5° de secundaria
Most Lima universities admit students through their own exams, in Spanish, with maths at the centre. We do not prepare students for those exams and promise no result, but the reasoning a good programmer builds is the same reasoning the maths papers reward.
| University | What the exam looks like | Next date we could verify |
|---|---|---|
| UNI (Universidad Nacional de Ingeniería) | Three in-person papers on three days: aptitude and humanities, mathematics, physics and chemistry | Ordinary exam 2026-2 was on 10, 12 and 14 August 2026 |
| PUCP | Exams that place special weight on reading comprehension and mathematics | La Primera Opción academic evaluation, 29 November 2026, for students still in 5° |
| Universidad de Lima | One test of academic aptitude and knowledge; wrong answers subtract marks | School exam 2027-1(A), Sunday 15 November 2026 at 7:00 |
Sources: UNI admission pages (exam format and 2026-2 dates); PUCP admission pages (Admisión 2027-1 table and exam emphasis); Universidad de Lima, Guía del postulante 2027-1(A). All read in November 2026. We are not connected with any of these universities, and each one decides its own admissions.
A student who has written a hundred small programs is used to reading a problem slowly, naming what is known, trying a case by hand and checking an answer before trusting it. Those habits show up in any maths paper, in any language.
Negative marking, as at the Universidad de Lima, also rewards a habit we teach: knowing when you do not know. A programmer learns to test before claiming something works; an exam candidate learns to leave a question blank rather than guess wildly.
The papers are in Spanish and cover school content we do not teach as exam preparation, such as chemistry or humanities. Academias preuniversitarias exist for that, and we are not one.
What we offer a 4° or 5° student is a year of serious programming and mathematical reasoning in English, which also helps with a computing degree once they are in. Our page on Peru's university admission exams explains the processes in more detail.
Taught in English
No. All of our teaching is in English, always live and online, by mentors in India who speak slowly, check what the learner understood and adjust to their accent and pace.
EF's English Proficiency Index 2025 scores Lima city 555, in its "high" band, against 519 for Peru as a whole. Many Lima teenagers and adults already follow a lesson in English without trouble.
Younger children, and learners from Spanish-medium colegios, often need more time. The mentor uses short sentences, shows rather than describes, and repeats a word on screen until it sticks.
Python, Java and Scratch are written with English keywords: if, while, print, repeat. A child who learns to code in English learns those words in context, and the error messages a computer prints start to make sense.
For many Lima families this is the reason to choose us: one hour a week of coding is also one hour of listening and speaking English with a patient adult. Our page on learning coding and English together goes further.
A real Lima project
SENAMHI, Peru's national weather and water service, runs automatic air-monitoring stations across Lima and shares their hourly readings openly. We use them with older students to teach a rule every analyst needs: before you compare averages, check how much of the time each one actually covers.
The dataset is "Monitoreo de los contaminantes del aire en Lima Metropolitana", which SENAMHI publishes on Peru's national open-data portal with an Open Data Commons Attribution licence (ODC-By); it first appeared on 24 May 2024 and was last changed on 8 September 2025. Our copy, taken on 9 November 2026, holds 577,794 hourly rows from seven stations, from 1 January 2015 to 31 May 2024.
Each row gives a station, a date, an hour, and readings for PM10, PM2.5 (fine particles smaller than 2.5 microns) and nitrogen dioxide. We use only PM2.5, and we use it as a numbers exercise: this page draws no health conclusions from it.
The stations sit in seven districts: Campo de Marte in Jesús María, Carabayllo, Santa Anita, San Borja, San Juan de Lurigancho, San Martín de Porres and Villa María del Triunfo. A student's first idea is natural: average each station's PM2.5 and sort from highest to lowest.
Version 1 does exactly that, and it also prints what share of the station's hours actually carry a PM2.5 value. That last column is the one most beginners never look at.
import csv
hours = {}
pm = {}
with open("senamhi-aire-lima.csv", encoding="utf-8") as data:
for row in csv.DictReader(data):
station = row["ESTACION"]
hours[station] = hours.get(station, 0) + 1
if row["PM2_5"].strip() != "":
pm.setdefault(station, []).append(float(row["PM2_5"]))
def average(station):
return sum(pm[station]) / len(pm[station])
for station in sorted(pm, key=average, reverse=True):
share = 100 * len(pm[station]) / hours[station]
print(station, round(average(station), 1), "from", round(share), "% of hours")It prints, from highest to lowest: SAN_JUAN_DE_LURIGANCHO 31.4 from 76 % of hours, SANTA_ANITA 30.0 from 61 % of hours, CARABAYLLO 27.9 from 56 % of hours, VILLA_MARIA_DEL_TRIUNFO 26.3 from 57 % of hours, SAN_MARTIN_DE_PORRES 18.7 from 55 % of hours, SAN_BORJA 18.7 from 67 % of hours and CAMPO_DE_MARTE 16.9 from 72 % of hours.
Look at the last column. No station reported PM2.5 for every hour, and the gaps are very uneven: Carabayllo has a value for 56% of its hours, San Juan de Lurigancho for 76%. Our year-by-year count shows why. Santa Anita and San Martín de Porres have no PM2.5 readings at all in 2020, and Carabayllo has five for the whole of 2017. Each average is taken over a different stretch of time, so the ranking compares different years and seasons, not just different places.
The fix is to compare like with like. Version 2 keeps, for each station, a dictionary from hour to reading, then uses a set intersection to find the hours when all seven stations reported. Only those hours go into the average. On the way it meets a small trap: the dictionary says the hour is written "hhmmss", but one in the morning appears both as "10000" and as "010000". Turning the hour into a number with int() makes both spellings the same key.
import csv
pm = {}
with open("senamhi-aire-lima.csv", encoding="utf-8") as data:
for row in csv.DictReader(data):
if row["PM2_5"].strip() != "":
hour = (row["FECHA"], int(row["HORA"])) # "10000" and "010000" are one hour
pm.setdefault(row["ESTACION"], {})[hour] = float(row["PM2_5"])
shared = set.intersection(*(set(readings) for readings in pm.values()))
print("Hours when all", len(pm), "stations reported:", len(shared))
def fair_average(station):
return sum(pm[station][h] for h in shared) / len(shared)
for place, station in enumerate(sorted(pm, key=fair_average, reverse=True), 1):
print(place, station, round(fair_average(station), 1))It prints Hours when all 7 stations reported: 10883, then 1 SAN_JUAN_DE_LURIGANCHO 34.9, 2 CARABAYLLO 33.8, 3 SANTA_ANITA 32.5, 4 VILLA_MARIA_DEL_TRIUNFO 29.4, 5 SAN_BORJA 21.8, 6 SAN_MARTIN_DE_PORRES 21.7 and 7 CAMPO_DE_MARTE 16.6.
| Station (district) | Version 1 place | Version 2 place |
|---|---|---|
| San Juan de Lurigancho | 1 | 1 |
| Carabayllo | 3 | 2 |
| Santa Anita | 2 | 3 |
| Villa María del Triunfo | 4 | 4 |
| San Borja | 6 | 5 |
| San Martín de Porres | 5 | 6 |
| Campo de Marte (Jesús María) | 7 | 7 |
Data from SENAMHI's Lima air-monitoring dataset on datosabiertos.gob.pe, licensed ODC-By (Open Data Commons Attribution). Averages, places and coverage shares are our own, in micrograms per cubic metre as published. San Martín de Porres and San Borja both show 18.7 in Version 1; Python's sort keeps their original order when the keys tie. The fair comparison rests on 10,883 shared hours, about one hour in eight of the period, which is itself worth saying when you report it.
Two stations swap places and the gap between the top three shrinks. Nothing in the data changed; only the question became fair. That is the habit we want a fifteen year old to leave with: when two numbers are compared, ask what each one was measured over.
Class times
Whatever hour suits you. Lima keeps Peru time all year with no clock changes, and every mentor plans around the family's day, not the other way round.
| Lima, Peru time | India time | Day in India |
|---|---|---|
| 06:00 | 16:30 | Same day |
| 08:00 | 18:30 | Same day |
| 10:00 | 20:30 | Same day |
| 13:00 | 23:30 | Same day |
| 16:00 | 02:30 | Following day |
| 19:00 | 05:30 | Following day |
The IANA time-zone database (zone America/Lima) shows Peru five hours behind UTC with no summer time since 1994, and INACAL publishes the official hour. India runs five and a half hours ahead of UTC, which puts it ten and a half hours ahead of Lima every day.
Because the gap never moves, the slot you agree in the summer is the same slot when school starts again in March. Many Lima families of primaria children choose early mornings or weekends; secundaria students and adults often prefer the evening. Booking shows every slot in your own clock; the mentor sees the same moment in India time.
Progress
Our own stages, used to place each new learner and to show families what has changed. Age is only a guide; a beginner of 40 starts at stage one like a beginner of 7.
| Stage | Often reached | What the learner can do |
|---|---|---|
| 1. Sequence | Age 6 or 7 | Put instructions in order and make a sprite move, speak and stop |
| 2. Loop and decide | Age 7 to 9 | Repeat actions and react to keys, clicks and touching edges |
| 3. Store | Age 8 to 11 | Keep a score, build a list and pick out its largest value |
| 4. Write | Age 9 to 13 | Type Python functions with loops, conditions and dictionaries |
| 5. Measure | Age 12 to adult | Read a real data file and count what is there and what is missing |
| 6. Compare fairly | Age 14 to adult | Compare groups only on shared ground and explain the result in one honest sentence |
The SENAMHI project trains stages 5 and 6, the point where a learner's chart becomes one you can trust.
Progress reports list what your child made and can explain, never minutes logged online.
An average is only as good as the hours behind it. Count them first.
When two numbers disagree, ask what each one was measured over before you ask which is right.
More courses
From the youngest to the oldest. All are live and in English with one regular mentor, either in a group or privately.
LIM / KIDS / 01
Typed Python, drawings and small AI projects for 9 to 12 year olds.
Open the syllabusLIM / KIDS / 02
Code that builds and changes Minecraft worlds, for young builders.
Open the syllabusLIM / KIDS / 03
School maths checked and explored in Python, ages 10 to 15.
Open the syllabusLIM / TEEN / 01
Classes, objects and full programs, from a first line of code.
Open the syllabusLIM / TEEN / 02
Pages, styles and working web apps that a teenager can show.
Open the syllabusLIM / TEEN / 03
The Python certificates behind MINEDU's Lima pilot, from about 13.
Open the syllabusLIM / ADULT / 01
Core Java to Spring Boot for computing and engineering students.
Open the syllabusLIM / ADULT / 02
Excel, SQL, Python and dashboards for complete beginners.
Open the syllabusLIM / ADULT / 03
Codex and Claude Code at work, with the judgement kept human.
Open the syllabusHow it works
Any day, any time, flexible: choose a batch, or for a very personalised plan choose 1-on-1 at the hour that suits your family.
Before school
Early Lima mornings fall in the Indian evening, a calm hour to learn.
After the school run
Afternoons, evenings and weekends work as well; you decide.
Private
One learner and one mentor, on the days your household picks.
The same teacher every week, who knows where the learner got stuck.
Short sentences, words on screen, time to think before answering.
The mentor guides and asks; the learner writes every line.
Children, teenagers and adults each learn with their own age group.
A short weekly note: the project, the sticking point, the next step.
Fifteen to twenty learners together, or one on their own.
Student work
Learners who stay with us for a year or two ship tools of their own. A few appear below, and the student labs show many 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
Plans run month by month. Fees are set in US dollars and your card is charged in that currency; your bank then converts to soles at its own daily rate, so the statement can differ a little from the figure here.
Free first class
Free
no card required
Group batch
$100 USD
a month, eight live classes
One to one
$150 USD
a month, eight live classes
What families say
Reviews left on Google by parents and students, in their own words.
★★★★★
"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
Lima families ask
No. Classes are only ever in English, always live and online. Mentors speak clearly, slow down when needed and adjust to each learner's accent and pace; if a child answers with a Spanish word, they hear the English one back. Programming keywords are English everywhere anyway.
No. We teach only live online, so a family in any of Lima's 43 districts joins in the same way, from home. That is also why nobody needs to cross the city for a class.
Six is the youngest start, using Scratch blocks that need no typing. Most children move to typed Python around nine. A teenager with no experience begins at 13 in a teen group, and adults begin whenever they like; our oldest learners are in their sixties.
Python for Teens is the usual start for 13 to 18 year olds with no experience. After it, students choose Java, web development, app development, AI or the PCEP certificate. IB and IGCSE students can also take our computer science and maths courses.
Not as a subject of its own. The national curriculum spreads digital skills across all areas, and no computing area appears in the secundaria timetable. In July 2025 MINEDU began a Python pilot, Fábrica de Programadores, for a thousand public-school pupils in Lima Norte.
Any day, any time, flexible: choose a batch, or for a very personalised plan choose 1-on-1 at the hour that suits your family. Lima never changes its clocks and the mentor's day in India runs ten and a half hours later, so 08:00 in Lima is 18:30 for the mentor.
We do not prepare students for those exams, which are in Spanish, and we promise no admission result. A year of programming builds careful reasoning and checking, which helps in any maths paper, and the university always decides its own admissions.
Yes. University students take Java, Python and data structures; working adults usually start with Python and move to data analysis or AI agents. Adults are always grouped with adults, at hours around work.
Each month is billed in US dollars, the currency printed on this page, and your bank handles the change into soles. Someone browsing from India is shown rupees. Nothing is charged for the first class, and no card details are taken for it.
Where a course includes one, the learner receives a Modern Age Coders completion certificate. MINEDU, universities and schools play no part in it and it carries no Peruvian academic value; it simply records the projects the learner finished.
Elsewhere on this site
More reading for families and adult learners in Lima.
The national guide, with every Peru page.
Primaria-age children, grade by grade.
Secundaria students and what comes next.
Java, Python and DSA alongside a degree.
Age limits for the popular AI tools.
One live class, from start to finish.
Part of the guide: Every Peru page
More guides: Coding and AI classes in Peru · En español: clases de programación en inglés · Start here: English-medium coding in Lima · By age and stage: AI and coding for professionals · Subjects and courses: AI agents course · Exams, olympiads and school holidays: IB computer science tutor · Guides to choosing: An English-taught option to Crack The Code · Regions of Peru: Amazonas region · Lima and Callao districts: Programación para niños en Ancón
Start here
In the free class, learner and mentor solve a small puzzle and build a first program side by side. It shows the mentor how the learner thinks and how comfortable they are in English, and it ends with a clear suggestion for a course and a group.
Prefer to read first? How we teach walks through one live class, and all courses has the full syllabus of each one.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Lessons are live online with mentors in India, in English only. A WhatsApp message in English gets 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