Competitive programming is a well known sport among the programming community and is not generally used as a means for children to learn coding. While there are benefits to framing the learning process in a competitive context, there is a lot to consider as competitive programming for kids.
The arguments for and against the use of competition
as a tool for learning can be explained across most disciplines. Competition is
a great motivator as it directly interacts with our social side in order to
achieve results. The power of competition as a motivator makes its use as a
learning tool very tempting.
However, competition is not always a positive
experience, and conflating competition with learning at a very young age has
shown to not always bear positive results, as put forward by John Shindler in
his paperTransformative Classroom Management(2009).
Competition can take away from the team work ethic, can damage self-esteem, and
probably most significantly can establish a fear of failure in children. A
negative competitive experience may alienate children from the learning process
altogether, and may also spoil relationships among their fellow students.
There are also obviously great benefits to competition
– promoting quick learning against other students, providing motivation where
it might not already exist, and of course they are a social experience. John Shindler (2009) proposes some solutions
for the above problems.
i) Try to reduce meaningful incentives from winning
ii) No competition shoul last longer than a class period
iii) Use competitive play as a way to reinforce existing knowledge
rather than learn new things
iv) Make learning and fun the main aim of the activity rather than
In the adult world of programming, competitions are
common and enjoyed by many. For children who are less developed socially and
who are just developing, the situation can be more complicated and both the
negative and positive effects long-lasting.