| You wrote on ihateracket.com: > Which language should be used in a CS1? There isn’t very much research to suggest conclusively what makes the biggest difference in a classroom, and it doesn’t seem like the language debate will ever end. But now you're saying there's a massive amount of research for Java and Python — so I think we must be talking about two different things. > I'm not clear that that's more than a theory. It is less than a theory — it's my opinion based on my experience going through the edX How to Code series (closely based on HtDP and the design recipes). For example, sum types are taught as "Enumerations" [0], and the design recipe for enumerations looks suspiciously like "pattern matching in a language without pattern matching", as if to prime the student for a language that supports this more conveniently. Yet, if the student learns Java immediately after HtDP, they will have no use for this knowledge (and probably forget it), as it seems you need some convoluted boilerplate like the visitor pattern to emulate a sum type [1]. > Even if it's true, is that necessarily the major goal in CS1? Perhaps, but you'll have to convince a few of my colleagues of that. Given that the follow-up material to HtDP was called "How to Design Classes" and used Java [2], no I don't think this is a goal of (PbD's) CS1. I'm saying I think it should be to make the curriculum cohesive, and that HtDP is a wasted investment of the student's patience without related follow-up material. I really loved HtDP so I wish I could find such material. [0]: https://htdp.org/2019-02-24/part_one.html#%28part._sec~3aenu... [1]: https://stackoverflow.com/questions/48143268/java-tagged-uni... [2]: https://programbydesign.org/materials (You can see it mentioned but it doesn't seem to exist anymore when you follow the links) |