Hacker News new | past | comments | ask | show | jobs | submit login

When it comes to pedagogy, the sigils and syntax of Ruby have always bothered me. The author notes the girls having trouble with dark red versus darkred, or getting the hash syntax right. I imagine a number of them wondered why "center" and "xx-large" went inside quotation marks, while saddlebrown did not. Furthermore, special string values like "center" and "xx-large" somewhat undermine the teacher's assertion that quotations demarcate "a sort of free zone for text."

Are there better languages or tools for this task? Has anyone here tried to teach programming to non-programmers using a visual language like Scratch or a simpler language like Scheme or Basic? How did it go? Shoes is an incredible platform, I just wish the underlying language had a more immediately comprehensible syntax. (PLT-Shoes, anyone?)




"Furthermore, special string values like "center" and "xx-large" somewhat undermine the teacher's assertion that quotations demarcate "a sort of free zone for text.""

I was delineating two modes of failure. The first, and most obvious, is when your program won't run at all and you get a syntax error. That's what happens when you misspell something outside the quotes.

But if you misspell something inside the quotes, you get the second mode, in which your program runs but you get incorrect behavior.

For us this isn't a huge difference; they're both bugs. But for the girls it was huge. If their program won't run, it's busted, but if it runs but isn't quite right, well, that's what Microsoft charges $$$$ for.

I had to admit they had a point.


> PLT-Shoes, anyone?

How about Bootstrap? http://www.bootstrapworld.org/materials/


> simpler language like Scheme

I really think Scheme is only simpler if you have a really atypical kind of mind.


Actual development in Scheme is a bit mind-bending, but sexps are wonderfully simple.

  (fn arg1 arg2 ... argn)
Add quoting, and you're pretty much done explaining the language's syntax.

What sort of facilities can you build on top of that foundation to create an easy, accessible learning environment like Shoes?


The average high-school girl might not be able to instantly see the elegance of the idea that functions, programs, data structures, numbers, etc. are all interchangeable and that it all can be represented recursively with lists all the way down. (High school girls who have read Hofstadter, maybe.)

They might be able to understand "later, rinse, repeat", or making a cake by making three layers, and then making the frosting, where each becomes a separate modular and reusable problem.


His point isn't that Scheme's syntax is elegant, but that the syntax is simple.

There's no need to worry about the precedence of operators, or indentation, or why you use one character to separate function parameters and variable declarations, but you use another character to separate the arguments of a "for" statement, which happens to be the same character you need to use at the end of statements (but as a terminator, not a separator), but don't forget that control structures are not separate statements even though they're on separate lines, etc.

Each of these points is an obstacle between the beginning programmer's intent and a running program. Scheme's almost total lack of syntax gets a beginning programmer started quicker.


That might seem simpler to you, but you have the kind of mind I was talking about:)

To the average person, to make a toy car, it's straightforward to take a box, put on two axles, then put on two wheels. You could do all that with just toothpicks, but it's not really simpler in practice.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: