2 ms·
Racket is an interesting system for pedagogy. Up until now, it's been focused on undergrads, but the principles should be similar. If you aren't familiar, Racke
by CamTin 8y ago
Racket is an interesting system for pedagogy. Up until now, it's been focused on undergrads, but the principles should be similar. If you aren't familiar, Racket lets you create new languages that (among many other things) can hide the complexity of the "full" Racket language to just a few primitives for purposes of elaborating some point or insight. There is a whole series of these languages designed specifically around /How To Design Programs/: https://docs.racket-lang.org/drracket/htdp-langs.html https://docs.racket-lang.org/drracket/htdp-langs.html
The HTDP languages all look like Scheme, as most Racket languages do, but you can actually swap or modify the reader as well, to produce Blub-y languages (for example, someone has implemented ECMAscript: https://docs.racket-lang.org/ecmascript/index.html https://docs.racket-lang.org/ecmascript/index.html) that interoperate with other languages in the Racket system (including Racket itself).
At the same time, Racket is "real" in the sense that you can build production systems in it (not in the HTDP languages themselves, but it all interoperates), and it has a pretty good batteries-included core lib and contrib packages. For example, you could integrate the students' code (in a simplified pedagogical language) with the webserver (from the "real" language), so that they can see their code doing stuff out on the web where others can look at it, or they can show their parents, rather than trapped in some educational IDE that's only installed at school.
- alew1 8y agoI taught high school freshmen using HtDP for three years and loved it. Definitely works for high schoolers!
- deleted 8y ago[deleted]