Hacker News new | ask | show | jobs
by maffydub 1084 days ago
Here's the course list for Cambridge for 2019-2020: https://www.cl.cam.ac.uk/teaching/1920/cst/

Yes, there are courses on Java and C/C++ (and also LATEX, MATLAB and Prolog!), but these are a few out of 60 courses in total, which include things like algorithms, information theory, distributed systems and optimizing compilers.

...although maybe Cambridge isn't a "standard" CS degree?

1 comments

Firstly yes, Cambridge isn't "standard". It gets to assume its graduates will likely be employed because hey, Oxbridge degree, and in a STEM subject too, so it needn't care about "employability".

Both Oxford and Cambridge currently begin with an ML as first language (Cambridge chooses Ocaml), for the reasons I was taught an ML first too. These languages have sound fundamentals, their type system is good, they can handle recursion and other natural ways to express software. Also, almost none of the entrants know an ML [this will have started to change somewhat because of Rust] and so the introductory material holds everybody's attention and you don't need to spend as much time breaking bad habits.

Places which begin with just Java need to wrestle with the fact that Java has some very weird assumptions which you need to either mention but move past or else ignore and then they leave a weird hole in the knowledge of your students. (For now) All Java's user defined types live on the heap - that's very weird, do you call it out?. Some of your cohort know this language well, and so they can do your exercises without paying attention and they lose interest right at the start of your course which isn't good. But others are new to programming entirely as well as Java, for them every concept you introduce is a general idea - this isn't "How variables work in Java" for them it's "How variables work". Beware the resulting prejudices you have created.