What are the best coding classes in Perth and Kinross?
Perth and Kinross had about 150,800 residents in roughly 70,000 households at the 2022 census, spread across a large rural council area at 28.5 people per square kilometre. Beyond the city of Perth, the main towns are Blairgowrie, Crieff, Auchterarder, Kinross and Scone, with Pitlochry, Alyth, Aberfeldy and Dunkeld among the smaller ones. Lessons are live on video from India, and a free first lesson shows where each learner should start, from P1 to S6 or as an adult. Coding, Python and maths are on offer to everyone from six-year-olds to people of 67, taught alone or among five to ten peers. The council-wide project comes from a floodmark on a cotton mill at Stanley. Stay on, and Perthshire families pay USD 100 each month for a shared class or USD 150 each month for a teacher of their own.
At Stanley, Historic Environment Scotland lists the Mid Mill of Stanley Mills at Category A and records that it probably holds the oldest cotton spinning machinery in Scotland. Carved on the second-floor string course is a floodmark dated 7 October 1847. The listing does not say what day of the week that was, and neither does the stone. A computer can tell you in a fraction of a second, but how? There is a neat formula, published by Christian Zeller in the 1880s, that turns any date into its weekday with a little whole-number arithmetic. This page's project codes it in Python, checks it against every day for three centuries, and hunts down the two bugs that break almost everyone's first attempt.
Facts last verified 26 September 2026. Teaching is online; no Perth and Kinross branch is claimed.
A P2 in Crieff who counts everything, a P6 in Blairgowrie ready for real code, an S4 in Auchterarder heading for National 5, and an adult in Kinross who wants to automate reports. Every one of them opens with a free trial.

Block coding with calendars, clocks and counting games.
See the syllabus
Remainders, patterns and number puzzles solved by writing code.
See the syllabus
Algorithms for teenagers, tested systematically rather than by hope.
See the syllabus
Python for adults from the first line, including working with dates and times.
See the syllabusBrowse the course atlas for more than one hundred options and use the coding roadmap to check prerequisites.
The four we are known for
These run underneath everything above. Every one is live and online, placed by ability rather than by age, and the first class is free.

