Live data from Hacker News

Teaching Ruby to High School Girls

teachingkids.railsbridge.org

41–48 of 48 posts

Re: Teaching Ruby to High School Girls

#41
post #20
post #13

Earlier quoted context omitted.

We teach Shakespeare and Calculus in high school, though those are certainly not the easiest choices in their respective fields. For an introductory programming class, I agree that Python is a great choice. However for seniors in a computer science class, C should be a fairly important part of the curriculum. There are some fundamentals of computer science that are best grasped through experimentation with C (pointer…

"We teach Shakespeare and Calculus in high school, though those are certainly not the easiest choices in their respective fields." I'm not sure that's the best argument. In my sophomore year in high school, we covered Romeo and Juliet. At that point, it is fair to say that I had reading skills well above average. I could read original texts from the 19th, 18th, and even to a limited extent the 17th centuries and unde…

I often get a lot of shock when I question Shakespeare's value.

I'm not shocked at all; your viewpoint is actually fairly common. However, your points about Shakespeare are evidence that you really never fully understood why we study Shakespeare. I'm not saying it's your fault. Indeed, more than likely it's because of the sorry state of English education in high school. I'll do my best to explain here.

I'll start by acknowledging that enlightenment/revelation is a significant piece to it. Explaining this to someone who hasn't studied English in depth is like trying to explain why Lisp is so beautiful to a Blub programmer. It's possible, but it requires a writer of Graham's caliber and I fear I'm not yet skilled enough for the task. For now you'll just have to take it on my word that such enlightenment exists. From personal experience, I know it is possible to achieve it on the high school level and the impact is long lasting. Without Powers, Faulkner, Shakespeare, Achebe, Hemingway, there's no way I could have achieved the level of success I have in Computer Science. If I hadn't gotten the hard stuff in high school, I wouldn't have bothered to continue to study it on the side in college.

My personal anecdote is not my main point, however. It's a single data point with no evidence, and I present it in the hope that it be useful in some way. The real reason why we study Shakespeare in high school is not for the enlightenment that results from his words. It's because his influence on the past and present of literature is overwhelming. Without Shakespeare you wouldn't have Dickens, Coleridge, Melville, etc. All of the works of these people contain Shakespeare's influence. Hell, he helped change the English language itself. Indeed, there's a great parallel to C here. Do you really think we teach C so that people will program in it? No! We teach C because the concepts contained in the language underly so many different topic areas in Computer Science. Who cares about the enlightenment from understanding Hamlet, pointer arithmetic, memory management, and so on! What's really important is understanding thees things so you can understand the modern, cutting-edge stuff.

It's fine if you think the culture stuff is bullshit. But if you like Dickens and Melville then you should understand Shakespeare. And damn, if more people understood C, the most popular open source browser wouldn't be memory leak hell. ;-)

I'll close with a quote from Spolsky:

Today, to work on CityDesk, I need to know Visual Basic, COM, ATL, C++, InnoSetup, Internet Explorer internals, regular expressions, DOM, HTML, CSS, and XML. All high level tools compared to the old K&R stuff, but I still have to know the K&R stuff or I'm toast.

Ten years ago, we might have imagined that new programming paradigms would have made programming easier by now. Indeed, the abstractions we've created over the years do allow us to deal with new orders of complexity in software development that we didn't have to deal with ten or fifteen years ago, like GUI programming and network programming. And while these great tools, like modern OO forms-based languages, let us get a lot of work done incredibly quickly, suddenly one day we need to figure out a problem where the abstraction leaked, and it takes 2 weeks. And when you need to hire a programmer to do mostly VB programming, it's not good enough to hire a VB programmer, because they will get completely stuck in tar every time the VB abstraction leaks.

http://www.joelonsoftware.com/articles/LeakyAbstractions.htm...

And yes, I know you might advocate simply waiting until college to teach this. But want to know what's harder than teaching a 17 year old pointers? Teaching 21 year old hotshot Java programmer pointers.

Re: Teaching Ruby to High School Girls

#42

I am surprised how well that went down to be honest - they must have been some bright kids! I don't think you'd have as much luck with first year uni students in a three hour segment. Great work and I love the extension ideas (including USB drives!)

I had similar success teaching Shoes to fourth & fifth graders in a series of 3 1-hour lessons. I liked Sarah Mei's lesson even better, but for another datapoint, here's my report: http://teachingkids.railsbridge.org/2009/07/20/fifth-grade-s...

