Dȳkstra answers a question

“No, I’m afraid that Computing Science has suffered from the popularity of the Internet. It has attracted an increasing – not to say: overwhelming! – number of students with very little scientific inclination and in research it has only strengthened the prevailing (and somewhat vulgar) obsession with speed and capacity.”

E. W. Dȳkstra, “Answers to questions from students of Software Engineering”, EWD1305-0 (2000)

Some advice on post-secondary education – for parents

When I was in highschool, I didn’t really have any interest in university. In fact many of the subjects I had to take in school were of little or no interest to me, or put another way, I enjoyed the creative classes, and hated the STEM classes. I remember in Grade 11 having to take the top level math course, something to do with vectors and algebra. I had no interest, or aptitude, and ended up with a 15% grade… which ended that. At university I *had* to do a science-type degree, but again I didn’t really enjoy many of the courses… computing being the only exception, and only because it was creative in some aspects (but theory courses were still pretty blah). The end result of course is many years in university, and then working at one – was it exactly what I wanted?

Here are some things parents should think about from my experience as a student, teacher and parent.

  • Avoid forcing your child to do a degree in X. As a parent you may think it is helpful to steer your child towards a particular career, but unless they want to take a degree in X, they likely won’t thank you for it. I’ve seen students that don’t want to be in engineering, and when asked why they are there, they answer “Because my parents want me to be an engineer.” – wrong answer. It’s your child’s choice, not yours. Sure a degree in computer science might provide a good income, but what’s the point if they hate it? A degree is something a person has to choose for themselves.
  • Avoid forcing you child into attending university. Not everyone needs to go to university. Some people just aren’t academically inclined, others find the thought of more academia burdensome. Some might want to pursue a trade, or perhaps want to take a GAP year. Let the student decide, sometimes they actually have a clue about how they feel about things. Certainly don’t push them into something because that’s what *you* want them to do. We have spent too many years pigeon-holing people into higher education. Some people just aren’t suited, but feel they have to be there because it’s what their parents want. Bottom line, let you child decide what they want. You can certainly help them explore career options (not the active word here is help, not force or coerce).
  • Avoid forcing your child to attend a university you want. Again, you are not living your child’s life – let them choose where they want to go. Even if you are paying the bills, let them make the choice – don’t guilt them into making a particular choice. And just because you are an alumni of X, doesn’t mean your kid has to go to school there.
  • Small universities are OK. If they want to attend a small university, that’s okay. Bigger universities aren’t always what they are cracked up to be, mainly from the perspective of large class sizes, but also from the impersonal experience. Small universities usually offer a more individual experience, with small upper-year classes, and the ability to get to know the instructors.
  • Never devalue a trade. If your child wants a career in the trades or attend a college, why not? From a pure monetary point-of-view there is no guarantee that a university education will provide a good, stable income. In fact many trades earn a better living that some people with STEM degrees.
  • The humanities are okay. Too many parents think there is no future in degrees like the humanities. The truth is that training people in the humanities disciplines is just as important as things like STEM. Besides which not everybody wants to pursue a degree in STEM. Certainly if a student is creatively minded, they shouldn’t be pushed into something outside their scope of interest.
  • Avoid emailing instructors. As students are all considered adults, professors cannot communicate with parents on behalf of their children. As much as parents should support their children’s education, they should not send instructors emails requesting extensions to assignments. Students have to take responsibility for their education – in reality there are very few reasons why a parent has to email an instructor.
  • Support your child in their education. Just because your children are in higher education, doesn’t mean you have to abandon them. If they ask you if you could proofread an assignment, help them out. You might be able to provide some helpful feedback, that unsurprisingly is not possible in many courses due to the large class sizes.
  • Don’t be afraid to let them fail. Too many parents spend their lives pushing away every possible barrier their children encounter in life, afraid that they will fail at something. The problem is that by the time they hit university they haven an adversity to failing, which leads to some level of anxiety. If parents let their kids fail things earlier in life, they would be much more resilient to the adversities encountered in life. If a student fails a class, that’s okay, because maybe they will learn from the experience and become a better student.
  • Gap years are OK. Not everyone is ready for more education, and that’s okay. If your child wants to take a gap year and travel, work, or volunteer somewhere, you should support it. Even if they want to take a gap year in the middle of a degree, it’s okay. Maybe they don’t have any idea what they want to spend the next four years of the life studying, or perhaps they just need a break. Sure, some people may decide that university if not for them, and that’s okay too.

