3 ms·
Ga Tech used to teach Scheme as an intro to CS course. I vividly remember sitting in lecture and being struck w/ the implications of functional programming as t
by mrexroad 1y ago
Ga Tech used to teach Scheme as an intro to CS course. I vividly remember sitting in lecture and being struck w/ the implications of functional programming as the professor said you could pass functions into functions and modify them. It was as formative of a moment as my 2nd Grade teacher showing us a really complex looking (at the time) rainbow flower in LOGO (she had one of few color Mac classic), and showing us it was simply the work of drawing the path of one petal, then repeating same “work” after changing two values (starting angle and color).
- cs_throwaway 1y agoIt is possible that this doesn't work anymore. I distinctly recall the following episode when I last taught intro CS in Scheme: I revealed first-class functions. After lecture, the brightest kid in class came up to me and said something to the effect of, "What's the big deal? You can do this in Python."
- zahlman 1y agoThat should be the beginning of the formative experience for that kid rather than the end. Yes, you can. How often do you? What are you missing by not thinking about problems in that way more often? What idioms could be unlocked that way? (How many Python programmers out there are aping wholly unnecessary "design patterns" created for C++ or Java? Or rather: shouldn't a design pattern be about the design rather than the implementation? What is a design, in the pure abstract, really?)
- cs_throwaway 1y agoDon’t worry, aforementioned kid is doing just fine, machine learning PhD IIRC. There is a lot of other remarkable stuff in modern computing.
- zahlman 1y agoOh, I don't doubt that. Smart kids usually land on their feet just fine (and even when they don't, they cope and mask their problems better). But when I get the opportunity to teach things, I strive to allow smart students to rise to their own level.
- ylee 1y ago>It was as formative of a moment as my 2nd Grade teacher showing us a really complex looking (at the time) rainbow flower in LOGO (she had one of few color Mac classic), and showing us it was simply the work of drawing the path of one petal, then repeating same “work” after changing two values (starting angle and color). I also well remember the epiphany I felt while learning Logo in elementary school, at the moment I understood what recursion is. I don't think the fact that the language I have mostly written code in in recent years is Emacs Lisp is unrelated to the above moment.