[1] https://www.youtube.com/watch?v=hTHAe-m56Vw
At the time, I saw students (at every level) woefully lacking in useful skills, and proposed to the dept. that I ran some sort of course (not necessarily for credit) that would help people understand shell programming, debugging, build processes, and more.
The idea was roundly shot down, with the central claim being that students picked all of this up as they went along, and that the journey was more important than the outcome.
I suppose I feel good that this stupid idea has passed, and that the department acknowledges the importance (for some students, at least) of this skillset.
That's such a bad position for educators to take! Just picking things up as you go along, you only learn how to accomplish tasks by rote, and you can find yourself 35 years in and still be patching basic holes in your knowledge (ask me how I know this). If you're self-motivated to dive in and teach yourself the theory, you can do that. But if you are that guy, you probably aren't taking CS courses at a university in the first place.
I wish I could’ve taken the major version but, alas, I wasn’t offered a spot in UW’s CSE program despite all my passion and effort. I will refrain from turning this comment into a lament of the university’s capacity constrained major system.
It was also somewhat important (but not at all required) since 300/400-level classes used a lot of Linux-based lab machines and this taught you how to get around if you weren't comfortable with them. Before that, most work was done [when I was there] in cross-platform IDEs and just paper/pencil (proofs, maths, and such), so I remember this coming a bit later for that reason.
It also used to be called 303, which made a bit more sense when I was there in the context of being an early 300-level class to get you primed for the later ones. UW CSE went through a big renumbering and restructuring the year I graduated so I don't fully know how it fits in anymore.
Since I took it, it looks like they've added Git and removed a C, gdb, and Make which is a bit sad, but probably more practical...
I'm sure a lot more changed. Fun to see this pop up, though!
Being able to efficiently use common software tools allows students to learn more effectively in other courses, so a class like this provides a leverage to the other classes. Yes a lot of CS is theory, but it’s pretty hard to learn about that without having a solid grasp of the tools.
I recall that opinions like yours were the opposition to it, but it looks like it ended up happening, and I think it's a good idea. In principle a motivated person with no previous access to computers ought to be able to study computer science as well as someone who grew up with them.