At the end of the day, regardless of the choice they make, it is about a time of learning, growing, and making memories to remember. The last thing you want to hear is “I never wanted to do a degree in X!”. Imparting wisdom and guidance is fine, but young adults should never be pressured to take a career path that their parents want – they have to explore their own interests, and identify things that are meaningful to them.

Hoare on PL/1

“Those parts of the language that were not yet implemented were still described in free-flowing flowery prose giving promise of unalloyed delight. In the parts that had been implemented, the flowers had withered; they were choked by an undergrowth of explanatory footnotes, placing arbitrary and unpleasant restrictions on the use of each feature and loading upon a programmer the responsibility for controlling the complex and unexpected side-effects and interaction effects with all the other features of the language.”

Tony Hoare, “The Emperor’s Old Clothes” (1980)

Dijkstra on curricula

On being asked “Is the outcome of the curricula different in Europe and America?”:

“But a major difference was that the fence around the university campus was higher. To give you an example, when we started to design a computing science curriculum in the 1960s, one of the firm rules was that no industrial product would be the subject of an academic course. It’s lovely. This immediately rules out all Java courses, and at the time it ruled out all FORTRAN courses. We taught ALGOL 60, it was a much greater eye-opener than FORTRAN.”

E.W. Dijkstra, “An Interview with Edsger W. Dijkstra“, Thomas J. Misa, CACM (2010)

Education has become the winter of our discontent

There was a time when I enjoyed teaching. Actually I still do, just not in a purely academic sense. I want to teach subjects I am more interested in, and teach students that are actually interested in learning. How did this come about?

There was a time when I think students came to university to learn, and I think some still do, but for many it has become a continuation of highschool… a pedagogical unconsciousness before they begin their working careers. They tick courses off on the list of requirements to graduate, and some aren’t really interested in learning. Over the past 30 years attending university has become a norm, yet some students don’t even know why they are there. Yes, I’m generalizing. There are always students who work hard and are interested in learning, but sadly they seem to have become the few. And I understand, it’s not all the students fault, the expectations of higher education (or any education for that matter) do not always live up to what they could be. It is a system that has not evolved in decades.

The education system as a whole, from grade one to the end of university has become a stunted learning environment plagued by a lack of money, and apathy on the part of governments, school systems, and even teachers. Everybody says they are working hard to improve the situation, but we have seen the fruits of this labour – poor test scores, an inability to do math, mediocre problem solving skills and lack of a basic writing aptitude. There are math teachers in elementary schools who don’t know math, and others who believe teaching is handing out photocopied activities. So the rot starts quite early. No one “fails” elementary, so that learning inadequacies are compounded as the years go on. By the time they reach university some are struggling (strangely, despite good entrance scores).

Universities have become “mills” from the perspective of teaching (well, and research too). The list of issues is a long one – a continual trend to increase class sizes; less-than-stellar teaching assistants, lack of support for teaching, increased instructor workloads, micromanagement, university mismanagement, inequality in the workplace, etc etc. Few institutions really care about education, beyond the false image advertised to students. One issue in universities is class size. They have no problem with creating huge classes to deal with a huge number of students. I imagine for some it’s a terrible learning environment, and they switch off, going through the motions of getting a degree. In highschool they were perhaps in a course with 25 other students, now it is 250. That’s not really learning. It is extremely hard to effectively assess students in large courses, so instructors often have to revert to online multiple-choice quizzes. To have 500 students in a course write 3000 word essays would, I imagine, be very tedious and disheartening to actually have to grade, given the poor writing skills.