I think kids find programming more natural than adults do. They are used to learning many strange and arbitrary rules :)

Re: Teaching Ruby to High School Girls

#43
post #19
post #15

Earlier quoted context omitted.

I had to read Romeo and Juliet my Freshman year in high school. My understanding is that R&J is a fairly common Freshman text. Your point about Calculus doesn't quite fit either because you don't need an extensive foundation to start programming. That's why we see a lot more 14 year olds programming than doing Calculus. You're a genius if you're doing Calculus at age 14, but I bet a lot of people who read this site s…

So you read Romeo and Juliet after quite a lot of studies in English (since the first grade).

Sure, let's count learning to read, write, and spell correctly.... oh wait, you use that for programming too. ;-)

Also, you should probably revise your thinking so "English" isn't just everything that has to do with books. It's critical theory, complex analysis, and a bunch of other things. The stuff most people do in 1st through 6th grade is to English as learning how to type is to programming.

Re: Teaching Ruby to High School Girls

#44
post #13

Earlier quoted context omitted.

We teach Shakespeare and Calculus in high school, though those are certainly not the easiest choices in their respective fields. For an introductory programming class, I agree that Python is a great choice. However for seniors in a computer science class, C should be a fairly important part of the curriculum. There are some fundamentals of computer science that are best grasped through experimentation with C (pointer…

By the time students get to Shakespeare and calculus, they've been reading books critically and doing math in school for at least a half dozen years. If they have six years of CS/programming education, too, then I agree that they would be well-served by a course in C. There are a whole hell of a lot of concepts in computer science that I think are both more useful and far more educational than understanding how to do…

Actually, they haven't. For the most part, they've never read anything critically (or even really read anything period), and the crank-turning and hoo-ha that goes in math class certainly isn't mathematics.

So by the time they hit Calculus and Shakespeare, they're in year 11 of their time in a velvet jail and have learned to very adequately mimic the bizarre squawking the guards insist is requisite for passage to The Island.

What they have not done is mathematics or reading in any real sense.

Re: Teaching Ruby to High School Girls

#45
post #32
post #13

Earlier quoted context omitted.

We teach Shakespeare and Calculus in high school, though those are certainly not the easiest choices in their respective fields. For an introductory programming class, I agree that Python is a great choice. However for seniors in a computer science class, C should be a fairly important part of the curriculum. There are some fundamentals of computer science that are best grasped through experimentation with C (pointer…

I agree that you shouldn't make the classes too easy, but you have to get something out of the extra difficulty. The reason that we should teach Python instead of C is the reason why we teach Arabic numerals instead of Roman numerals. Roman numerals are more difficult, but you get no insight out of this time spent learning Roman numerals. It is extra human created tedious difficulty. You get a much better understandi…

Excellent observation about understanding pointers; I never really had any difficulty understanding pointers in C, but I had already programmed in assembly language.

Shakespeare on the other hand, is still opaque to me.

Re: Teaching Ruby to High School Girls

#46

Earlier quoted context omitted.

By the time students get to Shakespeare and calculus, they've been reading books critically and doing math in school for at least a half dozen years. If they have six years of CS/programming education, too, then I agree that they would be well-served by a course in C. There are a whole hell of a lot of concepts in computer science that I think are both more useful and far more educational than understanding how to do…

Actually, they haven't. For the most part, they've never read anything critically (or even really read anything period), and the crank-turning and hoo-ha that goes in math class certainly isn't mathematics. So by the time they hit Calculus and Shakespeare, they're in year 11 of their time in a velvet jail and have learned to very adequately mimic the bizarre squawking the guards insist is requisite for passage to The…

I cannot agree enough with you on that. Mostly it felt to me when I was in high school that it was such a repetitive rote/forced way of learning.

Which disgusts me these days especially when I am insanely passionate about learning new things and ideas.

Re: Teaching Ruby to High School Girls

#47
post #34
post #15

Earlier quoted context omitted.

I had to read Romeo and Juliet my Freshman year in high school. My understanding is that R&J is a fairly common Freshman text. Your point about Calculus doesn't quite fit either because you don't need an extensive foundation to start programming. That's why we see a lot more 14 year olds programming than doing Calculus. You're a genius if you're doing Calculus at age 14, but I bet a lot of people who read this site s…

"You're a genius if you're doing calculus at age 14." Ha!

Calculus isn't the hard.
Post reply on HN