Skip to content
Why is a raven like a writing desk?

Thoughts both confusing and enlightening.

Why is a raven like a writing desk?

Thoughts both confusing and enlightening.

The Camel Has Two Humps

elbeno, 6 June, 200729 July, 2007

I’ve just been reading an interesting paper on teaching programming. First, the data regarding rates of attrition on computing courses is startling. Between 30% and 60% of the total CS intake fails the very first programming course!

The paper’s authors postulate 3 programming hurdles to be negotiated:

  • sequencing and assignment
  • iteration and recursion
  • concurrency

Surely one would think that the first of these is no hurdle at all (the concepts are part of everyone’s everyday life) and yet it is! From personal experience, I would say actually that recursion is quite a significant mental way past iteration, and I think many programmers never get that far, let alone to the hurdle of concurrency.

They further posit 3 groups of pupils:

  • those who accept and work with the system of rules that is ultimately meaningless
  • those who attempt to see meaning where there is none
  • those who refuse to work with meaningless rules

Of these, only the first group succeeds as programmers. The other two flounder.

Programming

Post navigation

Previous post
Next post

Related Posts

it's old, but it still works!

22 February, 200729 July, 2007

Having played around with DosBox lately, I decided to do some more digging in my archives and found some stuff from the early 90s, pre-university era. Back then I was programming in QuickBASIC, which was awesome at the time. I found a half a dozen programs: a game of Yahtzee…

Read More

How to print anything in C++ (part 2)

1 February, 201530 June, 2015

Part 1 Part 2 Part 3 Part 4 Part 5 Postscript We have a basic plan, and the ability to detect concrete types. But how can we detect whether an object supports output with operator<<? For this, there is a recently-discovered amazing trick. Here’s the code: template using void_t =…

Read More

C++ Guru Question

11 August, 201430 June, 2015

Wondering about this… template argument deduction succeeds for the explicitly-typed variable, fails in the auto case. (Also, it succeeds either way for an equivalently-typed unary operator template). template struct Foo { T m_t; }; template Foo operator/=(Foo foo, function fn) { return fn(foo.m_t); } void mystery() { auto foo =…

Read More

Comments (3)

  1. sylvene says:
    6 June, 2007 at 4:03 pm

    My brother maintains that he managed to write programmes to do things that the language wasn't supposed to do, then he went to school, learned computer programming and couldn't do it anymore. i.e. he learned to work with the systems of rules.

    (http://livejournal.com/users/sylvene)

  2. elbeno says:
    6 June, 2007 at 5:16 pm

    I don't know what you mean by “things that the language wasn't supposed to do”.

    (http://livejournal.com/users/elbeno)

  3. sylvene says:
    6 June, 2007 at 5:27 pm

    Neither do I. I'm not a programmer. :p

    I'm *baa* repeating *baaa* what he would say *baa*

    (http://livejournal.com/users/sylvene)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

©2026 Why is a raven like a writing desk? | WordPress Theme by SuperbThemes