New Python implementation

Tarjei Bærland tarjei at purelymail.com
Tue Feb 16 16:22:23 EST 2021


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.


More information about the Python-list mailing list