Live data from Hacker News

Python is now the most popular introductory language at top U.S. universities

cacm.acm.org

201–210 of 375 posts

Re: Python is now the most popular introductory language at top U.S. universities

#201
post #176

Earlier quoted context omitted.

What's lexical typing?

I may have made this term up myself; I am on the go and can't check it. As I use the expression "lexical typing", it means that the type of a variable can be ascertained from examining the text of the program, without needing to run it. Python is strongly typed, but dynamically typed: you can only know for sure the type of a value by checking the value at runtime. This by analogy with "lexical scoping", where you kno…

Shedskin https://code.google.com/p/shedskin/

Re: Python is now the most popular introductory language at top U.S. universities

#202

Python was heavily based on ABC, a language which targeted new programers and made syntax choices based on user testing: http://python-history.blogspot.ca/2009/02/early-language-design-and-development.html It says a lot about our understanding of our field that new languages generally do not formally test their syntaxes (and other "mental model" features) for usability.

If programming language selection for introductory university courses was based on pedagogical research on introductory computer science courses, I suspect Scheme would be nearly universal given its roots and nearly forty year track record. But that's not how languages have typically been selected for 15 years or so. The direct vocational skills argument has held much more sway.

Care to elaborate? I wasn't aware scheme was known for its usability (easy to learn).

Re: Python is now the most popular introductory language at top U.S. universities

#203

Earlier quoted context omitted.

Your first sentence made me a bit sad but the rest of your post changed my mind. All good points, and it looks like the move to Python was the right thing to do. It's important to remember we're talking about an introduction, here. Creating the spark of interest in students is the most important point in this class. There's always time after this to move them toward more expressive languages.

What is wrong with Monash? ;) Python can be circuit bent into any semantic you desire, so I think it is a great introductory language. I haven't taught an introductory Python course in years, but with Ipython Notebook I think it would be a blast.

Zero-indexed first sentence, I'm guessing.

Re: Python is now the most popular introductory language at top U.S. universities

#204

Earlier quoted context omitted.

Thanks for responding! Do you still have in your notes the breakdown for each course whether it's CS0 or CS1? That would be good to put into the table in some form so the rest of us can make our own judgements about what that might mean. I don't disagree it's important, for many of the reasons you mention; I only really disagree with its characterisation as a majority intro language. Indeed, I expect that when they'r…

great suggestions. sadly i am limited by time and bandwidth. this was a weekend hack that i did by myself, so it's unclear how much more rigorous i can make the analysis. i'll try to incorporate some lightweight edits for clarification, though.

Given your work on modifying the Python VM, I'd love to hear your opinions on how it could be augmented to support CS0 students.

How prevalent is the REPL in CS education?

Does perceptualization play a role?

Re: Python is now the most popular introductory language at top U.S. universities

#205
post #39

Yes, Python is an excellent language for beginners, but so is Ruby in my opinion. Not trolling: why nobody is using Ruby in introductory courses?

Python is syntactically more similar to C, C++, Java, and JavaScript, and that's what most people know and use. Ruby is "weird".

Re: Python is now the most popular introductory language at top U.S. universities

#206

Earlier quoted context omitted.

great suggestions. sadly i am limited by time and bandwidth. this was a weekend hack that i did by myself, so it's unclear how much more rigorous i can make the analysis. i'll try to incorporate some lightweight edits for clarification, though.

Given your work on modifying the Python VM, I'd love to hear your opinions on how it could be augmented to support CS0 students. How prevalent is the REPL in CS education? Does perceptualization play a role?

wow great questions! right now www.pythontutor.com is my ongoing effort to support Python CS0/CS1. REPLs are important for live programming via trial-and-error. see: http://pgbovine.net/teaching-librarians-programming.htm

ideally you want to mix the best of both worlds. here's a prototype demo: https://www.youtube.com/watch?v=Q3oarDuZPL0

Re: Python is now the most popular introductory language at top U.S. universities

#207
post #122

Earlier quoted context omitted.

For 90+% of the problems out there, a business programmer doesn't need to know anything about memory#. Short of a few rules, I don't see why they can't ever go without learning about memory space, allocation, reference types, etc. They will make mistakes, sure. But they will get the work done, and that's pretty much what most businesses need. Eventually, as problems creep in, the messes created by lack of knowledge g…

