3 ms·
I would like to see someone take one thousand twelve year olds, stratify them and randomly split them up into groups of two hundred for the summer and teach eac
by euroclydon 17y ago
I would like to see someone take one thousand twelve year olds, stratify them and randomly split them up into groups of two hundred for the summer and teach each group basic programming using five different languages: Python, Basic, Scheme, and a couple more, then at the end, perform some type of objective programming skills evaluation to determine which language really is the best for beginning learners.
- gcheong 17y agoIt would seem you would need more than one group for each language in order to determine if it was the language or the teacher that has the greatest influence on a student's ability to learn to program.
- euroclydon 17y agoI should have put teach in quotes, I'm from the unschooling camp, if you're familiar with that. I think the "teachers" if they existed at all would be minimalists.
- azanar 17y agoEven better, once they've learned one, see how they perform relative to one another at learning one or more of the other languages. See if there is a language that is further upstream than the rest, and also see if there is a language that is such a paradigm shift from the rest, and perhaps even from typical human-thought patterns, that many people from every group struggle to learn it. For those who don't, see if you can discover what is different about how they reason their way through programming. Or perhaps find the language that everyone just gets once they've been exposed to one or more other languages. See if it really is the easiest, and more sparsely featured of the bunch, or if it just does a remarkably good job of unifying the concepts from all the others. Just a couple of thoughts as I read your comment. :-)
- caffeine 17y agosuch a paradigm shift from the rest, and perhaps even from typical human-thought patterns For me, this is Haskell. Trying to write any decently large program (say, a Super Mario clone) causes brain hemorrhage. I've also met people who learned Haskell as a first programming language (common in UK unis). A lot of them wind up being crappy C++/Java/Python programmers, because they keep waving their arms and expecting magic to happen like it does in Haskell. Indeed, I learned Python and Haskell simultaneously during a seriously nerdy week (the gf. was away :) and my Python codes came out with a bloody lambda on every other line! Then I realized I was trying to re-implement laziness, but obviously Python lambdas are not lazy at all (that's right - stuff gets evaluated when you define the lambda).
- eru 17y ago> For me, this is Haskell. Trying to write any decently large program (say, a Super Mario clone) causes brain hemorrhage. Programming mostly in Haskell, I could say the same (brain hemorrhage) about imperative programming languages. There are just so damn (unnecessarily) hard to program in.
- mahmud 17y agoI tried that with just two kids using PLT Scheme and Javascript. The biggest hurdle is convincing them that software is useful outside the development environment; we wrote apps for the desktop/GUI, console, and MySpace. Kids then tried to customize everything, including system utilities, Open Office, and their own 3rd party games. It was baffling how much they expected from their programming tools; they demanded full integration between compiler and whatever else they were running on their system. They don't understand that some software is extensible (The Dr. Scheme IDE) and others are not (Minesweeper, Bejeweled.), but that was mainly my fault because I did some magic behind the scenes and put their javascript "commands" in the firefox toolbar. My nephews kept thinking of functions, operators, and special forms (conditionals and iteration) as "objects". They wanted to put "title", "value" and "callback" on the "wrong" objects. For example, they could bind a callback to a button and have it popup when it was clicked; they want to attach a similar callback to a block of code and have it fired when the block was executed (a trivial problem to fix; just call your callback from the body of the code block, but they wanted to use call-back syntax.) I am sure they would have loved Squeak, but I didn't have the time to learn it on time; my previous experience with Smalltalk has been brief, mainly with GST and theoretic uses of Self. Kids are a tougher crowd to please than programmers with some "training", because children have not yet accepted whatever limitations imposed at us by "industry". They want the Ideal.
- omouse 17y agothey demanded full integration between compiler and whatever else they were running on their system Which is what everyone should be demanding. What's the point of software that you can't program yourself?
- Tichy 17y agoAlso check out Greasemonkey - at least than you can modify everything that is on a website (still no luck with Bejeweled, probably).