Live data from Hacker News

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

cacm.acm.org

371–375 of 375 posts

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

#371
post #331

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.

But there is some weird stuff in Python syntax. Like, why do you create a dict with {} but access it with []? It always felt to me like an organic language, not one that was planned with consistency in mind (which is fine, of course).

Declaration doesn't reflect usage, it's not a helpful principle in general. You create tuples with () but access them with [], and the fact that [a, b, c] is a list has very little to do with the fact that you use [] to index into it. The {} syntax for dictionary literals is reasonably common; Ruby's looks fairly similar, and Javascript uses almost exactly the same syntax, which many people will be familiar with thanks to JSON. Are there any other popular syntices for dict literals?

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

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

That's how it's done at the University of Central Florida for the introduction to programming course. You learn Python for the first six weeks, and then learn C for the remainder. It's nice!

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

#373

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…

I had a course kind of like this. My intro CS class was taught in Java, and the following summer or semester I took a 1-credit course called something like "C (and C++) for Java Programmers".

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

#374
post #160

Earlier quoted context omitted.

Grad school rankings are a proxy for the strength of the professors, grad students (who TA/grade classes), and the overall CS research strength.

Bachelor level students do not conduct research... so it seems odd to rank schools for their Bachelor CS degree program based off of stats about their Graduate CS programs. (this thread is about beginner programming courses, ie. undergrad students). -- as a footnote, at least at my school, the graduate level professors are not the same ones teaching undergrad classes.

Grad school rankings tell you how strong the professors are. Both professors and lecturers teach courses. The strength of the department also tells you the quality of the lecturers it's able to hire.

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

#375
post #361
post #354

Earlier quoted context omitted.

If these Python classes were given to an industrial engineer or a chemistry major who just needs enough programming knowledge to crunch numbers/create scripts I would definitely get the approach and agree with it. However, if you want your Computer Science majors to be able to create the next runtime like the JVMs, .NETs etc. or be able to do some device programming they need to learn C/C++. A decade after going thro…

My first language was Basic (in 1982). The second was assembly. I've gotten by in my career (to put it mildly). What "top tier" undergraduate program is graduating students that can't lay out data structures in memory, don't know types, and so on?

My first language was Basic (in 1982). The second was assembly.

This is not terribly different than what I suggest. I'm saying in the modern world, Python fills the role of Basic and C fills the role of assembly.

The abstract idea is:

First Language: Clean and simple, to introduce the very idea of coding algorithms for a computer.

Step two: Low-level language requiring a lot of attention to detail. Should be useful for exploring low-level details about computer architecture as well as writing real programs.

Notably: Java doesn't fit very well into either category. There's a lot of overhead for pure beginners, and too many layers between the programmer and the hardware

Post reply on HN