On the cruelty of really teaching computer science

In summary, Dijkstra's main point is that we should radically depart from our incremental approaches to teaching computing, and use an orthogonal approach, based on intuition rather than mathematics. Many people have learned programming just fine with an incremental approach, and I do not think the subject is as radical a novelty as he believes. His example of Quantum Mechanics fell flat, and I don't think the subject is as shocking as he believes.
  • #1
Fantini
Gold Member
MHB
268
0
This is an article I just found out about. It deals with computer science on about half of it, but the most interesting discussions concern educational values. Here is the article:

https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1036.html

I would like to know others' thoughts on this. I found it very thought-provoking. The notion that most people are averse to radical novelties struck a chord with me, especially his example about university level books. This aligned so well with my current notions and fights in the educational system that I find it very hard not to agree with everything he says.
 
Computer science news on Phys.org
  • #2
Thank you for linking to the speech transcript! It was definitely thought-provoking. I can somewhat see where he's coming from, but, to play the devil's advocate, I'm not sure I agree with his conclusions.

His main point appears to be that, since computing represents a radical novelty, and since radical novelties are best taught with methods orthogonal to incremental approaches, that therefore we must radically depart from our existing incremental approaches and use an orthogonal approach.

The argument is, of course, valid (supplying, technically, the missing premise that we should do things in the best way). However, I do not grant the truth of the premises. That is, I think the argument is unsound.

These days, with the ubiquity of computers, I do not regard the introduction of programming as a radical novelty any longer. Back in 1988 when Dijkstra gave this speech, that was the case. When I was 10 years old, we had a computer, but it was nowhere near as common as it is now. Children grow up these days with a much stronger intuition of computing than they used.

The second premise, that radical novelties are best taught with orthogonal (non-incremental) approaches, is also suspect. The book The Seven Laws of Teaching, by John Milton Gregory, addresses this exactly, particularly the Law of the Lesson. You simply have to explain the unknown in terms of the known, or you will lose your students altogether. To take Dijkstra's premise to its logical conclusion, you might as well teach in another language. History itself defeats this premise. Many people have learned programming just fine with an incremental approach (about the only one in existence, so far as I know).

His example of Quantum Mechanics fell rather flat on me, I'm afraid. It's not that I fully understand it, but the so-called "novelty" of the subject just didn't seem that novel to me. It did not rock my worldview overmuch to discover that measuring a system changes the system. A simple example of bowling balls and ping-pong balls shows why measurement must change a system. Nor did I suddenly cease to exist the moment I discovered that electrons "take" all possible paths to get from A to B. Moreover, the semester before I took Quantum Mechanics, I took Linear Algebra. Oh, was that a good move (though I didn't know it at the time)! With Linear Algebra under my belt (and, granted, Differential Equations as well), I had all the mathematical machinery I needed to tear through the calculations. I would certainly call that an incremental approach. Indeed, it seems to me that the "shocking" nature of quantum mechanics isn't nearly as shocking to a postmodern world as it is to a modern world.

So I cannot go where Dijkstra goes, I'm afraid. I don't buy his superficial dismissal of the Medieval period, either. This is just one of my pet peeves. Learning did not, contrary to his opinion, come to a full stop at end of the Western Roman Empire, and wake up again only at the Dissolution of the Monasteries, as Dorothy Sayers would say. An age that produced the horse collar and the movable type printing press, two inventions that transformed the world even more profoundly than computers, has a good amount of learning going on, not to mention the founding of the Universities of Bologna, Oxford, and Cambridge. The Medieval period, indeed, was a veritable hotbed of university-founding. Dijkstra reveals his prejudices when he dismisses the Medieval period; you can be nearly certain, when an academic dismisses the Medieval period, that he is violently anti-Christian, and has prejudiced himself against that belief. The irony is that I'm not certain I would call the Medieval period Christian. But I digress.

We are all, I'm sure, grateful to Dr. Dijkstra, for inventing the fantastic algorithm that bears his name, but this is no guarantee that anything else he says is sound.
 
  • #3
I enjoyed the article. Like Ackbach, I also take issue with parts of it, but of a somewhat different nature.

I believe it is human nature to relate the unknown in terms of the known. Our facility of analogy and inductive reasoning has proven evolutionarily successful, even though we are all aware of the errors in reasoning it can produce.

One thing I can agree with is that new fields often call for new methods of assimilation. For example, the way algebra is taught nowadays (stressing the importance of homomorphisms-for example linear transformations and their computational counter-parts, matrices, are the key objects to understand for vector spaces) is much more efficient than the polynomial approach that led Evariste Galois to his remarkable discoveries.

Just so, mathematics is often taught "historically" in terms of the linear time-development of its concepts. This is not always the best way, especially since the concepts of set theory (and its computational counter-part, boolean logic), a rather recent development, are key to mastering any true sense of algorithms. In computer science, there is a lot to learn, and wading through centuries of "preliminaries" to get to the "fundamentals" seems backwards.

New fields are often best served by new pedagogical methods, but society in general is resistant to such change: "this is the way we've always done it", is the oft-heard reply (and its vernacular counter-part: "if it ain't broke, don't fix it"). We imagine our culture as being a towering edifice of knowledge accretion-such thinking leads us to enshrine wrong turns and false starts as valuable information.

However, even though "pure abstract methods" lead very cleanly to fundamental results, some "low-level experience" is part and parcel of our brains' natural process of *internalization*: example, example, example (light goes on!)...generalization! The optimal result, then, is typically not gained by using the minimal teaching path-but rather a tailored mix of old and new methods-while somewhat inefficient, this process (which necessarily includes some redundancy) gains in effectiveness what it loses in efficiency. It's much like learning the mechanics of riding a bike with training wheels first, to gain confidence.

