On Wed, Sep 30, 2015 at 3:50 PM, Andre Roberge <andre.roberge@gmail.com> wrote:
Hi everyone,
Google has failed me, and I'm hoping that someone on this list could help...
About a year or two ago, I read a study comparing different programming languages used for beginners. I believe there were at least four different languages that had been looked at, one of which was Python. I also believe that the (main) author including their newly created language as comparison.
As I recall, the author looked at the reading comprehension (and writing ability?) demonstrated by the students for basic programming structures. One thing that jumped at me was that one of the structures used by Python (likely the for loop) was not very understood by the students.
I'd appreciate if anyone could turn the above poor description into an actual link to the actual article I'm attempting to describe! ;-)
André
Thanks to those that contacted me directly with suggestions; I believe that I found the paper that I was looking for (although it states less explicitly what I thought about Python and loops). A link to the paper can be found on the author's website: http://web.cs.unlv.edu/stefika/Papers.php The paper is 1. Andreas Stefik and Susanna Siebert. 2013. An Empirical Investigation into Programming Language Syntax. ACM Transactions on Computing Education 13, 4, Article 19 (November 2013), 40 pages. <http://dl.acm.org/authorize?6968137> It links to an acm website and you have to wait for a few seconds for it to load from that site. The part of interest (to me) was on Table V which lists the "best" keywords and the "worst" to describe loops, as indicated by both programmers and non-programmers. The best keywords (combining result from the two groups) are thought to include: repeat, again, loop, cycle The worst keywords are thought to include: foreach, while, echo, duplicate, for .... with "for" getting the worst result of all. The paper was a follow-up from a previous paper that compared an existing language (Perl), a semi-randomly created one (Randomo), and an especially designed one (Quorum). Unsurprisingly, Quorum performed best when it came to readability .... but Perl was apparently on par with Randomo. This follow-up paper included more languages, with Python and Ruby achieving better results than Quorum .... and with Perl and Java being comparable to Randomo when it came to readability. I bet that if Python included a construct for loops like the one found in Guido van Robot, namely do n: block or possibly repeat n: block it would have performed even better. Cheers, André