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…
Python is now the most popular introductory language at top U.S. universities
201–210 of 375 posts
Re: Python is now the most popular introductory language at top U.S. universities
#202Python 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.
Re: Python is now the most popular introductory language at top U.S. universities
#203Earlier 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.
Re: Python is now the most popular introductory language at top U.S. universities
#204Earlier 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.
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
#205Yes, Python is an excellent language for beginners, but so is Ruby in my opinion. Not trolling: why nobody is using Ruby in introductory courses?
Re: Python is now the most popular introductory language at top U.S. universities
#206Earlier 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?
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
#207Earlier 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
Re: Python is now the most popular introductory language at top U.S. universities
#208Author 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 :…
Re: Python is now the most popular introductory language at top U.S. universities
#209Earlier 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…
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
#210Earlier 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).