News for hackers. Stuff that matters.
Re:Python is now the most popular introductory language at t... by freyrs3 on Monday July 07, 2014 @05:53PM (#8001730)
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 t... by phkahler on Monday July 07, 2014 @06:06PM (#8001817)
>> the ideas we want to convey from a first language are things like abstraction, recursion, proof by induction, equational reasoning, sequential/parallel time-complexity.

Really? I thought good old imperative programming was the best starting point. Concepts like assignment, branching, looping. IMHO goto is actually useful at that point and structured programming is an abstraction that takes a little while to wrap your head around. Perhaps it's due to the way I learned that I think some things are more basic (no pun intended). Either way I don't think high level abstract concepts like functional programming are even relevant in the real world of software development - abstract stuff is CS, basic stuff is for everyone else who has to take a programming course.

Re:Python is now the most popular introductory language at t... by lmm on Monday July 07, 2014 @06:35PM (#8001999)
I'd say just the opposite. Variables are hard, in a way that you don't even notice as an experienced programmer, but when we write

    x = 1
    x = 2
that's immediately very confusing for a beginner - are we saying that 1=2?

If we stick to immutable values and recursion, and functions that are, well, functions, we get something that corresponds quite closely to first-year mathematics, which makes it easy to learn at the same time.

Re:Python is now the most popular introductory language at t... by dragonwriter on Monday July 07, 2014 @07:04PM (#8002123)
Most Python material that I've seen that is an intro course makes limited use of changing variable [1] values , being written in a mostly-functional style (generally, preferring, at least initially, recursion to iteration to achieve that -- even though recursion is generally the wrong approach in production Python code.)

Using a modern imperative language doesn't prevent you from adding complexity a bit at a time, and -- especially initially -- getting the advantages of teaching things in a functional style.

[1] but not object fields, as objects are taught as containers of mutable state, usually late in the course.

Re:Python is now the most popular introductory language at t... by lmm on Tuesday July 08, 2014 @05:15AM (#8003635)
> preferring, at least initially, recursion to iteration to achieve that -- even though recursion is generally the wrong approach in production Python code

Exactly! Intro courses are usually - with good reason - taught in functional style. Which suggests that a language where that style is more natural and appropriate might be a better fit for those courses than Python.

(Though OTOH I wouldn't advocate a language where IO is anything more complex than a function call)

Re:Python is now the most popular introductory language at t... by phkahler on Wednesday July 09, 2014 @03:31PM (#8011763)
that's assignment AND reassignment. Mutable state is fundamental to how computers work no matter how hard the fans of the current fad of functional programming try to deny it.
Re:Python is now the most popular introductory language at t... by codygman on Wednesday July 09, 2014 @09:40PM (#8013154)
>> I don't think high level abstract concepts like functional programming are even relevant in the real world of software development

This is nothing but FUD and you should be ashamed of yourself.