Twenty Years of Dijkstra's Cruelty
WatersOfOblivion writes "Twenty years ago today, Edsger Dijkstra, the greatest computer scientist to never own a computer, hand wrote and distributed 'On the Cruelty of Really Teaching Computer Science' (PDF), discussing the then-current state of Computer Science education. Twenty years later, does what he said still hold true? I know it is not the case where I went to school, but have most schools corrected course and are now being necessarily cruel to their Computer Science students?" Bonus: Dijkstra's handwriting.
While the handwriting is a novelty (and the PDF is actually small for a PDF), I question how long that server is going to last.
Also (and yes this is nitpicking), I must contest this:
Edsger Dijkstra, the greatest computer scientist to never own a computer
I submit for consideration Alan Turing who may have designed the ACE and worked on the earliest computer (The Manchester Mark I) although never really owned it or any other computer. I think a lot of people identify him as not only a hero of World War II but also the father of all computers.
My work here is dung.
You're right. Also Stroustrup had clearly pointed (in other argument lines) that C is not the better way to learn C++ (or OO in general):
BEGIN EXCERPT from http://www.research.att.com/~bs/new_learning.pdf :
One conventional answer to the question ''Which subset of C++ should I learn first?'' is ''The C subset
of C++.'' In my considered opinion, that's not a good answer. The C-first approach leads to an early focus
on low-level details. It also obscures programming style and design issues by forces the student to face
many technical difficulties to express anything interesting.
cat > hello.pl
printf("hello world\n");
^D
perl hello.pl
hello world
University vs. College.
Comp Sci. is not a trades course; go to a local community college and take a technology or programming course if you want real-world examples.
Computer Science is about learning to understand computing, whether you use real or completely fictional interfaces.
- Michael T. Babcock (Yes, I blog)
I am TheRaven on Soylent News
Bad teachers gets you
#1. cargo cult programming
#2. people bound to a language instead of logic
#3. not knowing why using an unsigned int in a for loop is faster than a signed
#4. using linked lists when an array would do just fine(CPU prefetch unit can't prefetch well with linked lists)
#5a. Unable to make multithreaded programs that always work(omg! my program works on my single/hyper-threaded cpu..)
#5b. programmers that don't know why hyper-threaded cpus won't truely show all SMP bugs
#6. SQL queries that take 10 minutes instead of 10 miliseconds
It's not just about making something work, but knowing why it worked and what way works best