Christian Gollwitzer writes: > I agree to all the rest of your post, but this: > > Am 16.02.21 um 09:57 schrieb Tarjei Bærland: >> I am not sure I agree that a language like Scheme or Logo or Brainfuck, with >> their small number of building blocks, would be harder to learn. > > > is strange. I'm not sure, have you actually looked at Brainfuck? Maybe > there is also confusion what means "learning" a programming language. > For me, learning a language does not mean to remember the rules and > keywords, but to be able to write useful programs. Indeed, Brainfuck > with its 8 commands is easy to remember, but it comes at a very high > price: you can't do anything useful with it with reasonable effort. It > is unusable even for pure computer science stuff. It is easy to see that > BF is Turing complete, so please write a BF program to compute the > ackermann function. Should be easy, just three rules ;) I'd definitely > choose Python to do it here. > > In that sense, Scheme also appears to be the Brainfuck of functional > programming to me. It is not much more than the pure untyped lambda > calculus, and by definition this allows you to compute anything, just > like Brainfuck is a Turing machine. Actually it is impressive that you > can write actual useful code with such a minimalist language (infix > math? Pure bloat!). OTOH it feels like "assembly" compared to more > evolved functional languages like, e.g. Haskell. > > Christian
To me, it depends on what you want out of including programming in mathematics education. Sure, Brainfuck is two steps too far, but Scheme or Logo I'd wager be excellent languages to get the students into computational thinking. Haskell might be a good choice as well, I do not have enough experience with it to say. If the aim is to quickly get the students to "be creative" with programming by themselves, my feeling is that Python is too unwieldy for a beginner. In a programming course I am teaching, one of the goals is for the students to distinguish "high level" and "low level" languages. I've used Brainfuck as an example of a programming language at a low level of abstraction. That session is often the most engaging throughout the year. The students are sitting writing their own code after a few minutes. They get the feeling of designing their own computational procedure much quicker than in Python. (Yes, of course, the introductory excercises in Python are a bit more advanced than "add two numbers".) I am honestly not sure what quite what my feelings are regarding this, perhaps Python is the best of all possible options. - Tarjei Note, I am emphatically saying this in the context of a maths class. -- https://mail.python.org/mailman/listinfo/python-list