Robert
Young
English
250
Section
PN
2/24/2014
Forget
Foreign Languages and Music. Teach Our Kids to Code: An Analysis
What
would you think of a five-year-old trying to program a computer: and
succeeding? “Forget Foreign Languages and Music. Teach Our Kids to Code,” by
Brendan I Koerner, a columnist for Wired magazine, proves that this is
possible. Children can learn the basic principles of programming in their early
years, despite the public opinion that programming is something that is above
the level of kindergarteners and elementary school students. To prove this
point, Koerner quotes Paul Gibson, a Computer Science teacher in France,
references several programs that attempt to teach programming at a younger age,
and making comparisons between computer languages and music and foreign
languages.
In
this article, the point is more that you can teach programming principles at a
young age rather than the code language itself. The difference is that
programming principles have more to do with problem solving skills and less to
do with code syntax and actually writing
statements and executing them. Basically, he’s teaching them how to come up
with pseudo-code rather than the actual code itself. They come up with the
steps they need to take in order to solve a problem, then have the instructor
implement them. In order to teach the language itself, and get all of the
syntax correct, the children do, indeed have to learn how to read and write.
Otherwise, they won’t have a clue what they just wrote down. A solution to this
would be Drag and Drop programming (something that I have personal experience
with), where symbols are used instead of words to come up with algorithms. Then
the children won’t have to worry about the syntax or how things are spelled or
anything like that. This is exactly what Koerner is trying to convey when he
says “Kindergarteners cannot become C++ ninjas, but they can certainly start to
develop the skills that will eventually cement lifelong fluency in code.”
In
the second paragraph, Koerner quoted that Gibson was able to teach “Rudimentary
Java to 8- and 9-year olds.” In the next paragraph, he claims that Gibson was
successful in teaching kindergarteners “how to create graph algorithms” and
“write a tic-tac-toe program.” Later in the paragraph, Gibson was quoted
“Children aged from 5-11 have so much potential for learning about algorithms
and computation that it would be a shame to wait until they are teenagers
before we teach them the foundations.” This statement appeals to the audience
through their feelings, calling it “a shame” to not teach programming
principles this early in childhood. If a parent were to read this, they would
want their child to learn the principles of programming in school. Quoting Paul
Gibson was extremely successful in proving that children can learn the basics
of programming principles at a young age.
Toward
the end of this article, Koerner brings up some of the other programs that are
trying to teach kids how to program. In one of these, “children as young as 4
are using a language called Cherp to make robots perform household chores.” Another
“challenges kids to code their own versions of Frogger.” The initiative to teach children to code is gaining
speed. It isn’t just a few people here and there that think it is a good idea,
it is becoming broader as more research is conducted. This section of the
article is especially effective in proving that children are capable of
learning programming because he is able to cite specific cases where it has
already happened.
In
conclusion, this article did a very good job at proving that children can
program. Specific sources have been cited that say children have already started
programming. Gibson was teaching Java to 8- and 9-year-olds and getting
kindergarteners to program tic-tac-toe, while other people were helping kids
program their own game, as well as telling robots how to do their chores.
Koerner also relates learning programming languages to learning foreign
languages, saying that they learn languages so easily because of the way their
brains work at such a young age.



In the first frame, the
cat is kind of just a sketch, just like when a Software Engineer has the very
first idea for his program. You have a basic idea of what it looks like, but
not necessarily exactly what it will look like or what it does. It hasn’t
actually been started yet, and there will be a lot of work to do, just like a
program needs to be developed before it can actually become what it was
intended to be. When I went back to look at this later, I noticed that some
parts of this first frame are done in great detail, like the head, while others
are just barely started, like the legs. This may be because some parts of a
program have to be explained a lot for it to make sense, while other parts make
sense intuitively.
The second frame is a
representation of how much time has been spent on each part of the program.
Notice that the larger percentages of time are spent on things that are just
kind of off to the side, like the tail and legs instead of the torso, or head,
which is kind of like more time was spent on bonus features instead of the main
program. This isn’t always a bad thing. Sometimes you get done with the main
part of the program, and would like to add some features, but the features are
actually more complicated than the main part of the program. Usually
programmers use things called functions, and these functions help out the main
part of the program. On a cat, the legs help the cat move around. One of the
more complicated parts of the cat, the tail, helps keep its balance, which is
extremely difficult to simulate, and may take more time to perfect than the
rest of the cat. It is things like that you have to take into consideration.
The next two frames go
together. One is labeled “How the Software looks before the beta test,” and
depicts the cat with its hind legs missing. In the analogy to a computer
program, this would mean that some features are missing, but most of the main
functionality is there. After the beta test, in the second of these two frames,
the missing functions are there again, but now different features are missing. This
kind of helps explain that no program is ever complete. Every time you change
something, it seems like it caused something else to be broken. In this case,
adding the hind legs accidentally removed the front legs. 
The first frame in
the second row is labeled “How the software is advertised.” It displays a
ferocious-looking tiger. This cat does look a lot better than the other cats on
the page. It is depicted as a tiger that could supposedly run at up to sixty
miles an hour and swallow a small child whole, even though the cat that is
illustrated in the rest of the image probably wouldn’t be able to do that. This
relates to Software Engineering because software often claims to do things that
it actually doesn’t do very well, if at all. From personal experience, some
applications on the Windows Store claim to do things that they don’t actually
do. I won’t list specific examples because most of those have been fixed now. 
the cat-program even
if they wanted a dog-program or even something completely unrelated, such as a
flower-program. This is something that I myself do not necessarily agree with.
If Software Engineers are unable to produce exactly what customers want, then
why have them? The software engineers have to have something to work towards,
even if not everything is explicitly stated for them. What the customers want
is known to the Software Engineers, they just might think of a different way to
do it than the customer wanted.

The second-to-last
frame, the cat with the arm sticking out of its back and the elephant trunk
growing out of its nose seems a little out-of-place. To me it looks like
features were added that weren’t really wanted (or intended). It is kind of symbolizing
a computer bug. It is a side effect that wasn’t expected or intended, but is part
of the program anyway. In software engineering, bugs can sometimes be hard to
get rid of, and getting rid of them can sometimes lead to more problems. To
relate this to the picture, I don’t think this cat would appreciate us chopping
off the arm on its back, and it could create a very large mess that would be a
pain to get rid of.