CSU / ALGO / 01
C++ for teens
Fundamentals, the standard library and algorithms, after Python.
Open the syllabusSantiago de Surco, Lima · Live online, in English · Teenagers first
Santiago de Surco is the ninth most populous of Lima's 43 districts in INEI's 2025 census, and its 28,204 teenagers outnumber the entire population of five of those districts. For a secundaria student here, coding is more than a hobby: Peru runs free national contests in programming, artificial intelligence and cybersecurity, open to every secondary pupil. This page sets out the 2026 contest calendar, what each contest asks for, how our live classes in English prepare a student for that kind of thinking, and what we offer younger children and adults too.
Live online since 2020 · more than 10,000 learners around the world · all teaching in English
The short answer
Modern Age Coders gives live online coding classes in English to teenagers, children and adults in Santiago de Surco, Lima. Teenagers learn Python, then C++, problem solving and AI, the skills behind Peru's free school contests such as the OPI and OPEIA run by UTEC. Children start with Scratch at 6 and Python at about 9; adults learn Python and data. Each lesson is led in real time over video by a mentor working from India; students join a batch of fifteen to twenty or learn one to one, and the family sets the hour on Peru time.
Where Surco learners start
Python from zero for teenagers, problem solving for those who already code and want contest-style thinking, and Scratch for younger brothers and sisters.

