[Python-ideas] Framework for Python for CS101

Andrew Barnert abarnert at yahoo.com
Mon May 25 23:13:53 CEST 2015


On Monday, May 25, 2015 10:50 AM, Rustom Mody <rustompmody at gmail.com> wrote:

>About programming pedagogy:
>
>| Rob Hagan at Monash had shown that you could teach students more COBOL with one semester of Scheme and one semester of COBOL than you

>| could with three semesters of COBOL

OK, fine. But what can you take away from that?

It may just be that COBOL is hard to teach. Is the same thing true of Python? If not, this is irrelevant.

Or it may be that teaching two very different languages is a useful thing to do. In that case, this is relevant, but it doesn't seem likely that two similar dialects of the same language would be sufficient to get the same benefit. Maybe with a language that can be radically reconfigured like Oz (which you can switch from having Python-style variables to C-style variables to Prolog-style variables) it would work, but even that's little more than a guess.

>from https://groups.google.com/d/msg/erlang-programming/5X1irAmLMD8/qCQJ11Y5jEAJ
>
>No this is not about 'pro-scheme' but about 'pro-learning-curve'
>I dont believe we should be teaching python (or C++ or Java or Haskell or...) but programming.
>[I started my last programming paradigms with python course with the koan:
>You cannot do programming without syntax
>Syntax is irrelevant to programming
>So what is relevant?
>]


I don't think syntax _is_ irrelevant to programming. I think that's a large part of the reason for using Python: it makes the flow of the program visually graspable, it has constructs that read like English, it avoids many ambiguities or near-ambiguities that you'd otherwise have to stop and think through, it has strongly-reinforced idioms for complex patterns that people can recognize at a glance, etc. And, in a very different way, syntax (at a slightly higher level than the actual s-expression syntax) is also a large part of the reason for using Lisp, in a very different way: half of writing an application in Lisp is in essence programming the language constructs to make your application easier to write.

Besides, if syntax were irrelevant, why would you care about the same keyword for defining regular functions and generator functions, the same expressions for calling functions and procedures, etc.? That's just syntax.


More information about the Python-ideas mailing list