News for hackers. Stuff that matters.
Re:Racket: Lisp for Learning by taeric on Thursday August 08, 2019 @01:28PM (#20646536)
The opening does leave a sour taste. You ack that there is little research, and then claim a pragmatic position.

Your data section is compelling. Though, it reads close to the same arguments for why kids shouldn't learn calculus in grade school.

So the questions I would have to counter this would be:

  * How stable has racket been compared to the alternatives?
Specifically, how many texts in Java and python taught methods that are actually not good for user in industry? This is ironic, as the argument is they would be using an industry language. But they aren't, really. They are likely using an ancient dialect of an industry one. Heaven help you if you picked JavaScript.

  * Is there any data about how well the students do following each language choice?
In particular, this should be easier to get. Do kids that skip the racket course generally do better than those that don't?
Re:Racket: Lisp for Learning by snazz on Thursday August 08, 2019 @01:36PM (#20646623)
What do you mean by “ancient dialect” of Java and Python? Even if they taught Java 7 and Python 2.5, it’s not a huge leap to comprehend modern language features. I’d argue that Racket is even more fast moving than either of them. I don’t think the goal is to teach “methods that are usable in industry” as much as it is to teach computer science. It’s probably easier to learn modern Python coming from old Python than it is coming from Racket anyway, but that’s completely irrelevant.

I think your second question is sound, even though it might be difficult to test. I’d be interested in the answer to it (or better, the answer to the related question of whether the students taking the Python version fare better than those taking the Racket version).

Re:Racket: Lisp for Learning by taeric on Thursday August 08, 2019 @02:35PM (#20647249)
Agreed this is less of a concern for python and Java. Still there, though. Especially with the new streams API and general lambdas. Or python three versus two.

Is it less if a change? I guess. I do know it is a source of some bugs we've seen. Not to mention just the churn of folks not using the general style of the existing code. New or old.

Re:Racket: Lisp for Learning by kd0amg on Thursday August 08, 2019 @01:35PM (#20646608)
Do kids that skip the racket course generally do better than those that don't?

This is likely to have some confounding factors, considering the usual mechanics of skipping a university course.

Re:Racket: Lisp for Learning by taeric on Thursday August 08, 2019 @02:31PM (#20647204)
Agreed, but that should favor the skippers. And we should see it in the data, still.
Re:Racket: Lisp for Learning by acbart on Thursday August 08, 2019 @04:55PM (#20648636)
> How stable has racket been compared to the alternatives?

Why does the stability of Racket matter? Isn't the real question more about how easy it is to reuse, readopt, reshare, find, etc. materials? I'll point out that the CSEngageEdu site doesn't have a Racket section. If you want me to find 100 programming problems in Python, I can do so immediately (because I published more than that, and I know others who have published even more). It's a simple fact that there's more community and infrastructure around Racket. There's been some interesting arguments that we shouldn't let that stop us - what about the future? But the reality is that right now, it's harder to teach in Racket, and I don't see any compelling evidence to prop it up further.

> Is there any data about how well the students do following each language choice?

I'm sorry, I had to laugh out loud. You've asked a really reasonable question, but it's one that the CS Ed community bickers about endlessly. I wrote a paper for SIGCSE about trends in what we talk about on the SIGCSE Mailing list. Seriously, every few years we get into the argument. Actual data seems to suggest very little. Heck, it's so hard to compare with all the confounding factors and individualized components that it's probably not really meaningful to get a simple answer. Ultimately? It probably doesn't matter. If you can teach 90% of my students with Racket the way I teach 90% of my students with Python, and you have the time and energy, then that's probably fine. But the simple reality where I'm at is that that's not the case - students who were taking Racket here before I arrived were being traumatized (and I suspect it's true at more places than the Racket folks want to acknowledge). If they don't want Racket, and I can teach a good CS1 in Python or Java or JavaScript, why should I fight that? Language choice doesn't really influence pedagogy as much as we might want to think it does, per this quote from the beautiful Meta paper that came out earlier this year:

> “Given the perennial question of which language, if any, is best suited for the teaching of introductory programming, many papers describe empirical comparisons between languages, often finding no significant difference in learning outcomes, but sometimes finding differences in student satisfaction.”

> “The choice of programming language is clearly a highly subjective one and is driven by many competing factors. It is clear that the literature will continue to host publications making the case for different programming language choices — and that no paper or series of papers will ever put an end to the debate, as no programming language will ever satisfy all of the conflicting requirements of an introductory programming course.”

Re:Racket: Lisp for Learning by taeric on Thursday August 08, 2019 @07:05PM (#20649802)
The stability cuts to your pragmatic argument. Specifically, I keep getting student hires on my team that think the Java or the Python they used for school will cut it in the office. In large, it won't. JavaScript, similarly, has more online resources, but similarly, most are not helpful for modern use.

Depending when you made this argument, stack overflow was a great resource. But many answers for the languages you pick as pragmatic are not good answers for modern use. And it seems to be getting worse.

For the other, you are taking my evidence the other way, oddly. I would expect language to matter very little. Such that, pragmatically, it makes no difference.

That is, I'm not trying to prove people do better because of racket. I'm guessing to prove they do no different because of python. Indeed, I enjoy lisp. But I doubt it is truly easier than most other options. Just so I doubt it is truly harder than most other options.

Re:Racket: Lisp for Learning by acbart on Thursday August 08, 2019 @08:28PM (#20650293)
I would certainly accept a wide range of other languages. I picked Python because I think I and many of my colleagues can teach a good CS1 in Python. I'm open to a lot of other options.

But not Haskell. Please don't say Haskell :)

Re:Racket: Lisp for Learning by taeric on Thursday August 08, 2019 @10:27PM (#20650862)
As I said, I'm partial to lisp. I just suspect that no language is defensible with any real data.

Tons of preferences. But that will be dominated by the dislike most non self motivated learners will have. That is, most students are, I suppose, extrinsically motivated.

Now, tooling would be awesome. But for some reason, the tooling we expose students to is super expensive for personal use. Or requires a lot of investment in time. I'm thinking Mathematica and emacs.

Python is trying with notebooks. But has a lot of ground to catch up on. And seems to breed bad habits in the process.