I'm not sure how you can talk about concurrency without talking about locks
that is because you have slept through the entire revolution of share-nothing concurrency
that is because you have slept through the entire revolution of share-nothing concurrency
I, just this afternoon, heard Guy Blelloch give a talk about Parallel thinking today, and he seems to support the idea of teaching parallel programming throughout the curriculum almost instead of sequential programming--making sequential thinking the oddity. I think this makes sense, but it obviously has some flaws...
I don't know that I agree with that at all. My first college CS class taught Java, definitely supports concurrency. It's not Erlang-like concurrency, but concurrency nonetheless.
Theres a trend to start teaching Python as a first language, that supports it as well.