In order to better educate our youth, we need an education system that works from start to finish – but in order to do that we need to invest time, effort, and money in making the system better. In many cases this means looking at alternate means of teaching. For example outdoor classrooms in elementary schools, micro-schools, more one-on-one teaching at the secondary and tertiary level. More problem solving, and perhaps less reliance on technology as the saviour of teaching. We need to stop thinking about education as “content”, and start thinking in terms of “intellectual habits”. Too many teachers expect a idea or skill taught once will be remembered – a pity the human mind does not work in that way. Embodying a new idea requires that a student practise the idea in context and from different perspectives.

Universities have to make education a priority, and stop looking down on people who choose to make pedagogy their scholarly endeavour. They have to invest in new ideas, and new ways of doing things. Less theory, and more experimental, interactive experiences. More community-driven experiences, where people learn the value of giving back. Less time sitting in archaic lecture halls. Smaller classes. perhaps consider rolling back the “Phd-only” mantra for faculty – there are many talented individuals with masters degrees, or even industry-professionals, who would make excellent teachers, and may care little for an extensive research-oriented career – just because someone has a PhD, does not mean they will be a good teacher (indeed many are hopeless).

There are many things that can be done to make education better, but just like climate change, people have to be willing to make a change. On the flip-side as a student you have to be willing to become engaged in the learning process.

P.S. If you are thinking about going to university, my honest opinion is go to a small, teaching-focused university. There you will have small classes, and actually get to know your instructors. Sure they may not have the prestige of larger universities that “rank in the top 10”, but who really cares.

Dijkstra on the end of computing science

“On the contrary, most of our systems are much more complicated than can be considered healthy, and are too messy and chaotic to be used in comfort and confidence. The average customer of the computing industry has been served so poorly that he expects his system to crash all the time, and we witness a massive world-wide distribution of bug-ridden software for which we should be deeply ashamed.”

Dijkstra, “The end of computing science“, EWD1304(2000)

Dijkstra on faculty

“Firstly, the average computing science faculty member considers the problem of programming decently far below his dignity, while at the same time he has not the foggiest notion of how to do it. Again I am not exaggerating: I have taken extensive experiments with CS faculty members from all over the world, and the vast majority of them – I mean about 95% of them – cannot program a Binary Search. It is a very shocking percentage, but you can take my word for it. This widespread incompetence is, of course, a severe problem for educating students, but, as we all know, educating faculty members is near to impossible.”

Dijkstra, “By way of introduction“, EWD1041(1989)

When is a question considered stupid?

I recently saw somewhere that someone had described me as “a little bit sassy and inconsiderate”. That’s probably quite true, but did they ever stop to consider why? It was probably written by someone who was at the receiving end of a very sarcastic email, or perhaps misinterpreted one of my class emails. It’s possible. If someone thinks I’m sassy, that’s okay, because it does allude to “full of spirit”, which I’m okay with. Inconsiderate? I doubt it, and if it happened it’s likely because the person was themselves being inconsiderate to their fellow students. It happens. It’s also likely it came about because someone asked a stupid question. So what’s a stupid question?

  • Any question asked that is covered by material in the course outline, content, or assignment specifications – If someone can’t be bothered reading the material, don’t expect the answer to be without some level of sarcasm included. It’s a students responsibility to actually read the material.
  • Any question related to the material in class emails the student couldn’t be bothered reading – Class emails exist for a reason, so everyone gets the same information. If you can’t be bothered reading the emails, don’t ask questions that were answered in them.
  • Any question asking for “clarification” – If a post or email says “write an original article”, don’t send an email requesting clarification on what an “original article” is. Instructors dislike repeating anything that is already written is clear English. If you don’t understand what words mean, Google them.
  • Any question that is already answered in the FAQ – FAQ’s exist for a reason, namely to avoid repeating the same thing ad infinitum. If a person isn’t bothered to read the FAQ, why should the instructor answer the question.
  • Any question that asks for an extension for non-medical grounds – If you don’t have a solid rational for asking for an extension, then don’t. People that ask for an extension because there are two days left before the due date and they haven’t started yet are being inconsiderate towards those students who actually worked to get the assignment finished on time.
  • Questions that arise because they got a poor grade for an assignment they did not actually follow the criteria for. “But I thought I’d do it my way”, just doesn’t cut it.

