top | item 34765842

(no title)

hungrygs | 3 years ago

Dijkstra had a lot of influence for some years on the UTCS undergraduate program, whose first undergraduate course for much of the 1990s was taught in Haskell and was a brutal weed out, at ~70% attrition for the first year courses.

However, by 2001, the failure rate was so high that the department moved to Java, much to Dijkstra's chagrin: https://chrisdone.com/posts/dijkstra-haskell-java/

The UTCS undergrad program has been "nerfed" twice since the 1990s - in 2001 and in in 2014. Various political interests during the first tech bubble - to produce more graduates - and later, to have more under-represented minorities, have dramatically reduced what Dijkstra pushed for.

discuss

order

thechao|3 years ago

I took that course in '96, as a lost liberal arts major, with no background in CS. If you paid attention & didn't get behind in course work, it was an easy A. Most of the people failing that class never bothered to do the course, or claimed to already know how to program. The lecturer I had was Richardson, and I used to model my courses in grad school after his; he was a gifted educator.

hungrygs|3 years ago

>or claimed to already know how to program.

This was the key fact. They knew how to program Pascal from Computer Science AP and got 5's on the AP exams and came into UT Austin with abundant confidence but when presented with hardcore mathematical logic data structures and algorithm analysis in functional programming starting week 1 of college they got the rug pulled out from the under them. Of course, this was real computer science, not "infantile" imperative/OOP programming.

Ham "Haskell" Richardson was a total fanboy of Dijkstra!

I will note that the current 1st UTCS course is a serious joke - CS312 was a remedial course, non-counting for major, before 2014, called CS 305J. It's an embarrassment compared to Berkeley's CS61A.

mgfist|3 years ago

A 70% attrition rate is awful. How many of those kids could become fine engineers if they had more runway to fail and learn without being weeded out?

All this tells me is that if CS concepts don't click for you instantly you were out - even though this is a terrible heuristic for who would make a good engineer (or good computer scientist, whatever the goal is).

hutzlibu|3 years ago

Hm, it depends how "attrition" is defined. I read it the way it is done in german universities, meaning 70% and above indeed fail the weeding courses (usually math) at the first try, but you had 3 tries and still could attain the next semester, without passing.

But for quite some, it was indeed eye opening and they left for something else. It is a bit brutal, but effective and it gets the message across. If you don't want to struggle to learn the basics, you are wrong in computer science.

That doesn't mean, you cannot become a programmer, there is another formal path of doing so, but attaining a university does mean playing at another level. (or well, if should mean that, I got to learn too many who just learned to play the bullshitbingo)

lmm|3 years ago

> How many of those kids could become fine engineers if they had more runway to fail and learn without being weeded out?

This question is worth taking seriously. I've seen a study of a slower course that found that, nevertheless, there was no difference in the number of students who could understand basic variable assignments between the start and at the end; either they "got it" straight away or not at all.

wyager|3 years ago

I bet after that initial 70% attrition rate, the subsequent attrition rate was close to zero. As opposed to the current state of affairs, where people are slowly and painfully abraded away over the course of years (or graduate at a standard that may not have been acceptable, say, 20 years ago).

yencabulator|3 years ago

Perhaps, but also, UTCS = University of Texas Computer Science department, and universities don't make engineers, they make scientists and researchers...

Computer Science != programming. This memo by Dijkstra is pretty much agreeing with that (though complaining about the existence of non-CS programming).

wyager|3 years ago

UT's CS degree has been continually nerfed since 2014, with several reductions in the number of required science/math courses and an increase in the number of required "culture flag" (I forget the exact euphemism) courses, encompassing precisely the types of X diaspora/Y-ism studies courses you might expect. Source: graduated UTCS 2017, saw this happening real-time