terriko: (Default)
My friend Gail and I stopped by the Girls@VV (the girls-only version of a local science/engineering summer camp) to give them a presentation on computer science. Gail already has an excellent write-up of our chat with the girls on her blog.

One of the things we asked the girls about is what we could do to encourage more young women to explore computer science, and a very prominent suggestion was that we start teaching it earlier, so people have some idea of the possibilities.

So it got me thinking, why don't we start earlier? I taught my sister how to program when she was in elementary school. One of my friends always asserts that I shouldn't generalize based on my sister and her friends, who are incredibly smart and exceptional people, but honestly programming isn't that difficult. My brother and I learned at 13 from a book for kids. So why don't the schools teach it?

Here's some reasons I've been told in the past:


  1. Teachers don't have the time. This is especially true at the elementary level, as illustrated by Diane Scaiff's excellent summary of teachers work hours in Ontario. Adding stuff to the curriculum takes time that many teachers just don't have.

  2. Schools don't have equipment. Computers are expensive to buy, maintain, and they are common targets for theft.

  3. People think computer science is hard. Often they think it requires advanced math. You do not need significant math skills to program, despite this perception. When I was teaching basic programming to my sister's friends, we started with web quizzes. The only math was simple addition. But this perception intimidates a lot of people who haven't tried it.

  4. Teachers don't have the knowledge and skills required to teach computer science. And, as stated before, they don't have time to learn and may be intimidated by the perception that computer science is incredibly difficult. This is especially true since many elementary school teachers feel that they are weak in math (at least according to the gentleman who started JUMP math tutoring).

  5. People don't think kids will be able to do more "advanced" stuff. This irks me. Kids are a whole lot smarter and more capable than many people take them for.


As you might guess, this isn't just relevant to computer science. My parents, who are biochemists, hit some of the same roadblocks when they wanted to make sure I got a good science education from a young age. They found ways around it and ways to supplement my education.

And what you might not realise (but I think the girls did) is that because this stuff isn't taught in the schools, girls especially aren't getting exposed. Guys often seem to get exposed to computer science in other ways, but more women rely upon the curriculum. (A recent study suggests that girls may have less spare time than boys, which is one reason that might explain this.) So while this extra education could help all children, it's likely to be especially helpful to girls.

So, I'm going to leave you all with two questions:


  1. Why else don't we teach younger children computer science?

  2. What can we do to alleviate these problems?



I obviously have opinions and suggestions on number 2 (For example, freely available materials like the CS Unplugged activity we ran this morning!), but I'd like to see what other people think first.
terriko: (Default)
I forgot to mention my favourite issue in my previous post about JavaScript and Firefox extension development.

Sometimes, magically, your entire log on the error goes poof! 'cause, you know, it wasn't hard enough to debug.

I'm pretty sure the error log goes poof if you try to print something undefined to it, but there may be other cases where it does.

Special.
terriko: (Default)
I'm working on a Firefox extension.

For those of you who have not attempted this, let me tell you a few things about the experience:

(a) I'm working in JavaScript. JavaScript likes to fail gracefully, which means that it doesn't tend to spew error messages every time something goes wrong. That's nice if you're using it, but annoying when you're trying to track down an error.

(b) And then, in case it wasn't quiet enough, I put it into an add-on, where it's even more silent, and on top of that I can't bring my usual JavaScript debugging tools to bear on it because they only operate on the code in a web page.

So basically, I've been programming for the past few days without all the usual modern coding conveniences. I have been reduced to debugging almost entirely from the equivalent of printf or echo. Thank goodness I at least have syntax highlighting. To use a terrible analogy, this is akin to writing everything on a typewriter -- better than a quill and ink perhaps, but still not quite up to the modern computer when it comes to the easy fixing of mistakes.

I've lost track of the number of times where I've deleted my non-working code, retyped it all, only to find that this time, it works. The problem before was almost certainly a typo, but it was less trouble to re-write than try to find the missing character. Incredibly frustrating.

That said, I actually kinda like Firefox extension development, even if the minutiae are irritating. It's incredibly satisfying when it works, and I can then try my code out on any web page I want, really easily. So much data. And the idea that other people will be able to install my code is surprisingly appealing. (Well, perhaps not that surprising -- I used to write IRC scripts back in the day.)

But I do feel a little like I'm the dark ages here, and I find it hard to believe that other people placidly program in this environment. So I'm guessing there are tools out there, I just don't know them. Last time I tried any was probably pre Firefox 2.0, and I wasn't thrilled, but I'd be happy to take some recommendations now if things have gotten better now that we're up to 3.5!

Profile

terriko: (Default)
terriko

June 2025

S M T W T F S
1234567
89 1011121314
15161718192021
22232425262728
2930     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 17th, 2025 07:06 am
Powered by Dreamwidth Studios