4 ms·
Have you used Brainfuck in an educational context before? It seems rather esoteric and unfamiliar, especially for beginners. They will likely be distracted by t
by resu_nimda 9y ago
Have you used Brainfuck in an educational context before? It seems rather esoteric and unfamiliar, especially for beginners. They will likely be distracted by the inscrutable syntax and "what the fuck is Brainfuck?" (the name itself, which you feel the need to censor, seems problematic for many educational settings).
I would say that the original submission illustrates much better how simple a CPU is. And it actually exposes the user to syntax (ASM) and concepts (program counter, registers, memory usage, stack, etc) that directly transfer to basic CPU design. Your version, while technically more impressive, buries this under formulas and the particulars of parsing a language nobody uses.
FWIW, I agree with j45 that you presented this poorly. From being "disappointed" and "fixing" another user's submission, to your token parenthetical (in which you actually did not "make sure" to say it was "very impressive"). It all seems a bit condescending and arrogant for someone who would be an educator. Compare the tone and demeanor of his comments on your submission (positive, supportive) to yours on his (negative, critical).
- SonOfLilit 9y agoFirst of all, I must agree about the way I presented it, and admit that when j45 posted that first comment I checked if I could still edit my post and it turned out I couldn't. I've used Brainfuck in some educational contexts (like the talk on virtual machines that I gave in PyCon IL a few weeks ago and in a local python meetup before that), although not yet with complete beginners. It's useful in some contexts and not others. It's especially useful when some of your audience has heard of it before. It's especially useful because it lets me mention other "war stories", like this one (students love war stories): https://news.ycombinator.com/item?id=7943514 https://news.ycombinator.com/item?id=7943514 Before I teach asm, I always take 1.5 hours to teach an exercise I once developed called the "shirts exercise", which is about optimizing code for a simple and very intuitive vm that looks a lot less like real asm than Brainfuck does (for example, it has conservation of material). Real asm has so much incidental complexity and I prefer to show the beauty and motivation for learning it before we start learning about number encoding etc'. The reason to use this spreadsheet is that it's written in a format that my students would be able to follow and understand. So if I tell them "this is exactly how a computer is built", I hope to demistify a bit the idea of a computer. A good programmer is a programmer that is not afraid to dig into abstractions.
- resu_nimda 9y agoThanks for the response, now I feel like I was, in turn, overly harsh, haha. I can see where using Brainfuck would have its advantages, sometimes that unfamiliarity can help you focus on the underlying abstractions rather than the syntax.
- SonOfLilit 9y ago(Replying next to you because I can't reply deeper) I don't feel you were overharsh, you justifiably called my bullshit, which is an important thing to do once in a while. Re: Brainfuck in education, it's not about unfamiliarity, it's about time-to-grasp-core-idea, and number-of-other-ideas-you-need-to-understand-first. You really want to minimize those. Specifically in teaching asm, you want your students to reach as fast as possible the state where they completely wrap their head about all the details and edge cases of the machine. Brainfuck is a really simple machine, very easy to hold completely in your head. Even the simplest RISC processor that can do anything real would require you to first understand binary, hex, two's complement, the idea and implementation of a stack, and so many more things... For another example see this Twitter discussion between David Beazly, Aaron Meurer and myself on the subject of teaching TDD to complete beginners: https://twitter.com/dabeaz/status/879487816538914817 https://twitter.com/dabeaz/status/879487816538914817
- bobwaycott 9y agoFYI: if you click on the comment time-posted link (n [minutes/hours/days] ago), you can reply even when the reply link doesn’t show up.
- seviu 9y agoThe creator of Brainfuck, Urban Müller, made a once in a lifetime presentation about it recently. It was at a company event where we had the pleasure of watching him talk about how he developed it. If you are interested you can check it out at the livestream recording that was posted in youtube (position 2:52) https://youtu.be/gjm9irBs96U?t=8722 https://youtu.be/gjm9irBs96U?t=8722