UCAU / FND / 01
Python with explanations
First programs, every line discussed.
Open the syllabusAustralia · Years 7 to 12 and adults · Own every line
Copying code has never been easier. A forum answer, a tutorial or an AI assistant will hand a student a function that runs first time, and it is tempting to drop it in and move on. The trouble is that code which runs is not the same as code which is right, and a student who does not understand a function cannot tell the difference. This page shows the problem with a real experiment: one short, pasted function, ten thousand test inputs, and two ways of checking it. One check passed it every time. The other caught it failing thousands of times. The difference was whether the person checking understood what the function was supposed to do.
Live teaching since 2020 · 10,000+ students · predict it, write it, test it
In short
Understanding code means being able to say what a function should return for any input, then checking that it does. A precise statement of that promise is called a postcondition. In our test, a pasted median function passed a loose postcondition on all 10,000 random lists, yet gave the wrong answer 4,219 times, which an exact postcondition caught every time. Pasting skips the understanding that writes the exact check.
Where to start
Each one asks students to predict, explain and test what they write. The free first lesson chooses between them.

UCAU / 01
Ages 13 to 18. Every program predicted on paper before it runs.
Open the syllabus →
UCAU / 02
Ages 13 to 18. Data structures you can explain, not just use.
Open the syllabus →
UCAU / 03
Ages 13 to 18. A history of your own work that shows how it grew.
Open the syllabus →Why it matters
Pasted code usually fails in one of two ways. Either it crashes, which is easy to notice, or it quietly returns a wrong answer for some inputs, which is not. The second kind is the dangerous one, and only understanding catches it.
The Australian Curriculum v9 says that by the end of Year 10 students verify their solutions "by validating their algorithms, represented as flowcharts and pseudocode, and using test cases to confirm the correctness of their solutions".
A test case confirms correctness only if the student knows what the correct answer is. That knowledge is exactly what pasting skips.
The same curriculum includes, as an example for Years 9 and 10, "reading and interpreting programs split across files, functions or classes, and modifying them to add functionality".
Reading code is a skill to practise, not a sign of laziness. The difference from pasting is that reading ends in understanding.
Source, read 7 October 2026: ACARA, Australian Curriculum v9, Digital Technologies content, Years 7 to 10 (Year 10 band description, and an elaboration under AC9TDI10P09).
The experiment
We took a short median function of the kind that circulates online: sort the list and return the middle item. It runs without error on any list of numbers. Then we checked it two ways on 10,000 random lists of 1 to 12 whole numbers between 0 and 20.
| What we measured | Result |
|---|---|
| Random lists tested | 10,000 |
| Lists with an even number of items | 4,962 |
| Wrong answers returned by the pasted function | 4,219 |
| Failures caught by the loose postcondition: no more than half the items below the answer, no more than half above | 0 |
| Failures caught by the exact postcondition: the middle item for odd lengths, the mean of the two middle items for even lengths | 4,219 |
For a list with an odd number of items, the middle item is the median, and the pasted code is right. For an even number, the median is halfway between the two middle items, and the code returns only the upper one.
It was right for every odd-length list and for even-length lists whose two middle items happened to be equal, which is why it looks fine in a quick test.
The loose check is true of the real median, so it sounds sensible. But it is also true of any value between the two middle items, so it cannot tell a right answer from a nearly right one.
Only someone who knows the definition of a median writes the exact check. That knowledge is the understanding that pasting skips.
The lesson in one line
A test can only be as precise as the tester's understanding. Weak understanding writes weak tests, and weak tests pass wrong code.
Writing contracts
A postcondition is a statement that must be true when a function finishes. Writing it down forces the writer to understand what the function promises, and checking it automatically catches the moment the promise is broken. The approach is often called design by contract.
| Function | Its postcondition, in words |
|---|---|
| Sort a list | The result has the same items as the input, and each item is no larger than the next |
| Find the median | For an odd length, the middle item; for an even length, the mean of the two middle items |
| Convert minutes to hours and minutes | Hours times 60, plus minutes, equals the input, and minutes is between 0 and 59 |
In Python, the simplest way to check a postcondition is an assert statement. The Python Language Reference describes it as "a convenient way to insert debugging assertions into a program", equivalent to raising an AssertionError when the condition is false.
A student who writes assert lines for their own functions is writing their understanding down, where the computer can check it.
The same reference explains that assertions run only while the built-in __debug__ is true, and that "the current code generator emits no code for an assert statement when optimization is requested at compile time".
So asserts are for checking during development, not for guarding a finished program. Real input validation needs ordinary if statements.
Source, read 7 October 2026: The Python Language Reference, simple statements, "The assert statement".
Honest work
Every Australian state sets its own rules on what help is allowed in assessed work, and the rules are tightening as AI tools spread. A student who understands every line of their code is safe under any of them.
In New South Wales, NESA describes its All My Own Work program as one that "gives students the opportunity to understand, value and use ethical practices when locating and using information during their studies".
Other states have their own equivalents and their own rules on AI in assessment. Check the rules that apply to your school and course.
We teach students to read, predict, write and test code until they understand it. We never write a student's assessed work, major project or take-home task.
NSW students working on a senior project can read our HSC Software Engineering page for how we help with technique while the work stays theirs.
Say what the program will print before you run it. A wrong prediction is the start of real understanding.
If you learned something from an example, close it and write it again from memory. What you cannot rebuild, you have not yet learned.
For every function, write its postcondition first. If you cannot state it, you are not ready to write the function.
Source, read 7 October 2026: NSW Education Standards Authority, key services, All My Own Work.
Stages
The steps students take as they stop copying and start understanding.
| Stage | What the student does |
|---|---|
| 1. Read | Read a short program and say, in words, what it does |
| 2. Predict | Predict exact output for a given input before running it |
| 3. Contract | Write postconditions and assertions for their own functions |
| 4. Defend | Explain and justify every line of a project to someone else |
Examples are how everyone learns. The question is what happens after you read one.
Read it, close it, rebuild it, test it. That turns someone else's code into your own understanding.
An AI assistant is a fast source of examples, and the same rules apply: never keep a line you cannot explain.
Our page on learning to think, not just use AI tools covers how many AI answers to check.
The catalogue
Grouped by stage. The free first lesson finds the right starting point.
UCAU / FND / 01
First programs, every line discussed.
Open the syllabusUCAU / FND / 02
Interactive pages and browser games.
Open the syllabusUCAU / FND / 03
Python programs that check maths.
Open the syllabusUCAU / SEC / 01
Beginner to advanced, tested as you go.
Open the syllabusUCAU / SEC / 02
Object-oriented code you can explain.
Open the syllabusUCAU / SEC / 03
Data structures and their contracts.
Open the syllabusUCAU / ADL / 01
For adults who want to understand, not copy.
Open the syllabusUCAU / ADL / 02
Interview-ready because understood.
Open the syllabusUCAU / ADL / 03
Your work, its history, your name on it.
Open the syllabusHow lessons run
Students type, predict and test everything they keep. Teachers ask "what will this print?" far more often than they explain.
After school
Weekday afternoons in your state.
Evenings
For senior students and adults.
Weekends
Saturday and Sunday options.
Every new idea starts with a guess about what the code will do.
Students state what each function promises before writing it.
Students write their own checks, including the awkward cases.
A program is finished when the student can explain every line.
Fifteen to twenty students, or one to one.
We teach technique; assessed work stays the student's own.
Student work
Each of these was typed, tested and defended by the student who built it. Find more on the student labs page.

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
Families outside India are billed monthly in US dollars at a rate that does not change between countries. No sign-up fee applies and nothing locks you in for a term; any month can be the last.
Free first class
USD 0
no card required
Group batch
USD 100
a month, billed in US dollars
One to one
USD 150
a month, billed in US dollars
What families say
Reviews posted on Google by our families, shown 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
Questions from students and parents
It means being able to explain what every line of a program does and why, and to predict and test its output, rather than inserting code from elsewhere that you cannot explain.
A postcondition is a statement that must be true when a function finishes, such as "the result is sorted and contains the same items as the input". Writing and checking postconditions is the heart of design by contract.
Design by contract is a way of writing software in which each function states what it needs before it runs and what it promises when it finishes, and those statements are checked, often with assertions.
Learning from examples is normal. What matters is whether you understand and can rebuild what you keep, and whether your school's rules allow it in assessed work.
The loose check only required no more than half the items below and above the answer. Any value between the two middle items meets that, so it could not tell the correct median from a nearly correct one.
That depends on your state and school rules, which differ and are changing. Whatever is allowed, keep only code you understand and can explain.
No. We teach reading, writing and testing code until the student understands it. Assessed work, including major projects and take-home tasks, stays the student's own.
No. Python skips assert statements when optimisation is switched on, so they suit checks during development. Use ordinary if statements to validate input in a finished program.
Mostly secondary students from Year 7 and adults. Younger children learn the same habit through predicting what Scratch programs will do.
The first lesson is free. After that, families pay monthly with no joining fee and no term lock-in; see the fees section on this page.
Elsewhere on this site
More on thinking with AI, building it and senior school computing.
Our main page for Australian families.
How many AI answers to check.
Building models, not prompting them.
Thinking skills that transfer.
For NSW senior students.
Starting secondary school computing.
Start here
Send a number and a good time to call. The student works through a short program with a teacher, predicting and testing it, and you see the difference understanding makes.
Would you like more detail first? Read how a lesson runs or look over our courses.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
From Australia, WhatsApp gets the quickest reply. We are an India-based team, so messages come from a +91 number; there is no Australian office.
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