Learning and fun are not enemies, they're allies. How does this relate to Python coding courses for kids?
Education has changed significantly in recent decades. Many of those changes were even positive ones! One of the key changes has been the increased focus on engaging students into teaching. Old-fashioned teaching rarely did this.
However, the focus in some educational settings has been on making sure kids have fun, losing sight of the learning aspect. So what's the correct balance between learning and fun?
In this article, I'll argue that "What's the balance between learning and fun?" is the wrong question to ask. There is no balance needed as 'learning' and 'fun' are allies. When learning is done well, kids have fun. And when kids have fun, they're more likely to learn, as long as it's backed by a thorough curriculum.
Breadth and Depth When Teaching Subjects
Every subject needs to be taught thoroughly. This sounds like an obvious statement to make. However, it's much easier to teach a subject superficially, teaching the facts without ensuring understanding. To understand, really understand, a subject, students need to go deep into the subject and explore it from different perspectives.
This is important for every subject kids learn at school and elsewhere. It is especially important for the more academic subjects, including coding.
Often, coding is seen as a lightweight subject. Many schools, through no fault of their own, don't have specialist teachers to teach coding. Teachers with other subject-specialities end up teaching coding despite having little experience of the subject. This matters because, unlike other subjects, coding can only be taught thoroughly and in an engaging way by teachers who understand the coding mindset well and who have significant experience with professional coding.
Teaching coding properly is not easy. And children's coding platforms, such as Scratch, don't really help as they tend to give the wrong impression of what coding is.
The teaching of coding is too often pushed to one of two ends of the spectrum:
either coding is taught in a fun and fluffy way, without any breadth and depth (not good)
or coding is covered in a detailed, technical fashion through a series of dull and dry examples (not good either)
But, there is a third way:
teach coding using a curriculum that has breadth and depth through well-planned projects that are engaging, thorough, and that allow students to explore, fail, learn from those failures, and truly understand the coding mindset.
This is not easy, but it is possible! I've made it my main activity of the past six years to create and refine such a curriculum!
All Subjects Should Be Fun, But...
Let's consider Maths for a second. Maths is a subject that's very polarised: some people love and enjoy it; others don't, and have a strong dislike for the subject. There's often a close association between those who are good at Maths and those who find Maths fun. And there's a reason for that!
The same is true for other subjects too. When students are good at a subject, they're likely to enjoy it. But when the fun is not there, students struggle.
The question we need to ask is: do students enjoy a subject because they're good at it, or are they good at the subject because they enjoy it?
This is a chicken-and-egg question. The link goes both ways: the more you enjoy a subject the better you'll get at it, and therefore, you'll enjoy it more and get even better at it. Once a student is on this positive feedback loop, they're clearly on the right track.
But, how can we get students on this track?
There's no easy answer to this question. If there were, all education would be perfect, everywhere! A common error is to focus too much on making a subject fun and lose sight of the learning aspect. We see this a lot in coding taught in schools and also in out-of-school courses.
But, we don't want lessons to be boring, either! The key is to design engaging projects and teaching methods. The fun comes both from the end-product of the project and from the challenge kids get from exploring the project material.
Let's consider a project in which students code a 2D graphics game in Python. We use game-writing often as projects in our Python coding courses. The end-product is a game which students can play and get their parents and friends to play. The thrill and excitement, however, comes from the knowledge that they wrote the game themselves. The games they write are much simpler than other games they play online for very obvious reasons. But kids get lots of satisfaction in playing these games—because they wrote them themselves.
However, the process of writing the game takes kids through a learning journey. At codetoday, we put a lot of thought and research in designing our projects and the way we teach them to make sure that this learning journey is a very productive one for all the students.
Fun and learning are not at different ends of the spectrum. You don't need a trade-off between them! The challenge for every curriculum and teacher is to find that sweet spot where the two allies, 'fun' and 'learning' work together. This is true for Python coding courses and for courses in any subject matter, too!