Live data from Hacker News

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

cacm.acm.org

221–230 of 375 posts

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

#221

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.

That's a weird sentiment to hold, that less expressive languages should be used to spark interest. If I were learning a first programming language again, I would want to learn a language that let me get going as quickly as possible. It takes a lot more to build something in C than in Python and Python can much more quickly prove to a person learning their first language that programming is worthwhile.

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

#222

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…

Are your classes available online to view?

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

#223
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 has a much cleaner syntax.

"Cleaner" is an extremely subjective concept.

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

#224
post #105

Earlier quoted context omitted.

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…

>This is the same reason I dislike Java as a teaching language: having to tell people "don't worry about what public static void main(String[] args) means just yet" when teaching "hello world" isn't a great introduction to programming. This is exactly why I have always thought that the move to Java for intro courses was a terrible idea. C/C++ were never ideal for beginners, but it was still possible to strip it down…

"What does `#include ` and `int main()` mean? Why do I have to write them?"

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

#225
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 has types, and I don't know what you mean by "without extensive research."

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

#226

Earlier quoted context omitted.

>This is the same reason I dislike Java as a teaching language: having to tell people "don't worry about what public static void main(String[] args) means just yet" when teaching "hello world" isn't a great introduction to programming. This is exactly why I have always thought that the move to Java for intro courses was a terrible idea. C/C++ were never ideal for beginners, but it was still possible to strip it down…

"What does `#include ` and `int main()` mean? Why do I have to write them?"

Those can be understood from a high level point of view in a few minutes time. I've sat through multiple classes that have done just that.

Java is so deeply OOP that there's just no way for somebody to grasp and understand the concept of e.g., a public method when they haven't even learned about variables or basic conditional logic yet. A total novice just plain isn't equipped to handle some of the concepts that are immediately thrown at them with a simple hello world.

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

#227
post #178

Earlier quoted context omitted.

Welcome to HN! Ruby is a good idea for webdev but keep in mind that Python is also dominant in other domains of computing in particular scripting and scientific computing. So in my opinion for a beginner Python is more future proof than Ruby [activate language-flamewar-prevention-daemon] and if you later add a system-language (e.g. C) and a modern general purpose language (e.g. Haskell or Scheme/LISP) to your reperto…

If you pick a Lisp, pick Racket or Clojure. All else being equal, they are the most modern and pleasant variants to work with.

or blackhat it up with tinyScheme http://philosecurity.org/2009/01/12/interview-with-an-adware...

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

#228
post #75

This methodology is suspect, and the headline is extremely deceptive. Note that Guo has conflated CS0 (meaning: CS for non-majors) with CS1 (meaning: intro to CS major). He is upfront about this fact and he does it intentionally, but comments about "first officially-sanctioned exposure in college" and such make it sound like he's unaware that most CS majors do not ever take a CS0 course; and among instructors of CS,…

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…

...it's a very important one since those are students who, without CS0, would not major in CS. These students are more likely to be female or from underrepresented minority groups.

I'm curious - would the group be less important if they were less likely to be female/non-asian minority? I get this impression from your text, though you don't actually state it explicitly. As a result I'm curious what your actual view is.

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

#229
post #220
post #178

Earlier quoted context omitted.

If you pick a Lisp, pick Racket or Clojure. All else being equal, they are the most modern and pleasant variants to work with.

Or Emacs Lisp, if you don't have a specific project in mind and/or aren't already heavily invested in a text editor. As a programming language in and of itself, it's not a greap lisp, but it's a great practical way to learn lisp while you're customizing your text editor.

The only thing going for Emacs Lisp is its killer application named Emacs.

As a compromise, you might want to start people on edwin (https://www.gnu.org/software/mit-scheme/documentation/mit-sc...) instead, if you want to teach them programming. But that's probably even less useful in practice.

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

#230
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…

Thanks! I had expected you meant static typing, but wasn't sure.
Post reply on HN