Python, web and AI projects where the learner still owns the thinking.
See the syllabus
Automate the work you already do, then let AI carry part of it.
See the syllabus
Train a model, read what it learned, and be able to say why it is wrong.
See the syllabus
Run AI coding agents on real work without losing control of the codebase.
See the syllabusCouncil totals are rounded first results from the 2022 census, published by National Records of Scotland. Town figures are NRS estimates for mid-2020, a separate series.
| Locality | Residents | Locality | Residents |
|---|---|---|---|
| Perth | 47,350 | Bridge of Earn | 2,920 |
| Blairgowrie | 9,240 | Pitlochry | 2,880 |
| Crieff | 7,280 | Alyth | 2,370 |
| Auchterarder | 5,840 | Coupar Angus | 2,220 |
| Kinross | 5,610 | ||
| Scone | 5,030 |
At 28.5 residents per square kilometre, Perth and Kinross is well below the Scottish 69.8. Our addition of the census age bands gives 14.7 per cent of residents under 15, a little below Scotland's 15.3, and 24.7 per cent aged 65 or older, against 20.1. Part of Kelty also falls inside the council area. We have not looked up Perth and Kinross Council's term calendar, so each household simply tells us when school is out.
The city has its own page, Perth, with a different project. For qualifications: National 5 Maths and Higher Computing Science.
One formula, two famous bugs, and a test that covers 109,938 days.
Zeller's congruence works on the day, the month and the year, split into its century and its last two digits. It adds a handful of whole-number quantities and takes the remainder after dividing by 7, which gives a number from 0 to 6: 0 for Saturday, 1 for Sunday and so on. There is one strange rule. January and February are treated as months 13 and 14 of the previous year, because the formula counts from March so that the awkward February leap day falls at the end. The learner codes it in a few lines of Python and asks it about 7 October 1847. The answer is Thursday, and Python's own date library agrees.
| Version | Days checked | Days wrong | Which days |
|---|---|---|---|
| Correct formula | 109,938 | 0 | None |
| January and February not shifted | 109,938 | 17,832 | Every January and February day |
| Minus-2J form with a C-style remainder | 109,938 | 2,285 | Scattered, from 2 March 1800 |
| Same form with Python's remainder | 109,938 | 0 | None |
The first bug is the classic. Forget the January and February shift and the formula is wrong on every one of those days and right on all the others, so testing a handful of dates in summer never finds it. The second is subtler. A popular version of the formula subtracts twice the century instead of adding five times it, which is equivalent in mathematics but can make the total negative. Python's remainder of a negative number is still between 0 and 6; the remainder in C, Java and JavaScript keeps the minus sign. Port the formula from one language to another and it returns -6 for 2 March 1800 and is wrong on 2,285 days in three centuries, yet perfect on every date anyone thinks to try by hand.
Exhaustive testing catches both, and the learner can then ask playful questions with confidence. Over a full 400-year cycle of the Gregorian calendar, the 13th of the month falls on a Friday 688 times out of 4,800, slightly more often than on any other day. The cycle repeats exactly every 400 years, so that is a fact, not a sample.
Build a Scratch program that counts forward from a known Sunday to find the weekday of a birthday, then check with a calendar.
Code Zeller's formula in Python, test it on ten dates, and then on every day of a year.
Reproduce both bugs, test every day for 300 years against the date library, and explain why the remainder of a negative differs between languages.
The date on the floodmark comes from the Historic Environment Scotland listing. The weekday, the tests and every count in the table come from our own program, checked against Python's date library.
What the listings for Mid Mill and Bell Mill record.
| Listing detail | What it records |
|---|---|
| Mid Mill dates | Circa 1823 to 1830, extended in the 1830s, upper floors rebuilt after a fire in 1848 |
| Floodmark | Dated 7 October 1847, on the second-floor string course |
| Machinery | Probably the oldest cotton spinning machinery in Scotland |
| Structure | Perhaps the second or third surviving iron-framed cotton mill in Scotland |
| Bell Mill | To designs of Sir Richard Arkwright, 1786 to 1787 |
| Water | Tail races from the wheelhouse ran beneath the mills |
Date arithmetic sits inside nearly every system people use: booking sites, school timetables, bank statements, delivery estimates and phone calendars. Date bugs are notorious precisely because they hide in rare cases, the start of the year, a leap day, a negative number. A pupil from Perth and Kinross who has tested every day for three centuries knows that "it worked when I tried it" is not a test.
Historic Environment Scotland and Perth and Kinross Council have no link with us. The listing facts are theirs; the formula tests and any mistakes are ours.
Stages are only a guide; the free lesson sets the real starting point.
Block coding with calendars, clocks and repeating patterns.
Coding for KidsScratch Coding for KidsTyped Python with division, remainders and simple formulas.
Maths Through CodingPython and AI for KidsAlgorithms and thorough testing beside National 5, Higher and Advanced Higher Computing Science.
Problem Solving for TeensPython for TeensPython for adults, including dates, schedules and data.
Python MasterclassData Analysis CourseCode that is correct in one language can be quietly wrong in another.
Ask a chatbot to convert a Python weekday function to JavaScript and it will usually produce clean, plausible code. If the formula relies on Python's handling of negative remainders, the translation can be wrong on thousands of dates while passing every example you try.
A Perth and Kinross learner who has tested every day for three centuries knows to test converted code exhaustively, not by spot checks. That habit is exactly what AI-written code needs.
Proving a program right, instead of hoping, is the reason Perth and Kinross teenagers should keep learning to code in 2026. The longer argument is in why teenagers should still learn to code in 2026.
In a council area this spread out, online lessons remove long evening drives.
The learner types every line; the teacher follows on the shared screen and helps at the right moment.
We use P and S stages, National 5, Higher and Advanced Higher, as Perth and Kinross schools do. Lessons are in English.
A genuine lesson with no charge, then a straight recommendation.
Every group holds between five and ten learners working at one stage, some from Scotland and some from much further away.
Two lessons a week in term; breaks for school holidays.
Your slot keeps its UK time as the clocks change; teachers in India time adjust instead.
Why groups are not by town
Five learners at one stage, free at one time, rarely live in one Perthshire town. Grouping by stage across a wider pool gives a pupil in Alyth or Coupar Angus a class that fits.
Crieff or Kinross, the fee is identical, the same one we charge everywhere outside India.
A complete free lesson, then honest advice.
About eight lessons a month in a group of five to ten.
About eight lessons a month with a teacher to yourself.
We charge in US dollars and keep no sterling price list. The trial lesson comes first; an invoice only follows once you have chosen a course and a regular weekday. Our pricing page spells out what happens over holidays, after a missed class or on a switch of format.
Rated 4.9 across 547 Google reviews. These are real reviews, reproduced as written.
★★★★★
"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
Give us an age or school stage and a hobby or two, and we will shape the free lesson around it: perhaps a Scratch calendar game, a Python program, or the weekday formula on this page.
The council area, the Stanley Mills project and practical points.
Around 150,800, living in about 70,000 households, per the NRS-rounded figures from the 2022 census.
NRS mid-2020 estimates: Blairgowrie 9,240, Crieff 7,280, Auchterarder 5,840, Kinross 5,610 and Scone 5,030.
Learners code Zeller's congruence in Python, find that the 1847 floodmark date was a Thursday, and test the formula on all 109,938 days from 1800 to 2100 to expose two classic bugs.
A formula that turns a date into its day of the week using whole-number arithmetic and a remainder after dividing by 7.
Historic Environment Scotland notes a floodmark dated 7 October 1847 on the second-floor string course of Mid Mill.
All lessons are online, so learners join from home anywhere in Perth and Kinross.
Yes, and Higher Maths and Computing Science too. We teach understanding and never promise grades.
From 6 to 67: block coding for young children, Python and exam work for secondary pupils, and Python for adults at any level.
The first is free, then USD 100 a month in a group or USD 150 a month one-to-one.
Holidays mean a break. Tell us the weeks your Perthshire school is closed and no lessons are booked for them.