So what’s this course about?

Have you ever wondered

Well, unfortunately, this class is not going to help you answer any of those questions (Hint: Answers are: I have no idea, nope, and definitely not).

But lucky for you, this class is going to help you answer the following questions:

In short, in this class, you will be exposed to the foundations of how machines run and how they manage their resources efficiently (and sometimes, not so efficiently).

Why should I care?

I know by now that your brain is going

why do I care about how resources are managed? I just wanted to write Java or Python, do machine learning, and earn the big bucks.

I totally understand and sympathize with you, that was my initial reaction as well. First, before I try to convince you why this class is important, I would urge you to take an hour of your time to watch James Mickens’ keynote talk at the Usenix Security 2018 conference; it is hilarious but very informative and insightful.

Now, back to our question. Imagine the following scenario: You have graduated from Rose, are now a famous software developer, and are now on your way to buy your first house - How exciting! You find a nice antique house that you like and decide to remodel it. You have full confidence in your interior design and remodeling skills, you can afford all the fancy furniture and appliances you like, but you don’t really like thinking about the foundations of your house. So, deciding to be practical, you just decide to ignore the foundations, decide that they work as they work, or in other words, “the stuff is what the stuff is, brother!”.

Upside Down House

So now you’re living in your dream house. Everything seems to be working correctly, you turn on the faucet and the water flows, you plug things in and boom, they’re powered on. That is all great until one day, you start hearing weird noises, your pipes are creaking, your power is going crazy, and now your fancy Jacuzzi is moving on its own. Well, what happened? By ignoring that foundation, you were able to build a wonderful house that worked for a while, but then started falling apart.

This is why I believe learning operating systems is important. The goal is not for you to become a kernel developer (though I’d be super happy if you would and we will be friends!), but the aim is for you to understand what’s happening behind the scenes in your workstation. I strongly believe that answering the questions above is crucial for you to become a well-versed software developer that can write good and well-founded software.

I personally absolutely LOVE this class and am very passionate about this subject. I hope that by end of this quarter, I can convey some of my appreciation for this subject to you. When I learned the concepts in this class, I gain an entire new appreciation for programming and the magic that happens behind the scenes in our machines. Quoting one Reddit user,

A big brain moment for me was realizing how callbacks work and how I didn’t need to write a main loop or anything like a regular program. Just set your hooks and let the OS call them.

Why are there so many assignments and deadlines?

It is one thing to learn concepts about operating systems, it is another to apply them in practice. – Your instructor

Our joint aim in this class is to get you to learn, experience, and appreciate the concepts the define what an operating system is and does. That is we complement our theoretical (sometimes abstract) concepts with hands-on assignments and a project that will solidify those concepts in your mind. In other words, you will spend a lot of time learning by doing.

As for deadlines, if you are anything like me when I was in college, without set deadlines, you’ll procrastinate and play video games until you are running short on time and things have piled up (who knew that time doesn’t stop when I am playing video games \_(ツ)_/ ). So deadlines are to help you stay on top of your work and avoid falling behind and finding yourself in a pickle. For policies and guidelines, see our official course syllabus at the top right corner.

Getting an exam hint

If you have read this unofficial syllabus and have reached this far, congratulations! Please send Mohammad an email with the title "[CSSE332] Unofficial Syllabus Hint and a picture of an angry cat to get a hint for your first exam.