In education, we need TWO types of teachers-revolutionaries AND traditionalists to INTERPRET the revolutionaries to a wider audience. Too much of a preponderance of one or the other leads to either mass confusion or stagnation. Radical novelties are all very well and good, but they die a premature death if they remain so.

As far as the "Dark Ages" go, I find the very concept of this characterization inherently racist-the Medieval period in Europe was an Arabian renaissance, our current numeral system is a powerful reminder of this fact. With the dissolution and waning of the Roman Empire, Europe lost critical infrastructure-there's little time for learning when survival occupies 90% of your time and effort. The discontinuance of the wide-spread use of urban sewage systems was no small factor in the propagation of the Plague; if you want to stay healthy, clean water is a sine qua non, something it took Europe several centuries to remember (childbirth mortality decreased dramatically once hospitals simply started washing the beds).

Eventually, traveling merchants re-established the routes of communication through which ideas could flow. Isolated pockets of culture were again able to disseminate enough ideas that progress again reached a critical mass. It is not, in many ways, unlike the revolution engendered by radio, and then later the internet, which has led to an astounding growth of new ideas (formerly feudal countries such as China and Japan are now global forces to be reckoned with-and the engineering advances in countries like India or Indonesia are quite remarkable). One might as well call the Industrial Age (of say the 18th and 19th centuries) "backwards and primitive", especially as regards some of its (unfortunately enduring) social concepts, like colonialism.

In summation-as I see it, the idea that we are always moving "upwards and onward" is just plain wrong. Our race makes (sometimes centuries-long in their consequences) errors in judgement and thinking "we know what we know". But constant paradigm-shifting is untenable, we are, after all, organic organisms, and true understanding must happen organically - we must be proficient in using our new ideas, novelty alone does not qualify as "good". Part of that process is gradual assimilation.
 
  • #4
Thank you for your response, Ackbach. I wanted to read that book since I've seen it in your signature, but I didn't buy it. Glad to know it is online. :)

Let me discuss Dijkstra's arguments. Indeed, programming is no longer a radical novelty, although I agree that some people still believe in "the subculture of the compulsive programmer, whose ethics prescribe that one silly idea and a month of frantic coding should suffice to make him a life-long millionaire."

The second point I nor agree completely nor disagree. Teaching the unknown using only the known can be very problematic, specially using the methods that most books or approaches take today. I find infuriating the education trend that everything has to build from something you knew beforehand. Ideas naturally evolved that way, but they were refined and got changed through the process, so much that they are new entities at the end of it and thus require different mental work.

The quantum mechanics example is outdated and I agree that it is not novel anymore. I entirely disregarded the Medieval accusations because they are unfounded and that's not what interested me in the article.

This is the real catch for me:

"The same silly tradition is reflected at university level in different introductory calculus courses for the future physicist, architect, or business major, each adorned with examples from the respective fields. The educational dogma seems to be that everything is fine as long as the student does not notice that he is learning something really new." (My emphasis.)

This is my biggest concern lately. The incremental approach very often relies too much on the rhetoric that nobody is learning something really new, you had it inside of you all along. This is false and degrading. Why am I having so much trouble if I'm not learning something new? Also, trying to conjure silly and absurd contextualized examples does more harm than good, and cognitively does not help learning as we hope it does.

This leads me to Deveno's answer. Thank you for answering as well! I'm glad to have your take on this. :)

Low-level experience is the key to assimilation of any topics. Familiarization comes from dealing with many examples, ranging from trivial to complicated and long, adjusting conditions, changing circumstances, taking as conclusions what were hypothesis and so on. Unfortunately we waste too much time on theorems and leave the concrete/actual cases as exercises, leaving the learner to deal with the hardest part on himself. This is one of the reasons I like Polya's books so much: he explains and attempts to teach mathematics "in statu nascendi".

I believe what Dijkstra wanted was that to assimilate radical novelties we admitted that trying to cover it up in old clothes will not work. We need to practice more examples and invest in creating low-level experiences pertaining to the novelty, exploring its limits.
 

FAQ: On the cruelty of really teaching computer science

What is the main argument of "On the Cruelty of Really Teaching Computer Science"?

The main argument of this essay is that the traditional methods of teaching computer science are outdated and cruel, and that they do not effectively prepare students for the real world of technology. The author argues that a more holistic and inclusive approach is needed in order to truly teach computer science.

How does the author define "cruelty" in the context of teaching computer science?

The author defines cruelty as the act of teaching computer science in a way that is exclusive, competitive, and focused solely on technical skills. This approach neglects the importance of creativity, collaboration, and empathy in the field.

What does the author propose as an alternative to traditional computer science education?

The author proposes a more interdisciplinary approach that incorporates elements of the humanities and social sciences into computer science education. This would involve teaching students about the ethical implications of technology and encouraging them to think critically about the impact of their work on society.

How does the author believe this alternative approach will benefit students?

The author believes that this alternative approach will benefit students by preparing them for the real world of technology, where they will be required to work with diverse teams and consider the ethical implications of their work. It will also foster a more inclusive and empathetic mindset, which is crucial in the constantly evolving field of technology.

What is the author's overall message in "On the Cruelty of Really Teaching Computer Science"?

The author's overall message is that computer science education needs to evolve in order to truly benefit students and society. The traditional methods of teaching are no longer effective and can even be harmful, and a more inclusive and interdisciplinary approach is needed to prepare students for the future of technology.

Similar threads

Replies
14
Views
2K
Replies
3
Views
2K
Replies
1
Views
1K
Replies
2
Views
2K
Replies
20
Views
5K
Back
Top