Live data from Hacker News

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

cacm.acm.org

191–200 of 375 posts

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

#191

Earlier quoted context omitted.

Author here. Thanks for your comments blahedo. I'm a bit short on time right now, but I will convert some parts of this response into more coherent form and edit my article accordingly to clarify. I'll address each of your paragraphs in turn: 1.) Re: CS0 vs. CS1. Like you mentioned, I was very upfront about the methodology for this analysis. And I am very aware that most CS majors do not ever take a CS0 course. But p…

ML (OCaml and SML) seems to get short shrift in your analysis. CS51 at Harvard is in OCaml. Brown's cs017 is OCaml, Scheme, Scala and Java. Penn's CS120 is OCaml (I think. It definitely used to be, but I can't find the course online anymore. You can reach out to Benjamin Pierce to ask, though.) And CMU has an SML-based FP course as part of their intro sequence None of this is to deny the fact that Python is highly po…

[deleted]

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

#192
post #7

Earlier quoted context omitted.

Unless your university is really weird, I can guarantee you will learn many more languages than just the intro language. When I got my computer engineering degree in the early 2000's I was exposed to C, C++, Java, Scheme & Lisp, SPARC & 68k assembly, and even a bit of Python. Learning Python as the intro language instead of C++ would have been much nicer for folks who were completely green to programming.

I would hope that no one in a freshman CS program is "completely green to programming".

The neckbeard is strong with this one.

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

#193
Yale teaches CPSC 112 (CS non majors) in Java. Or at least, they used to. I think I heard this term they switched to Python. I would say that was a wholly good move. The only downside is that CS majors who take 112, and might prefer to learn Java in a class but Python on their own, do not get exposed to Java in any part of the curriculum.

The "introduction to CS" course, CPSC 201, is taught in MIT Scheme. It's interesting because for CS majors, the first class is functional programming. A sizeable minority (including myself) skip that class though, since it's only offered in the fall. I chose to skip it because I started the major late, already had programming experience, and Scheme isn't actually used outside of education. From what I gather, I missed out on some valuable lessons in simulating circuits and binary logic. My knowledge there is still weak.

After that course, the rest of the core curriculum is taught in C. Scripting languages like Python/Perl/Ruby, you are encouraged to learn on your own, and will often help in assignments. But they aren't explicitly taught as the focus of any course.

I absolutely hated some of my programming assignments in C, but I think learning systems programming in such a low level language is timelessly valuable and makes picking up new, higher level languages significantly easier, since you already know the tradeoffs of the underlying data structures and algorithms. For example, if I had not been exposed to pointers, I would not understand the difference in Python between "is" and "==" when comparing strings. In general I think learning c is a valuable albeit masochistic move.

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

#194

Earlier quoted context omitted.

Why do you think the flavor of Python taught matters? I would say that compared to learning how to write and understand a small program, the difference between Python 2.x and Python 3.x is trivial. (I'm talking about learning the language; for a large Python 2.x code base, the transition to 3.x is likely to have unclear payoff.)

I think it's important teach what's relevant in the current day, every likes to parrot the "Python 3 has no support" line but it's simply not true[1]. The developers have said multiple times there will be no 2.8 and the 2.7 line will only receive security fixes. Python 3 is the future of Python and not teaching it to students would be a disservice to them. [1]: https://python3wos.appspot.com/

Every so often I check to see which of my 3rd party libraries has acquired python 3 support. It's edging up over the years, but it's still between 60-80% (depending upon the project). Not all of them small, either - some are ones you really wouldn't relish rewriting.

It has some neat features, but nowhere near enough for me to be prepared to dump 1/3-1/5 of the python ecosystem.

I'm sure python 3 is coming eventually, but I think it's still a looooong way off.

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

#195

I work at Monash University in Melbourne, Australia. Last year we moved our foundational course in data structures and algorithms from Java to Python, with great success. This is a course that used to be taught in C, then moved to Java. I tutored it as a Java course, and was in charge of adapting the tutorial (classroom exercises) and laboratory (programming assignments) materials when we started using Python to teac…

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.

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

#196
post #96

Hey there! I've just started learning to code for building web apps (I know about Fortran 90, it doesn't fit very well on the browser haha), and it took me a while to decide. I looked up in an endless number of hacker websites, but at the end I'm sorry for betraying Python lovers... I'm learning ruby on rails..! I've just started learning, please tell me If it's best to learn python (I'm not looking for an easy langu…

My take on Ruby vs Python is this: While Python has a healthy web dev ecosystem, Ruby's feels much larger to me. That's almost certainly because Rails is so wildly popular. And Rails is an excellent, mature framework. So for web dev, I would consider Ruby the winner. Python is the clear winner for scientific computing. That's not really due to anything inherent in the language. It's an ecosystem thing. If you were us…

>While Python has a healthy web dev ecosystem, Ruby's feels much larger to me.

What is there in, say, rails that would not be available for django?

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

#197

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.

Does anybody here know of any resources where I might read up on best practices in CS pedagogy? I'm very interested in helping to reform my university's intro-level CS program.

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

#198
So Python is the new BASIC. Being widely introduced in the universities, could be the mark of ageing and obsoleteness. Since the university is normally teaching something very irrelevant to the real life, shouldn't the student look around for that emerging tech that will bring him a job in 5 years from now?

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

#199
post #105

Honestly, I'm not surprised, but I believe this is bad news. Learning C programming (first) was probably the most advantageous thing that has ever happened in my life of programming. When you understand C you understand how the computer functions, and in turn can write better software. It prepared me for virtually all programming and has enabled me to understand concepts correctly, the first time, and has made my lif…

I think C makes a great second language. Use Python to teach if statements, variables, control structures etc - then later use C to teach low-level algorithms, pointers and how computers actually work. I don't think there's any harm in learning Python first. I think they may be harm in learning C first - it's much more likely to frustrate people and potentially even put them off programming. This is the same reason I…

You should really know how the soil and weather works before starting to farm. Otherwise you will end as a seasonal worker.

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

#200

I work at Monash University in Melbourne, Australia. Last year we moved our foundational course in data structures and algorithms from Java to Python, with great success. This is a course that used to be taught in C, then moved to Java. I tutored it as a Java course, and was in charge of adapting the tutorial (classroom exercises) and laboratory (programming assignments) materials when we started using Python to teac…

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.

Post reply on HN