43 comments

[ 2.8 ms ] story [ 37.1 ms ] thread
And now I remember why I'm glad I'm not in school anymore...
It makes me really want to go back to school.
This is considered the hardest computing course at UNSW (with the possible exception of the security course). It has a reputation for being brutal and breaking lesser people. 'Survivors' get a t-shirt proclaiming this fact.
How does UNSW compare to say MIT? The pace of this course looks fairly relentless.
relentless and very demanding (at least for me) and this course took my grade to abyss.
I took this course, and was told that visiting a professor from MIT noted it was comparable to an advanced course there.
I went to secondary school with some people who went there 10 years ago, did this style of course and now work on kernels for Apple, etc.
Do you think this is an effective teaching style?
There are pros and cons, however I think this course has its place. It is for people who know they are good at their degree, but are looking for a challenge rather than easily coasting. In this respect I think it is fantastic.

The other side is that it is brutally hard, consumes a lot of time, and leads to a lot of dropouts from the course.

It is purely an elective course. Everyone who does it knows what they are getting in to, and then come out the other end knowing they've passed the test and recommending the course to everyone else. Given that it is one of the most highly praised computing courses at UNSW (along with Security and Algorithms), it must be doing a lot right

Note this is just based off friends experiences. I have never done this course as the timing was never right

To be clear, the reason it is hard is the grueling pace of the project.

And to be honest, most of the individual tasks were not hard since this was a follow on to another OS course, but Milestone 6 was where shit really hit the fan for me when we needed to implement on-demand paging, and everything was easy enough in user space (catch fault, get the page from disk, map it into memory, restart the thread), but dealing with paging in an event-based kernel where you can't take a fault was pretty painful (where syscalls had a memory component) and resulted in some ghetto memory pinning.

So while this course wasn't really covering much new ground compared to the OS course we had already taken (I do recall some new material about how caches work and when you need to flush them, but not a lot else), the experience is definitely seared into my memory and I remember the details of that project like no other.

EDIT: To be clear, the lectures had a lot of new material, but it was not in the project, and .: not really tested. It did teach us about how things like VMs work.

I think it was. We got good feedback from TA's who checked our progress to the milestones. At the time I went through, the work was done on the MIPS L4 microkernel, so the boot loader and much of the system init is done already, and all the work was done in C.
Note that (according to [1]) a distinction in the introductory OS courses is a required prerequisite for this course. That suggests that mostly students likely thrive in such an intense course will take it. In addition, the course's teacher (Gernot Heiser) achieved the first full verification of an OS kernel [2]. This was a pretty major milestone in both program verification and OS. It's probably an amazing experience to be in such an OS hothouse.

[1] https://www.cse.unsw.edu.au/~cs9242/14/intro/

[2] G. Heiser et al, seL4: Formal verification of an OS kernel, http://www.sigops.org/sosp/sosp09/papers/klein-sosp09.pdf .

A challenging project seems like a great teaching style, as long as it is finished by a detailed project autopsy (all of the groups sharing) that carries substantial marks too, because a lot of the learning should be by the mistakes.
This was my favourite course at UNSW, very intense but that's also what made it fun! Many nights spent debugging race conditions and bugs till 4am.. The OS courses at UNSW are all pretty great.
What makes the security course comparable?
What do you consider prerequisite knowledge for being able to do this course on your own and succeed?
Makes me want to be in school again. Wait... haven't finished grad school yet. Damn.
I never got a chance to take the Systems Programming or OS Dev courses while in school- does anyone know of any online courses (or textbooks) that, by the end of it, will have you with a working toy OS through the exercises?
What is stopping you from doing this course project right now? Not meant as a criticism.
Before jumping to the exercise/project/exam parts, you need to study the theory, no? Unfortunately, lecture videos are password protected - only for UNSW associated persons...
If only somebody reading this had said password and was willing to share it.... (anybody?)
I can't access the assignments or lectures.
This was hands down my favorite course at UNSW.
It does not look like the source code is available?
This is an assignment for a university course.
It has a supporting code with headers and build helpers
I'm a victorian (UniMelb) who has moved to Sydney fairly recently. What are the good meetups in Sydney for recent CompSci graduates?
Specifically, I've been to a few of the Functional Programming meetups- they've been good so far. UNSW and USYD are hubs for the CS community in general. As a UTS grad, there wasn't much but Business Analysis going on there.

Generally, recommendation would be to pick a few topics that you're interested and find related communities and meetups. You'll find interesting people through osmosis.

This looks really fun and reminds me of my time studying Mech Eng where we got given big group design projects. Those were lots of late/unending nights and long days in labs but honestly it's those times with good friends hammering through tough work like this that stick in my mind as the best part about uni.

Well, that and the pub. But it ranks up there!

The OS class I took at UC Berkeley (back in 2010) was in Java, which sucked all the fun out of it. Seeing other universities' OS courses always makes me feel a little jealous.
They're all in C now, using Pintos (I'm in the class right now; the switch happened last semester, AFAIK).
Looks great - would love to see the results of some of the students.
Doesn't every university have an OS class like this? Stanford has Pintos, Purdue has Xinu, CMU has their own and so on. Infact, this seems a lot simpler (which is probably good) than Xinu.
not much familiar with xinu, but this course mainly uses seL4 which is a completely different breed than pintos, xv6 etc.
Looks nice, great project
(comment deleted)