A Case for an Open Source CS Curriculum [pdf] (2018)
homes.cs.washington.edu
homes.cs.washington.edu
$ curl -sI https://homes.cs.washington.edu/~tom/talks/edslides.pdf | grep Last-Modified
Last-Modified: Mon, 31 Dec 2018 06:58:15 GMTThe argument against is often phrased in such a way that enforcing, or even defining, separate ‘professions’ for individuals in software careers and those professions having differing requirements, is seen as a morally negative stance on its face. As a particularized example, one of the frequent arguments would be that a hierarchical structure would inevitably emerge among people potentially working on the same application. This argument is predicated on this stratification being inherently bad.
I think the push back on separating roles like you propose would be instant and vitriolic. I got slammed hard for saying that a person who had no concern or any interest in how data structures in a given application were implemented should not be hired as a ‘system programming’ dev.
I absolutely think you are correct at the theoretical level, but practical implementation of the idea is almost a non-starter.
Overall, university diploma means absolutely nothing to me - sometimes it's a minus (because it sometimes grows a specific attitude that has no place in my teams). The only working indicator is time spent doing the job + personal interview.
Imagine, if you will, the practices that would have been taught to the "By the book" computer engineers who graduated in 2000. Would you think it happy to have those practices dominant, by regulation, today? Would you want to have the task of lobbying the professional standards committees to update the curriculum so that a decade from now the thing you think is important would be accepted practice?
I think that the difficulty we have updating e.g. language versions or crypto practices is a good model for how well our field responds when we do things more formally. Imagine how long python 2 would be around if it had been the basis for professional credentials for decades!
That said, there is probably not such a gap between a programmer and a computer scientist--especially in terms of the skills needed for most software jobs.
Of course, many startups don't have a software architect and they allow "regular" engineers to design the system, but that wouldn't change just because the industry decides that it isn't the programmer's job to design systems.
But why do I have a feeling that it's written with an idea to make faculty life easy, not necessarily for a great student learning outcome, although that's what they say.
Alan Kay (Turing Prize 2004) argues against current standard CS curriculum. https://www.youtube.com/watch?v=PFc379hu--8
Anyway few unrelated thoughts.
---
The undergrad CS courses mostly do not deviate in content.The variance is in quality.
"pick good professor over interesting course" paid off for me in university.
Factors such as these matter: course pace, instructor and TA accessibility, course slides and other material quality, lecture interesting or boring etc.
---
Isn't it surprising that one of the most watched courses is by an YouTube tutor with a credential no american university will ever take seriously for hiring even an adjunct teaching faculty?
See Intro to Algorithms by Abdul Bari on YouTube
What About Copying/Cheating?
* Reduce salience of project grades?
– Exams can test whether student mastered the material
Most of my CS classes didn't give exams and were graded entirely on projects.
I found this to be one of the best features of my CS education.
Projects are vastly more interesting, impactful,
and representative of meaningful learning.