I can see this rationale as an argument if it was an associate's or 1 yr degree, but for four years of study I expect real depth about what's happening all the way down memory etc

For 4 years study you dont need to learn C as your first language. You also get the benefit of being able to focus on the low level stuff when you finally go over C, instead of having the language do double duty of teaching both low and high level stuff at the same time.

Re: Python is now the most popular introductory language at top U.S. universities

#208

Author here: Please email course correction requests to philip@pgbovine.net ... I'll probably miss a few important corrections amidst the hundreds of comments. As a clarification, a CS0 or CS1 course usually has no CS prerequisites , so if a course you're trying to mention has other CS prereqs, then it's probably not CS0 or CS1. ha, feel free to DOWNVOTE so that this appears at the very bottom, so that it's visible :…

wow y'all are really bad at downvoting this comment; it's still hidden in the middle :) why does it have 4 points?!?

Re: Python is now the most popular introductory language at top U.S. universities

#209
post #159

Earlier quoted context omitted.

Yeah there is a downside to 3.x. The transition has failed from what we can see. It was released in 2008. It's 2014 and it's still the used by the (vast) minority of people in the Python community. Programming isn't one of those fields, like most things in life- where 'the latest version' is always the right choice. The best way to explain it... it's like saying everyone should adopt Windows 8, that there's no downsi…

Well, from the python.org website: > Short version: Python 2.x is legacy, Python 3.x is the present and future of the language[1] This should be enough of a reason for classes to move to 3.x. Regarding your "in the trenches comment", remember, most of the folk on HN are involved in software engineering in some capacity, myself included. No doubt it has taken a long time to move into 3.x, and it may take a while still…

One good reason why you'd want to use 2 for learning is that any job would be using 2. 95%+ percentile chance. It's not worth debating you on this if you don't work in Python for your day job. There's just so many misconceptions in what you've said.

From the way it sounds, you don't, and Python3 is hardly a dialect. The challenges of Python3 aren't for me or you, it's for library maintainers. And anyone with years of software built on 2.x (which is nearly all of us). I assure you moving from 2 to 3 as an end user is not a challenge. I have used Python3, since 3.0. It's no different 'dialect'- but when I last did (3.4), I found major performance regressions in basic functionality (JSON processing) and I think most of us have given up on Python3 (there are plenty of reasons). I'll revisit the idea of moving to it in another 5 years.

These issues are going unchecked in Python3 because there are no users. This is a major problem and plowing forward with Py3's development is a huge mistake. It remains to be seen what the consequences of this are.

It's simply propaganda to insist everyone is taught on Python3 as if it's the future of the language. You know it is a logical fallacy to appeal to authority. Python.org is taking a political stance, not one based on the real world. Python 2.x is the present. If you don't think so and refer to Python.org you're not programming in Python for a living. There's a major disconnect between the majority of the users of Python, and the core dev team that run that website. No one knows what the future of Python is yet, TBH Python.org should not be presenting 3 that way. In reality it's the experimental branch.

If you are using Python, then use 3 if you wish. Trust me, no one cares. You won't have support from most major distros and no online hosts. Google App Engine, Azure, etc are all on 2.x. You can't be doing too much though to not be running into missing libraries and roadblocks.

The silent majority will move to 3 if and when it ever makes sense. More likely we'll either go with the a fork, or simply move onto another language for the type of work that we do. Porting/testing is very expensive, why bother with that for no gains? We'll simply move to something else and the majority of the userbase will be gone.

There's only gains by using 2 but think what you will. Everyone is free to use what you want, including schools. I'm just explaining why it's not as simple and straight forward as you put it.

If it were that easy, there wouldn't be any controversy.

Re: Python is now the most popular introductory language at top U.S. universities

#210

Earlier quoted context omitted.

If programming language selection for introductory university courses was based on pedagogical research on introductory computer science courses, I suspect Scheme would be nearly universal given its roots and nearly forty year track record. But that's not how languages have typically been selected for 15 years or so. The direct vocational skills argument has held much more sway.

Care to elaborate? I wasn't aware scheme was known for its usability (easy to learn).

After the first lecture, I am pretty sure Scheme syntax is not an impediment. For someone with _no_ CS background, learning Scheme is the right, in every connotation, the way to go.
Post reply on HN