Live data from Hacker News

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

cacm.acm.org

311–320 of 375 posts

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

#311

Earlier quoted context omitted.

>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?

It's not a Rails vs Django feature comparison that gives Rails the edge. Convergent evolution means they're pretty much on par with each other all the time. The difference is in the size of the ecosystem as a whole. The Ruby web dev world appears to have more (or more visible) participants. Which affects things like Stack Overflow, web-specific packages on Github, blog posts, etc. It's not an order-of-magnitude diffe…

It was particularly those web specific packages on github that I was curious about. For example, is there a package for doing CAPTCHAs for rails that's better than all of the ones for django? Better admin apps? Better apps to help you integrate with bootstrap more easily? Or create REST interfaces?

These things would make a huge difference to productivity if one platform had more (and better) of these things, but I haven't noticed that to be the case.

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

#312

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.

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.

> That's a weird sentiment to hold, that less expressive languages should be used to spark interest.

Maybe you felt you had to jump in and defend high level languages, and maybe slash the other guy's tires on the way out, but this reads as trollish. Plenty of people working in C find it plenty expressive. Is it "more" or "less" expressive to choose to express different things? I don't think so. This comes off as uninformed C bashing, sadly very common and accepted around here.

The rest of your comment, that it is good for learning or as a first language, makes more sense to me.

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

#313

Earlier quoted context omitted.

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 o…

Processing is a good candidate because it allows a novice to make something interactive and interesting in very few lines of code. The downside is that they wind up typing things about which they understand nothing...e.g void setup {···} . And it's not like void will really make sense after two weeks. On the other hand, placing the mastery in the executing artifact, not the underlying code, might be a good thing.

I think pyprocessing (https://code.google.com/p/pyprocessing/) makes an excellent middle ground here. It implements much of the Processing API in Python, without making an effort to hide the underlying principles of the language (like Processing seems to do for better and for worse).

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

#314

Earlier quoted context omitted.

Our unit is a first year unit, and runs for twelve weeks. This means that we have ten weeks to take people who may have never programmed by typing text into an editor and teach them enough CS and programming that they can implement their own hashmap in Python and reason about its big O performance in one week, start programming in MIPS assembly the next week, and implement function calls in assembly and reason about…

I've commented before in a variety of places that if I were to design a first-year curriculum that would have suited me best, it would start with python in much the way that is discussed in this thread, focusing on the concepts and algorithms and general concepts of coding. But the next course would be a hardcore introduction to C, embracing the language peculiarities instead of shunning them and trying to stick to c…

Indeed, I'm surprised by how often people make arguments that seem to assume the only options are C from the start, or no C at all.

When you're teaching systems programming, all the things that have to be done by hand in C are precisely the things the students are supposed to be learning. But for almost everything else, they're pointless details that obscure what you're actually trying to teach.

Teaching multiple languages also has the advantage of showing people how they're mostly not that different.

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

#315

Earlier quoted context omitted.

I think the intense focus on OOP is a problem, and it is symptomatic of teaching students Java as their first language. Just as if you learn BASIC first you love GOTO, if you learn Java first you love classes and think everything should be a class. What especially concerns me is that some people are interested in whether a program or language is object-oriented, and endeavor to make their programs more object-oriente…

> Just as if you learn BASIC first you love GOTO I learned BASIC first and started hating GOTO before I was even in my teens. Who likes GOTO, seriously? > The other problem is that the farther you get from being a freshman, the farther you get from understanding which concepts are necessary in an introductory curriculum. I don't know, the farther I've gotten from being a freshman, the broader my experience of other p…

You love GOTO for as long as it takes you to find your love for the (almost always) superior GOSUB.

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

#316
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?

I've taught both, and IMHO, the Ruby is less suited for the job of an introductory language because a block (i.e. an anonymous function) is a hard concept for a beginner to grasp and a core part of idiomatic Ruby. Python's syntax simply has "less magic" and is more regular. Ruby's syntax seems to be suited for either folks who don't really want to know what's going on (just give me a DSL and leave me alone) or studen…

A block is not an anonymous function. Try using `return`, `next`, etc... in an anonymous functions. Ruby has anonymous functions, they are called lambdas.

I'd say that blocks might be easier to grasp for a true beginner that hasn't been "contaminated" by the notion of anonymous functions as fundamental objects.

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

#317

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…

> All these data structures are explained first as chunks of data with external functions for the operations; then a second time as objects with methods for operations, once object orientation is introduced in week 5 or 6.

Curious. Why is object orientation introduced in a data structures and algorithms course?

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

#318
post #177
post #60

Earlier quoted context omitted.

And this exactly what everyone needs in the beginning. Simple and clear syntax where you are able to produce results in a short amount of time to keep you interested. I just remembered some people i learned with who struggled along time to get behind the concept of pointers and how to use them when they thought us c/c++ as an intro language to programming.

C is not great but bearable as an intro language, mostly because K&R is a good textbook and the language is small. C++ would be absolutely horrible. Is anyone doing this?

[deleted]

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

#319

Earlier quoted context omitted.

English isn't very good at expressing set logic, and I'm no mathematician :) You can delete this sentence -- These students are more likely to be female or from underrepresented minority groups. -- and the meaning of the previous sentence remains unchanged. The key point is that CS0 is important for attracting people who didn't have prior background in computing and thus could have a latent interest in CS that would…

My question was slightly different - would the helping the group of people taking CS0 be less important if that group was comprised entirely of asian males? I couldn't tell if the sentence was meant to support your main argument ("we should help group X because lots of non-asian minorities") or if it was merely a curiosity that was irrelevant to the main argument ("ooh look, lots of non-asian minorities, statisticall…

I don't know, do Asian males typically have difficulty engaging in CS content?

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

#320
post #45

Earlier quoted context omitted.

Who cares? If I'm a teacher I don't want to have to update material extensively every semester / year because the language is changing rapidly. Three are plenty of good, stable languages to use.

So we should teach the students old stuff because it's easier on the teacher? This isn't history, the tech world is changing daily with new languages and technologies being created. Sticking to one curriculum because it's easier on the teacher is ridiculous.

"Old stuff"? No, necessarily, but the stable stuff, yes.
Post reply on HN