Look, maybe I had more patience once. Nowadays it just seems like some people are too lazy to read (or do) anything themselves. It’s easier to email the prof… and then they wonder why they get a sarcastic reply. At some point you have to take responsibility for your own education. I’m more than happy to answer any question that is inquisitive, or help with any problem students have. But I am growing a little tired of students that need to be spoon fed all the way through a course, and can’t even be bothered to follow the most basic of instructions.

Why don’t we build simpler things?

There likely was a time when things in our everyday lives were simpler. As technology became more complex, so too did software. It is hard to know where exactly the problem lies. Of course the world as a whole has gotten more complex over the past 50 years, and some would argue that the choice of more complex solutions to things has not made out lives easier, in fact likely the complete opposite.

“Any intelligent fool can make things bigger, more complex and more violent. It takes a touch of genius – and a lot of courage – to move in the opposite direction.”

E.F. Schumacker

A good example are home appliances. Most now contain software of one sort or another, coupled together with logic boards to make things operate. Some even hook up to wi-fi. The problem is no-one needs this level of complexity in a machine designed to wash clothes. I’m sure the electronics inside provide something in the way of efficiency, but the products themselves often seem to be designed by people with little or no clue about what the devices are used for. Washing machines for example do not need 1001 programs – they need maybe a few more than provided on laundromat machines. These machines also don’t need things like “steam-clean”, or any fancy programs to get stains out. You know what gets stains out? A Marseille Laundry Cube, and it lasts years. Don’t rely on a machine to do something you can achieve in a couple of minutes. So a washing machine likely needs maybe 10-12 different cycles for different items, a couple of spin speeds, and some water temperature choices. Oh, and a simple 5 minute rinse and spin cycle. I have a Miele washing machine, and it seems to be extremely well designed, although I don’t need the wi-fi, and it still probably has too many cycles (thankfully many are hidden from view in the touch-screen menu). One thing I do like is that it has a maintenance “cleaning” cycle which cleans the machine, and it prompts me when it has to be done.

Dishwashers are the same… too many options. On my Miele dishwasher I basically only use the normal cycle, and perhaps the “pots and pans” cycle when I’m running it through a clean cycle. Still the cycles seem *way* too long. But it is simple, and that’s what makes it a well designed machine. Microwaves also suffer from feature overload – my Breville does a great job, but in reality I probably use about 10 functions including reheating drinks and leftovers, softening butter, and melting chocolate. Most things I don’t really need. Function inflation, or “setting creep” is everywhere. Things that we use should do what they are designed for and no more.

“Increasingly, people seem to misinterpret complexity as sophistication, which is baffling. The incomprehensible should cause suspicion rather than admiration.”

Niklaus Wirth

Sometimes it really is like people think that complexity is a good thing. That making things more complicated with entice people to buy them. Oh, of course we know that is true, because humans are quite fickle. Was stuff really made better in the past, when things were simpler? In actuality, although refrigerators have become more efficient, they don’t last as long, and arguably they are as well designed inside. Check out this video below which is a fridge ad from 66 years ago. The features in this fridge actually seem extremely well designed… without the need for 1001 pieces of fancy technology.

If we actually looked at things a little closer, and maybe examined historical design we might be able to build things that are simpler, last longer and are actually better from a usability perspective. It’s the same with software – I imagine much of it is too complex and poorly designed from a usability perspective. Complexity doesn’t make sense from an sustainability perspective either. Complex things break more, and often don’t last as long.