Live data from Hacker News

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

cacm.acm.org

21–30 of 375 posts

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

#21
One of the classes offered in my major (biochemistry) is "Python Programming for Biology" which is generally the first exposure that most of my peers get to programming, and I tell anyone who will listen how important that class is. Especially in the sciences, Python has a plethora of scientific libraries and great resources to do just about anything that a non-career coder would need. Except in computational chemistry everyone's stuck with ancient libraries, and I recently met an anarcho-capitalist grad student doing all his research in Fortran. Cool guy.

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

#23
post #2

a language without types, without extensive research? Then, why not C/D/Pascal. i strongly believe for universities sml/ocaml/haskell or even rust are far better choices. I prefer sml.

Python is definitely more friendly than those you've mentioned. I think as introductory courses, the number one goal to achieve is to get students interested, rather than throw every possible details at them and intimidate them away.

I've seen Processing used in some intro courses for that reason, because the time-to-interesting-experimentation is fairly low (similar to the goal of Logo in the '80s, which was my own first language, although I think Logo was much better as a programming language). I don't think it's a common first language in intro-CS programs, but there are a number of curricula being built around Processing outside the context of CS majors.

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

#24
post #6
post #4

Earlier quoted context omitted.

rust? please. maybe 3 years from now, once it matures. python is good for teaching programming because it's easy to read - a feature that not a single language you mention can brag about.

It's easy to read and it just makes more sense when someone only knows English. I could show this to my 80 year old grandmother and have her understand what it does with minimal help on my part. word_list = ["hat", "dog", "cat"] for word in word_list: print(word) The same example in Java isn't extremely hard to understand, but it definitely is a decent jump in complexity from the almost plain English syntax of Python…

    mapM_ putStrLn ["hat", "dog", "cat"]
I'd say the above is pretty simple if explained after:

    putStrLn "hello world"
You don't really have to go into Monads for this to be understood/used. You can just leave it at "you use functions ending with an M if they do something like print out to the screen or get stuff from a web page".

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

#25
post #20

Earlier quoted context omitted.

Is your name Bob Harper? :) Functional still isn't that popular, in spite of a few vocal supporters. Even MIT went from scheme to Python for their sicp training.

Many of the better European universities teach FP languages in their introductory courses. Off the top of my head, Oxford and Edinburgh use Haskell and Cambridge teaches Ocaml.

FCT UNL in Portugal used to have Camllight, Prolog, logic programming and lambda calculus, when I did my degree in the mid 90's.

Other Portuguese top level universities offered similar choices.

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

#26
post #2

a language without types, without extensive research? Then, why not C/D/Pascal. i strongly believe for universities sml/ocaml/haskell or even rust are far better choices. I prefer sml.

Indeed, the discipline of computer science is really the study of computation and the ideas we want to convey from a first language are things like abstraction, recursion, proof by induction, equational reasoning, sequential/parallel time-complexity. It's much easier to address these foundational concepts in a functional setting (Scheme, SML, etc) and then once undergrads know how to formally reason and do proofs about their programs introduce other languages.

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

#28
post #21

One of the classes offered in my major (biochemistry) is "Python Programming for Biology" which is generally the first exposure that most of my peers get to programming, and I tell anyone who will listen how important that class is. Especially in the sciences, Python has a plethora of scientific libraries and great resources to do just about anything that a non-career coder would need. Except in computational chemist…

What are the ancient libraries used by computational chemists? I hope to get some insight to the field based on the answer to this question ;-)

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

#29

I think Python is the perfect first language for beginners. Yea we all know it's not fast or low level or the best language to teach about types or advanced CS topics etc. But it is extremely readable and easy to understand, it makes coding fun and once the students are engaged and know the basics it is much easier to teach more advanced concepts like typing and memory allocation.

Couple of thoughts:

1) I hope they are teaching Python 3.x instead of 2.7.x.

2) A good portion of the schools cited in the Appendix are not "computer" schools. UC Davis for example, is the last place I would attend for a CS degree (I know many students at UC Davis -- it's much better suited for other degrees).

3) My school (CSU Sacramento) does not even offer any Python courses, but there's a lot of Java and C courses (depending on your major concentration).

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

#30
While I love python, I feel like Java has more application for beginners. While I am a backend guy, Java is better right now for split front end backend sorts as you can build a client Nd server for an Android app in Java. This lets you learn front and backend without having to know two languages.

I say this knowing I hate a lot about Java, but thinking about how I would teach concepts and techniques while making a student employable and fostering the ability to experiment on their own.

Post reply on HN