Teaching coding doesn't involve explaining licences: that is something
should be instilled by practice and leading the kids to use solutions
have the appropriate licence.
I disagree; licensing power and responsible use of that power is very
much something that must be explicitly taught, not assumed to be
picked up by practice or dismissed as an insignificant detail.
Licensing power is as much a part of the real world as is code.
Therefore to give a practical education, teachers must explain how a
user's software freedoms are retained with copyleft licenses and lost
with non-copyleft licenses, else one is teaching the "open source" way
which (purposefully) does not identify copyleft licenses (except
perhaps pejoratively) because that movement has no interest in
software freedom and that movement is merely a means for proprietors
to leverage programmers' talents toward proprietarization (what I
believe Brad Kuhn rightly compared to greenwashing -- organizations
that try to dress up anti-environmental behavior with
environmentally-sensitive propaganda -- and called "openwashing").
Once they grasp the basics through Scratch, many kids prefer to move
development. This requires a text editor that preferably supports
colour-coding: Notepad++ (GPL) is a very popular product for this.
Notepad++ is not as good choice of program to teach software freedom
because Notepad++ depends on nonfree software, namely Microsoft
Windows. GNU Emacs is considerably more capable and can be run on an
entirely free system.
Beyond this, the kids try all kinds of stuff, including Mobile using
Cordova (ASL) and native, Java, Python, C/C++, etc. running on every
One should not treat every "platform" the same way as if there's no
reason to favor one over another, or to let perceived popularity
determine a choice of operating system. No phone is free and most
phones have their users pick software from walled gardens known as
"app stores" in which censorship and anti-software freedom abound.
Good teaching requires careful selection, and one should choose a free
software system on which nothing but free software is installed.
This is not a matter of learning "every imaginable platform" which no
programmer will ever do anyhow. Programmers pick up what they need to
know as they go. Good teachers know that students need to know how to
learn what they need as they go and students require good incentives
to make sound choices. Ignoring or dismissing ethical, social, and
political differences teaches students that these concerns are not
important, that all they need concern themselves with are the
technical issues in programming. That approach is a recipe for making
a naive person who is wholly unprepared to deal with the real world
and ready to be exploited by some proprietor.
Of course there are many who want to write iPhone apps and there's no
way to avoid proprietary stuff there - while it's great to promote
we have to be realistic and focus on the goal at hand which is to get
kids to code.
The effort should aim not to "get kids to code" but to teach the human
rights users of the software ought to have. This includes freedom and
cooperation, values nonfree software simply do not proffer and the
open source movement doesn't value outside of benefiting would-be
proprietors. As https://www.gnu.org/education/edu-why.html rightly
points out, "Schools should teach their students to be citizens of a
strong, capable, independent and free society.". Proprietors and their
sycophants know how much influence schools can have on society. That's
why they give such steep discounts to schools; give them the trap
early and they'll learn to think that the trap is the right and proper
way to do computing. Proprietors want to set the bounds of allowable
debate while the students are unlikely to question what trap is being
set before them. They're teaching dependence and either ignoring or
denigrating human rights. We must not do the same nor should we think
the goals are the same.
The goal should not be to "promote OSS" by which I take it you mean
"open source software". That movement stands against software freedom
and while its advocates do work with software freedom activists to
make great software we have the right to run, share, and modify, the
open source movement's values were designed to never discuss software
freedom (ostensibly, in an attempt to better speak to businesses, but
I think that was merely a ploy to convince naive developers a myth
that businesses somehow can't be spoken to straightforwardly about the
terms of accepting free software).
 Older essay:
 https://www.gnu.org/philosophy/java-trap.html -- Notepad++ has the
same problem as that described in this essay: free software with