Fossils like Dewar are an aging breed who cannot grasp the future of computer programming. Many years ago, students of mathematics were prohibited from using calculators when performing their work. The teachers professed that without the ability to compute algebra solely with pencil and paper, the students were learning nothing - cheating, even. Why did the teachers have this opinion? Because that's how they were taught, and they blindly assumed that was the way all students of mathematics should be taught. They were wrong. The same concept applies here - CS teachers believe students should learn about call stacks and other low level CS jargon because that's what they were required to learn. Granted, there are certain concepts inherent to the trade, and these should be learned. Much like in mathematics the need to learn multiplication tables, or how to perform long division. The key here is that the programming landscape is changing. Programming languages will continue to be abstracted further and further, until we reach a point where the spoken/written word will be the program. In the future we will be able to tell a computer "this is what I'd like the software to do" and the computer itself will write the code for you. This trend is already on its way. In that paradigm, a student of CS will not need to know the low level details because it will no longer be a requirement of the position. Much like the calculator replaced the abacus. Times change, and educational methods need to evolve and adapt. Anyone who believes a single method of instruction should stand for the ages is a fool and is doing our students a great dis-service.
Fossils like Dewar are an aging breed who cannot grasp the future of computer programming. Many years ago, students of mathematics were prohibited from using calculators when performing their work. The teachers professed that without the ability to compute algebra solely with pencil and paper, the students were learning nothing - cheating, even. Why did the teachers have this opinion? Because that's how they were taught, and they blindly assumed that was the way all students of mathematics should be taught. They were wrong. The same concept applies here - CS teachers believe students should learn about call stacks and other low level CS jargon because that's what they were required to learn. Granted, there are certain concepts inherent to the trade, and these should be learned. Much like in mathematics the need to learn multiplication tables, or how to perform long division. The key here is that the programming landscape is changing. Programming languages will continue to be abstracted further and further, until we reach a point where the spoken/written word will be the program. In the future we will be able to tell a computer "this is what I'd like the software to do" and the computer itself will write the code for you. This trend is already on its way. In that paradigm, a student of CS will not need to know the low level details because it will no longer be a requirement of the position. Much like the calculator replaced the abacus. Times change, and educational methods need to evolve and adapt. Anyone who believes a single method of instruction should stand for the ages is a fool and is doing our students a great dis-service.