9 ms·
CS631 – Advanced Programming in the Unix Environment
- stefanos82 4y ago> Letter grades will be given as follows: > > * 90% - 100% of total available points => A > * 80% - 90% of total available points => B > * 70% - 80% of total available points => C > * 0 - 70% of total available points => F > > Within each letter grade, there are +/- grades given at the discretion of the instructor. (Exception: there is no A+) ...what? O.o They don't offer a grade 'D' anymore?
- NoraCodes 4y ago> learn to develop complex system-level software in the C programming language while gaining an intimate understanding of the Unix operating system I would have loved to take a course like this in college, though I didn't have the chance. I do think [Rust In Action](https://www.manning.com/books/rust-in-action https://www.manning.com/books/rust-in-action) is a good introduction to some of the same concepts, if anyone is, like me, yearning for grad school while having to hold down a job. While it doesn't use C, I think it teaches systems programming in a way that's easily applicable to any language.
- Icathian 4y agoIf you haven't heard of Georgia Tech's OMSCS, give it a look. There are some excellent systems courses available. https://omscs.gatech.edu/specialization-computing-systems https://omscs.gatech.edu/specialization-computing-systems
- NoraCodes 4y agoNeat, thank you so much!
- ambrose2 4y agoCan you take any of them through a MOOC platform such as Coursera, edx?
- Icathian 4y agoThe lecture videos and syllabi are up on the gatech websites for each class, but the project materials and such are not publicly available as far as I'm aware.
- downrightmike 4y agoStudents probably have github profiles of projects
- BaculumMeumEst 4y ago> While it doesn't use C, I think it teaches systems programming in a way that's easily applicable to any language. If it’s teaching systems programming in a way that’s applicable to any language, it’s probably not teaching systems programming.
- NoraCodes 4y agoI'm not sure what you mean. There are many systems languages out there these days: C/C++, Rust, Zig, and even Go and Nim for things like file systems and networking!
- emmelaich 4y agoHave a look at https://www.edx.org/course/unix-tools-data-software-and-production-engineering https://www.edx.org/course/unix-tools-data-software-and-prod...
- 0x445442 4y ago> Students are expected to have a good working knowledge of the C programming language, have written non-trivial programs before, and to be able to competently use a Unix system with a command-line shell interface. All coursework will be done exclusively on a Unix system from the command-line. This is not an introduction to using Unix! My son just finished an undergrad CS degree at a major university and I don’t think he’d meet this pre req.
- turndown 4y agoI’m not sure - I took an operating systems course in C that used command line only for submissions, and of course if you didn’t run a *nix locally you had to SSH in and work in a terminal environment for the entire course. This was three years ago. You could nitpick about what “non-trivial” means, but I’d say most CS degrees require some non-trivial work(to them).
- ghostpepper 4y agoJust because they have experience in C and (hopefully) some non trivial work over the course of the entire degree doesn’t mean they have non trivial experience in C. I’d love to hear what the author considers nontrivial but I’m going to guess it has something to do with pointers, and familiarity more generally with the memory model of C.
- chucksmash 4y agoHoning in on what is meant by "non-trivial" is a good point, because it will really mean different things when talking about different audiences. I took a few undergrad CS courses during some downtime recently and found them blindingly, disappointingly easy to the point where I found myself fading the (prestigious) school that created the material. They felt completely trivial, as did the assignments. On the other hand, I'd be willing to entertain the argument that I've not yet written a non-trivial program in my ~10 years working.
- 0x445442 4y agoYeah I guess it’s the non-trivial bit that needs clarification. My son shelled into nix systems and wrote some c++ code that made system calls. It’s just the way the prereq was written leads me to believe a good portion of his time in this class would be spent on learning things ancillary to the main content.
- prezjordan 4y agoI took this class during undergrad! It was really enlightening as a web developer to actually...write the server
- neilv 4y agoThe course home page almost looks like it could've been for a Unix programming course 30 years ago.
- waynesonfire 4y agoexcellent, wouldn't expect anything less.
- hulitu 4y agoBecause a modern programming course page must have 30 MB link to 3 analitycs pages and have Facebook and Tiktok tracking and buttons. Nevermind that the main info is 1kB. /s
- neilv 4y agoI was unclear; I meant the content of the course.
- tester756 4y agoI think it's good - loads quickly, straight to the point, materials are available easily (links to yt)
- kwant_kiddo 4y agolooks cool but this sentence "and all OS that belong to this family, such as Linux, the BSDs, and even Mac OS X" triggers me a bit because MacOS is the only one of those OS' listed that are certified UNIX. Technically Unix is trademark, you have to pay to be Unix.
- deleted 4y ago[deleted]
- gauddasa 4y agoI recommend to use UNIX® in the course name as the text book consistently uses.
- pjmlp 4y agoWhich also implies meeting certain certification tests criteria, it isn't only just money.
- jstanley 4y agoYou're talking about Unix the intellectual property. They're talking about Unix the philosophy.
- pjmlp 4y agoWhich ironically none of the "Unix the intellectual property" actually care about, as anyone that used old big iron UNIX can attest to. "Unix the philosophy." seems to be a thing only on FOSS UNIX clones, and even then, "man anything" shows how far the reality is from the myth.
- Pasta123 4y agoYou seem to dislike FOSS *nix in general. Are they really that "obsolete" comparing to commercial UNIX and Windows?
- gauddasa 4y agoThe moment I read APUE, the website apuebook.com flashed into my mind. I've been following Stevens and Rago book since their first edition which was late 1990s.
- divbzero 4y agoThe course is quite opinionated, in a good way: It is essential to be able to efficiently use a text editor, and doing all your writing / coding / text processing in one of the common editors available on all Unix systems is good practice. vi(1)/vim(1) and emacs(1) are popular choices. My college instructor encouraged the use of emacs in particular. I eventually migrated to vim but appreciated the instructor’s core message that text editor + CLI feels less magical than a full fledged IDE.
- weatherlite 4y agoAfter 10 years of writing software for a living I still don't get this. Why vim/emacs and not Intellij (for instance?). What do you mean magical - I want a powerful tool to help me edit code...
- nuclearnice1 4y agoOne difference might be the pedagogical vs the productive perspective. Perhaps the magic of a full fledged IDE is thought to obscure some of what is essential to the subject.
- weatherlite 4y agoI vaguely remember hearing something like that when I just started uni and they had us all working on Emacs. I can attest it added zero value to me...but that's just me.
- alpark3 4y agoI'm assuming the rationale is that for someone who's doing complex system-level stuff on unix/linux they should be able to change things deep in the weeds instead of pulling the entire code out to IntelliJ or an IDE.
- 533474 4y agoExperienced emacs users will beg to differ. It is as capable and arguably, more easily extensible. I must admit, it is not for everyone. As your anecdotal 10 years experience, I have the opposite opinion but I think it is fair to say that both, Graphical IDEs and emacs/vim, have their merits. Having transitioned from Graphical IDEs -> vim + plugins -> emacs + evil + configs + org-mode. I will never go back to my old self, I've never been as productive and free.
- lapser 4y agoI believe this course (or something close to it) was taught in the University of Kent when I was there between 2009 and 2013. Really got my Linux game up to the point where I could switch to it fulltime.
- atsushin 4y agoI took this class while I was in grad school! Ended up dropping due to reasons but the instructor was great. I'm pretty sure the course materials are up on YT as well.
- asicsp 4y agoPrevious discussion: https://news.ycombinator.com/item?id=25775168 https://news.ycombinator.com/item?id=25775168 (188 points | Jan 14, 2021 | 41 comments)