1. 5

Hadn’t seen this posted here, was curious what people thought about it. I remember reading a lot of hand wringing about MIT switching from Scheme to Python for intro CS, reminded me of this article https://www.wisdomandwonder.com/link/2110/why-mit-switched-from-scheme-to-python. Ideally I would hope that a Lisp would be a good teaching language but the author’s experience is interesting.


  2. 7

    I expect it’s because the demand for folks who can go out and code is up, and the demand for folks who actually understand the fundamentals of computation is down, and folks are just reacting to the market.

    1. 5

      Most of his reasons seem like herd-following.

      That is not meant as an insult. Sometimes it’s an effective strategy, but I’m not training kids for their job certificate at state U, so I can neither confirm nor deny its soundness.

      I’m sticking with Racket.

      1. 2

        I’m please to see that the author saw the light before inflicting Racket on more students.

        Of course, language fashions change: http://shape-of-code.coding-guidelines.com/2019/07/29/first-language-taught-to-undergraduates-in-the-1990s/

        1. 2

          My opinion is not about Racket or Python, but I see that the author became an Assistant Prof in 2018, (after graduating in 2017), and this was written immediately after that. Switching from research for a PhD to teaching students can be pretty hard, and the tools one used during PhD may not apply immediately in the new job. Further, one has to develop new syllabuses for the courses one has to teach. The students in freshman classes are also unlikely to have the similar interests as that of one’s peers during PhD.

          I would say that some of the frustrations the author experienced with the students may have come from lacking the experience on how to teach. I wish the author redesigned the curriculum based on feedback but stuck with Racket for another year before giving up on it.

          I also wonder what exactly are the author’s opinions on what to teach in CS101? Are these about computer science fundamentals or making a student an XXX certified programmer? If it is not the latter, I would say one should look for a language that fills that criteria rather than one that has arbitrary limits just because ….