When learning a new skill, it is often advantageous to start out simply, and then incorporate greater complexity as the learner gains greater experience, expertise, and familiarity with the subject at hand.
Indeed, most computer science education has followed that line of thinking, teaching beginning computer science students to write programs that perform one instruction at a time, and then move on to the next instruction. This is known as sequential programming, and it has largely been the accepted model of computer science instruction at both the university and K–12 levels, in contrast with parallel computing, a model of programming where multiple instructions are processed simultaneously.
It is most often useful, in advanced courses, to have students write a sequential version and then a parallel version. One reason is to see the performance differences, and one reason is it helps verify that the parallel version is going to work correctly.
I am a firm believer that CS curriculum needs to change, and that the change starts first with changing how we think about computation, and what professors/instructors are comfortable teaching. I agree with what the author has said here.
George--thanks for reading and for your comment. Computer science, like many other disciplines that focus on real-world skills, must continue to evolve to keep pace with the changes in the industry.
Displaying all 2 comments