CSU / 01
For 13 to 18 year olds who have never coded. Real typed programs from the first lesson, then files, data and larger projects. Python is also one of the two languages the OPI accepted in its first round under the 2025 rules.
Open the syllabus →
CSU / 02
For teenagers who can already write simple programs. Logic, data structures and algorithms, built from problems we write ourselves, with the emphasis on explaining why a solution is correct.
Open the syllabus →
CSU / 03
For 6 to 12 year olds, grouped by age. Scratch animations and games first, then apps and an early look at AI, for the younger children in a Surco household.
Open the syllabus →Surco in figures
A great many. INEI's census of 2025 counted 28,204 people aged 12 to 17 in Santiago de Surco, out of a total population of 402,074, nearly 4% of everyone in Lima Metropolitana by our own division.
Of the 386,432 people INEI actually counted in Surco (it estimates 15,642 more were missed), 24,155 were aged 6 to 11 and 28,204 were aged 12 to 17. The district's adults are a large majority, as everywhere in Lima, with 86,108 people of 60 and over and 85,158 aged 30 to 44.
By our arithmetic, teenagers of 12 to 17 are about 7.3% of the people counted in Surco, a little below the 9.0% share across Lima Metropolitana. The share is modest; the number is not, because Surco is so large.
Twenty-eight thousand teenagers means twenty-eight thousand different timetables, interests and levels. A live online class does not need a crowd of beginners at the same level in one building; it puts a Surco teenager into a group of the right age and level drawn from many places.
Surco borders Miraflores, Surquillo, San Borja, Ate, La Molina, San Juan de Miraflores, Chorrillos and Barranco. Teenagers in any of those districts join the same classes, at the same hours.
Source: INEI, Censos Nacionales 2025, demographic indicators for Lima Metropolitana, Cuadro N.° 1 and Cuadro N.° 3, saved on 8 November 2026; INEI lists the district as Santiago de Surco. The shares are our own calculations on the counted population; we never add INEI's age groups into new totals.
Teenagers in Peru are almost all online already: INEI's household survey for the second quarter of 2026 found that 92.5% of 12 to 18 year olds in the country used the internet. What most of them have not met is programming, because the national curriculum has no computing subject in secundaria. That gap, not access, is what our classes fill.
Contests in 2026
Four national contests matter most for a secondary pupil interested in programming or maths. Three are organised by UTEC and are free for every secundaria student in Peru; the fourth, the ONEM, is MINEDU's maths olympiad, entered through the school.
| Contest | Organiser | What it tests | 2026 dates |
|---|---|---|---|
| OPI, Olimpiada Peruana de Informática | UTEC | Algorithmic programming | Entries closed 18 March; final (Fase 2) 11 April |
| OPEIA, Olimpiada Peruana de Inteligencia Artificial | UTEC | Artificial intelligence | Entries closed 18 March; held 19 March, one sitting |
| OPECIA, Olimpiada Peruana de Ciberseguridad | UTEC | Cybersecurity | Entries closed 26 April; held 27 April, one sitting |
| ONEM, Olimpiada Nacional Escolar de Matemática (XXII edition) | MINEDU | Mathematical problem solving | School stage 8 July; national stage 11 October at Huampaní |
Sources: UTEC, Olimpiadas Peruanas de Computación home page (opi.utec.edu.pe), read 8 November 2026; UGEL 06, Oficio Múltiple 164-2026 on the XXII ONEM; El Peruano, report of 11 October 2026 on the ONEM national stage. All dates are in 2026. We are not connected with UTEC, MINEDU or any organiser, and we do not reproduce their problems.
UTEC describes its Olimpiadas Peruanas de Computación as open free of charge to all secondary students in the country. The OPI selects the students who represent Peru at the Ibero-American and International Olympiads in Informatics; under the 2025 rules, the top four of the final went to the IOI. OPEIA's 2025 team represented Peru at the international AI olympiad, the IOAI.
The 2025 OPI rules allowed students up to 20 years old on 1 July 2025 who were at school in Peru that year or had finished in 2024. They also banned generative AI for solving problems, which says plainly what the contest values: a student who can reason alone.
The ONEM has three levels: 1st and 2nd of secundaria, 3rd and 4th, and 5th. Pupils of public schools compete in the Alfa category and those of private schools in Beta. The 2026 school-stage paper had ten questions where the student writes the answer, with two hours to solve them.
El Peruano reported that ONEM 2026 drew more than 1.7 million secondary pupils from its first stage, and that 237 reached the national stage on Sunday 11 October 2026. Entry is through the school, so a Surco pupil who wants to take part should ask there.
For maths specifically, our page on ONEM preparation in English explains the levels, the stages and how a student who learns maths in English handles a paper written in Spanish. On this page the focus is programming.
What contests reward
Reasoning under pressure, without help. A contest problem gives a precise task, limits on time and memory, and test cases the student cannot see. A program that is nearly right scores little.
A contest judge does not read the code generously. It runs it against hidden cases, including the awkward ones: an empty list, one item, the largest allowed input. Our students learn to write those cases themselves before submitting anything.
A correct program that takes too long fails. Teenagers learn to count roughly how many steps a solution needs, and why sorting first or remembering earlier results can turn a slow idea into a fast one.
We ask every student to explain, in English, why their solution works. If they cannot, it usually does not. The habit carries straight into school exams, university and any job that involves code.
None of this is copied from a contest. We do not reproduce any organiser's problems or solutions; every practice problem in our classes is written by us and labelled as ours. We teach the kind of thinking the contests reward, and leave the contests themselves to the students and their schools. For a broader view of teenage coding in Peru, see coding classes for teens in Peru.
Python or C++
Python first, for almost everyone, then C++ for those who want to go far in algorithmic contests. The OPI's own 2025 rules show why both matter.
Python reads close to plain English, so a beginner spends the first months on ideas rather than punctuation: variables, loops, lists, functions. Under the 2025 OPI rules, the first round accepted Python as well as C++, so a student who knows Python well can already take part.
Python is also the language of data and AI, which matters for OPEIA and for most of what a teenager will build outside contests.
The same rules allowed only C++ in the in-person final. That reflects international practice in informatics olympiads, where C++ is fast and gives precise control over memory.
We move a student to C++ once they think comfortably in Python. The ideas transfer; only the syntax and a few habits change. Our C++ for teens course takes them from there to the standard library and algorithms.
A teenager who does not care about contests loses nothing by following the same path. Python, then a second language, is a solid route into any branch of computing, and Java or app development can take the place of C++ for those who would rather build than compete.
A real lesson
We teach this to teenagers of about 13 upwards, using the contest dates above and the national school calendar for 2026. It looks like a small task and hides a classic mistake that turns up in professional code, in contest solutions and in exams.
A student keeps two lists, each already in date order: the contest dates, and the main dates of MINEDU's 2026 school calendar (RM 501-2025-MINEDU), such as the start of the first teaching block and the weeks set aside for staff planning. The goal is one list for the whole year, still in order.
Sorting everything again would work, but there is a faster idea: walk along both lists at once, always taking the earlier of the two front items. That is the merge step inside merge sort, and it is worth understanding properly.
Version 1 stops as soon as either list runs out. The contest list ends on 11 October, so the loop stops there, and two school dates, the staff planning week from 12 October and the end of teaching on 18 December, are simply dropped.
Nothing crashes, and the list that comes out is in perfect order. Only counting the items gives the game away: 9 kept out of 11. This is the forgotten tail, and the fix is two lines.
contests = [(3, 18, "OPI and OPEIA entries close"), (3, 19, "OPEIA, one sitting"),
(4, 11, "OPI final"), (4, 27, "OPECIA, one sitting"),
(7, 8, "ONEM school stage"), (10, 11, "ONEM national stage")]
school = [(3, 16, "teaching block 1 begins"), (5, 18, "staff planning week"),
(7, 27, "two staff planning weeks"), (10, 12, "staff planning week"),
(12, 18, "teaching block 4 ends")]
def merge(a, b):
out = []
i = j = 0
while i < len(a) and j < len(b):
if a[i] <= b[j]:
out.append(a[i])
i += 1
else:
out.append(b[j])
j += 1
return out
year = merge(contests, school)
print("Dates kept:", len(year), "of", len(contests) + len(school))
print("Last date:", year[-1])It prints Dates kept: 9 of 11 and Last date: (10, 11, 'ONEM national stage').
# the same two lists as Version 1
def merge(a, b):
out = []
i = j = 0
while i < len(a) and j < len(b):
if a[i] <= b[j]:
out.append(a[i])
i += 1
else:
out.append(b[j])
j += 1
out.extend(a[i:])
out.extend(b[j:])
return out
year = merge(contests, school)
print("Dates kept:", len(year), "of", len(contests) + len(school))
print("Same as sorted():", year == sorted(contests + school))
for month, day, what in year:
print(f"{day:02d}/{month:02d} {what}")With the two lists from Version 1 above it, it prints Dates kept: 11 of 11, Same as sorted(): True, then the whole year from 16/03 teaching block 1 begins to 18/12 teaching block 4 ends, including 11/10 ONEM national stage followed by 12/10 staff planning week.
After the loop, at most one of the two lists still has items, and those items are already in order and later than everything taken so far. out.extend(a[i:]) and out.extend(b[j:]) add whatever remains; one of them adds nothing. Comparing the result with sorted(contests + school) is a cheap way to test the merge on real data before trusting it on anything bigger.
Two smaller lessons sit inside this one. Python compares the tuples field by field, month first and then day, which is why storing a date as (month, day) sorts correctly while "day/month" text would not. And the <= in the comparison means that if two items fall on the same date, the one from the first list comes first, a property called stability that matters when order carries meaning.
Why online
Because a teenager's time is short. Between school, homework, sport and family, an evening lost to travel is an evening not spent programming.
We do not publish traffic estimates without a source. Surco families already know what a trip across the city at rush hour costs. A class at home costs nothing in travel, and a teenager can go straight from the end of a lesson back to homework.
It also removes the parent from the timetable. A fifteen year old can log in alone, at an agreed hour, without anybody driving.
Online here means live. The mentor watches the student's screen, asks why a line is there, waits for the answer, and corrects the reasoning on the spot. A recorded course cannot notice that a student has misunderstood a loop.
The same mentor stays with the student, so by the third month they know the student's habits, strengths and the mistakes worth watching for.
Spanish-speaking parents planning January and February will find a summer plan in our guide to vacaciones útiles de programación en Surco, which plans a summer for brothers and sisters of different ages. For the school year itself, see in Spanish clases de programación en Surco. Every class described there is taught live in English, exactly as here.
Surco times
Whenever the week allows. Peru stays five hours behind UTC in every month, India runs 630 minutes ahead of Peru, and so an hour agreed in March is the same hour in November. The rows below are conversions only.
| Peru time, Surco | India time | Often chosen by |
|---|---|---|
| 07:30 | 18:00 | A teenager before school |
| 10:00 | 20:30 | A student in the summer break |
| 14:30 | 01:00, next day | A pupil home early |
| 17:30 | 04:00, next day | A teenager after school |
| 20:00 | 06:30, next day | An adult in the evening |
Clock rules from the IANA tz database: zone America/Lima, which has had no daylight saving since 1994, and zone Asia/Kolkata. Conversions are our arithmetic, and the same on every day of the calendar.
Booking works in local time for both sides: you pick a Surco hour, and the mentor's calendar shows its India equivalent. Contest weeks, exams and holidays can move a class by agreement; the regular hour stays yours.
Milestones
Our own stages, used to place a student and to tell parents plainly what has changed. They are not a contest standard and promise no result.
| Stage | Typical point | The student can | In English, the student can |
|---|---|---|---|
| 1. Programs | Months 1 to 2 | Write Python with input, decisions and loops | Say what a program will print before running it |
| 2. Collections | Months 3 to 4 | Use lists, dictionaries and functions | Describe a bug and where it hid |
| 3. Algorithms | Months 5 to 7 | Merge, search and sort, and test the edges | Explain the forgotten tail in a merge |
| 4. Efficiency | Months 8 to 10 | Estimate steps and choose a faster method | Justify a choice of data structure |
| 5. Second language | Year 2 | Write the same solutions in C++ or Java | Compare the two languages fairly |
| 6. Contest practice | Year 2 on | Solve timed problems of ours with hidden cases | Argue why a solution is correct |
Stage 3 is the merge lesson above. Students who reach it start testing their own work without being asked, which is the change worth paying for.
Contest results depend on the student and the contest; we promise none.
When a loop ends, ask what it left behind.
If your program agrees with sorted() on real data, you have a test. If you never checked, you have a hope.
More courses
Taught live in English, each with a regular mentor and a choice of group or private lessons.
CSU / ALGO / 01
Fundamentals, the standard library and algorithms, after Python.
Open the syllabusCSU / ALGO / 02
Timed problem solving with hidden test cases, on problems of ours.
Open the syllabusCSU / ALGO / 03
Proof, counting and number theory for maths contests.
Open the syllabusCSU / BUILD / 01
Models trained and tested in Python, from first principles.
Open the syllabusCSU / BUILD / 02
Defensive, ethical security skills and online safety.
Open the syllabusCSU / BUILD / 03
Objects and classes, from a complete beginner upwards.
Open the syllabusCSU / HOME / 01
Younger siblings type real Python, draw with turtles and train tiny AI models.
Open the syllabusCSU / HOME / 02
Games designed and scripted by children aged 8 to 14.
Open the syllabusCSU / HOME / 03
From zero to useful scripts, for parents and university students.
Open the syllabusHow classes run
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.
Mornings
Lima mornings are Indian evenings, when mentors teach most.
Afternoons
After-school hours are arranged on request; tell us when homework ends.
1-on-1
A private mentor and a timetable built around exams and contests.
The same teacher, who learns the student's habits.
Short, plain sentences and time to answer.
Students write, run and test in each class.
Placed by age and level, not just by age.
Practice problems written by us, never copied.
Fifteen to twenty in a batch, or one to one.
Student work
Teenagers who stay with us build things beyond exercises. Here are a few; the student labs page shows 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
Monthly plans are priced in US dollars and charged to a card. A card issued in soles is converted by your bank at the rate it applies on the day, which is why the statement amount can shift slightly between months.
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
Parents and students in their own words, as posted on Google.
★★★★★
"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
Surco families ask
No. Every class is live, online and taught in English only. Mentors keep their sentences short and their pace steady, and wait for answers, so a teenager whose spoken English is still developing can follow. Python and C++ are written in English keywords anyway, so the class and the code share one language.
No one can promise that, and we do not. We teach the reasoning these contests reward, with problems we write ourselves. Results depend on the student, the contest and the day. We are not connected with UTEC, MINEDU or any contest organiser.
No. Python for Teens starts from nothing. Students who already code are placed at their level after the free first class, and may go straight to problem solving or C++.
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. With no clock changes in either country, 17:30 in Surco is 04:00 the next day in India.
Through their school. The ONEM is MINEDU's maths olympiad, with a school stage first; in 2026 it was held on 8 July. Pupils of public schools compete in the Alfa category and private-school pupils in Beta. Ask the school about the 2027 edition.
UTEC says its Olimpiadas Peruanas de Computación, the OPI, OPEIA and OPECIA, are open free of charge to all secondary students in Peru. Check opi.utec.edu.pe for each year's dates and rules.
Only age-appropriate ones, and only after reasoning through the problem alone. Claude is for adults of 18 and over and ChatGPT needs a parent's permission under 18. The 2025 OPI rules banned generative AI for solving problems, so contest practice with us is done without it.
No. We have no premises anywhere in Lima. All teaching is live over video, with mentors based in India, which is how a student in Surco joins a group of the right level at a convenient hour.
Children start with Scratch from 6 or Python from about 9, in groups of their own age. Adults can take Python, data analysis or AI courses. Many Surco families have two or three learners at once.
Monthly, by card, in US dollars. If your card is in soles, your bank converts each charge, so the amount can vary slightly from month to month. The first class is free and needs no card.
Elsewhere on this site
Further reading for Surco teenagers and their parents.
Our national guide for every age.
Reasoning before tools, and why.
Minimum ages for common AI tools.
A live lesson described in full.
Projects by older students.
Every syllabus in one list.
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 the student solves a short problem with a mentor and writes, or improves, a small program. The mentor notes how they reason and how easily they follow spoken English, then recommends a starting course, a group or private lessons, and a time that fits the school week.
Rather read first? How we teach describes a lesson, and the course list has every syllabus.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Lessons are live over video, in English, taught from India. Message us on WhatsApp in English for a quick 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