In office hours, talked to one student who was lost on tail recursion, not getting it. Drilled into an example on godbolt.org and showed how work was getting shifted to before the tail call, and he really got it after 20 minutes, like mind exploding. That kind of thing just shows me that the rest of the students almost certainly are not getting it.
@krismicinski this reminds of a question I've had for some time: here, you show a student (I presume) a low-level representation of the program and walk them through it and it clicks. But decades ago that was simply the norm; as we get further away from hardware (or so it seems to me...) does student intuition about how their programs actually execute on real machines get similarly more abstract?
@cross @krismicinski it is absolutely getting harder every year to get them to understand the lower levels of the software stack. realistically I think we sort of need to get over it, or at least choose very carefully which low-level stuff we need them to know
@cross @krismicinski @regehr I think there’s something absolutely joyful about platforms that are powerful enough that you can build legit software for them but simple enough that a single human can plausibly understand every aspect of hardware’s operation if they are sufficiently interested.
*looks pointedly at TI-84+*
@krismicinski @cross @regehr getting to read assembly to answer questions about your compiler is nice, but getting to write assembly to answer questions about your ASIC is nicer