5 ms·
UW CSE 391 – System and Software Tools
- srvmshr 3y agoVery similar to content and structure to MIT Missing Semester: https://missing.csail.mit.edu/ https://missing.csail.mit.edu/
- loeg 3y agoI think (some of?) this material was formerly covered in CSE 303 (now discontinued), when I took it in 2009: https://courses.cs.washington.edu/courses/cse303/ https://courses.cs.washington.edu/courses/cse303/
- xyx0826 3y agoQuite surprised to see UW materials on HN. I took the non-major equivalent of this course; it was an introduction to C, Bash, Linux, and assembly. It was quite helpful back then, although the web helped me expand on what I know as with most computer science topics. 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.
- TrustPatches 3y agoCSE 374, good times :)
- carlotte 3y ago[flagged]
- PaulDavisThe1st 3y agoI worked at UW CSE from 1990-1994 as a staff member. 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.
- Fellshard 3y agoUW CSE student from 2009-2012; there was an optional course that blazed through *NIX and shell fundamentals, and I credit it to kickstarting my ability to use the system well. Using GDB, valgrind and the like were part of a 300-level basic systems programming course.
- qsort 3y agoIt's kind of depressing that you need a course to teach those skills, but it's a good thing the need was (eventually) addressed.
- nisegami 3y agoWhy is that depressing? Genuinely asking.
- qsort 3y agoIt's one of those things that I would expect people that age to have naturally picked up by themselves. I certainly had, for instance. The world has changed, though, so I don't find unreasonable to have a formal course where you learn how to use a CLI.
- pasc1878 3y agoNoone as naturally picked up CLI. You tye characters into a terminal and you first get an error message, how do you know to fix that. How do you know what you can do? How do you know ls is what you get to get a file listing? What is a file? In all these cases you have had to read something that tells you) - which is part of learning. It is much and quicker to have a course to teach you. Having courses to teach you is mor efficient otherwise why do we have schools? However seeing many solutions of code posted on the internet I suspect many have not learnt throughj a course just random reading and picked up bad coding skills. As noted in the first answer here the author of the course is not showing good ideas in some cases, perhaps they shopuld have nbeen on a course to learn CLI.
- _9omd 3y agoI think this type of course should come very early in a CS program. Yes, many students learn these things on their own, but many don’t, and it’s a good idea to put them on equal footing. 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.
- markusde 3y agoAgreed. At my undergraduate we didn't have an equivalent, and a common complaint amongst the TA's was how little concrete devops skills the students had. One of my friends TAing a second year course even went so far as to say almost all of his time in office hours was (watching students fail to do, and then) showing students the basics.
- mitchellh 3y agoI took this class back around 2010. Kind of random seeing it on HN. This is a good introduction to getting around a Linux (or any Unix-y) system. As far as I can remember, this was considered an "easy" class for most CS students but relatively important to teach practical industry fundamentals. 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!
- sciolist 3y agoI'm currently enrolled in the required CSE 351 (https://cs.uw.edu/351 https://cs.uw.edu/351) which is largely in C with some assembly as well (and has gdb/make)!
- mitchellh 3y agoCool! It doesn't feel like there was 351 equivalent when I was enrolled. The contents here were split between OS and the 391-predecessor. 351 looks like a great class!
- da39a3ee 3y agoThis seems like quite a lot (but not all) of stuff you should be able to teach yourself; I'd say university classes should focus on more challenging/profound topics.
- sciolist 3y agoIt's a 1-credit seminar, so you can take it with the more challenging/profound topics
- evmar 3y agoI was at UW around the time they were thinking of introducing this. I recall someone saying they'd found that there was a gap between the students who had computer experience and those that didn't -- the latter could be equally smart but lacking in the dumb stuff like how to operate git and it would end up impacting their ability to learn the profound topics. 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.
- cancerhacker 3y agoYou can learn it yourself, but when I took a similar course, it opened my eyes to knowing which tools were useful for what and how to apply them productively. (I work with people now - software engineers - that basically see any command line fu to be magic that they couldn't possibly understand.)
- b215826 3y agoThe first video lecture [1] is titled "Introduction to Linux", yet, ironically, the instructor conducts the entire lecture using macOS. I guess the main purpose of this course is to teach uninitiated kids a thing or two about the *nix CLI, but for some reason the instructor has decided to call it the "Linux CLI". He also teaches some terrible shell scripting practices [2] such as parsing the output of ls [3] and not quoting variables. [1] https://www.youtube.com/watch?v=hTHAe-m56Vw https://www.youtube.com/watch?v=hTHAe-m56Vw [2] https://www.youtube.com/watch?v=rOxJW7PtA5s&t=169s https://www.youtube.com/watch?v=rOxJW7PtA5s&t=169s [3] http://mywiki.wooledge.org/ParsingLs http://mywiki.wooledge.org/ParsingLs
- birttAdenors 3y agoI teach a course at the University of Waterloo targeting psychology undergrads with little to no experience using their computers as research tools.Maybe some of the content would be useful to others looking for beginners' material? The entry page is https://brittanderson.github.io/Intro2Computing4Psychology/book/index.html https://brittanderson.github.io/Intro2Computing4Psychology/b... and the files are all on github and the videos on vimeo.