

Homegrown Computer Science for Middle Schoolers - launchsack
http://tessrinearson.com/blog/?p=607

======
biotech
I love to see these articles. It's uniquely challenging to teach children to
program at that age. I'm starting an after-school program to teach kids (~10
years old range) how to program. When researching tools available to teachers
and students, I came up with a list that it strikingly similar to that which
is presented in this article.

When teaching kids a few years older, your world really opens up in terms of
tools you can use - I think a motivated 13 year old should be able to grasp
any one of a number of different programming languages and/or different
paradigms.

One of the issues with teaching younger students has to do with the immediacy
of results:

Something like "Scratch" has a simplified programming model (visual drag-and-
drop programming to create interactive animations), but gives immediate
results that you can see on the screen right away, and it's impossible to
create a syntax error.

When you teach a "friendly" programming language like Basic or Python, there's
still a decent amount of background material before you actually create
something visually cool. So, while a 9 year old might get bored and start to
loose attention, I would expect a 13 year old to have the patience and
persistence to know that the cool stuff (ie, making a simple video game) is on
the horizon. He/She will continue to plow through the boilerplate.

When you go to Java or C, it requires all the more motivation, because the
background information is that much more difficult to ignore. Syntax is much
trickier. API's are less friendly to new coders. It takes more time and focus
to create the result you're looking for, especially if it's graphical.

That was my thought process that eventually led me to choose Scratch as the
way to introduce the students to programming in our computer programming club.

~~~
jbellis
That's exactly why I introduced my kids (10 and 7) to Scratch.

But we got to the end of the video tutorials and ... then what? They don't
know enough about what's possible to pick a challenge goal and start working
towards figuring it out. And I don't want to just turn them loose on the
forums; trying to find actionable information there as a newcomer would get
frustrating quickly.

Any suggestions for next steps?

~~~
haroldl
They might like the book "Super Scratch Programming Adventure!" It walks
through building several games in a comic-book format. I thought it was good.

~~~
jbellis
Thanks, that does look good! I'm glad there's a new book out, the other books
on Scratch look too dry, too outdated, or both. Ordered a copy.

------
jbermudes
While we're on the topic of K-12 CS Education, does it strike anyone else as
insane that the state with Silicon Valley does not have a proper credential
process for CS?

Last time I checked, there were a few ways to be authorized to teach
CS/programming related classes in a school, all with problems. The three
credentials that authorize you to teach computer sciencey things don't test
any CS at all:

\- Supposedly, the business credential test has a question about flowcharts

\- The industrial tech test asks about part of a computer

\- The math test might have some set theory, but good luck trying to teach
computer science with a math credential. The administration at your school
would prefer you teach math as there's always a need for another math teacher.

CS is a delicate and fledgeling field in K-12 and right now it's a bleak road
ahead. The small number of schools that have programming classes (let alone a
CS track) is shrinking and the credential problem isn't helping.

One demonstration of the state of CS education is the college board's
discontinuing of its Computer Science AB test in 2009 due to a mixture of lack
of turnout and lack of qualified teachers to teach it. (Of the few CS
educators out there, even a smaller subset could teach AB, most stuck to A).

With all of the opportunity generated by the industry pioneers here in CA, our
CS education should be at the forefront nationally. We don't even have to
embrace CS for its career potential. CS is a liberal art of the 21st century
and I believe CS concepts would be worth it alone for its application and
transfer to other subjects, especially math.

~~~
temiri
I know; I was stunned to see the ways that different states have handled the
ACM's recommendations: <http://www.acm.org/runningonempty/roemap.html> (One of
my friends from Idaho gleefully pointed out that they "don't suck at
everything.")

If you're passionate about helping CA stay the course ahead, you really should
check out some of the resources for talking to administrators at
<http://www.csedweek.org/> or even get in touch with the CSEdWeek organizers.

------
vitno
I was homeschooled back in middle school. My father had me work through the
manual for the parallax basic stamp & it's robotic platform the boe-bot.

It was great. If I was homeschooling a kid, I would do exactly the same thing,
except with an arduino... no awful BASIC.

------
jlteran
I only wish I could have learned programming at an earlier age.. I didn't
write my first line of code until my first day of college in my Intro to CS
course and I have to say, prior knowledge of programming would have come in
handy! I applaud anyone willing to introduce programming to kids at a younger
age!

~~~
ahoy
I didn't write my first line of code till I was 23. I agree with you whole
heartedly.

------
bcasey
This is great. As a newbie to coding, I really learned a lot from Codecademy
and I can't wait until my little girl is old enough to start learning. She's
already watching me and figuring out the concept of i/o (she's 5) and seems to
be generally interested in CS. It just goes to show that sometimes exposure is
all that's required to generate interest.

------
zachgalant
You should also check out <http://codehs.com>

We're making it really easy for kids to get started and continue learning
because we provide every students with help and feedback from live tutors.

~~~
temiri
Cool, I'll take a look. Perhaps this is a naive question, but what
differentiates Code HS from something like Codecademy?

