Course Description
Google+ Community
Udacity Course

(Previously CS8803-O02, now part of the Computing Systems specialization)
Intro to Operating Systems is NOT a prerequisite to Advanced Operating Systems. The sibling course delves into more detail about specific topics in operating systems. Instead, this course is geared towards students with minimal background in operating systems. Many students do take this course before they take AOS, but it isn't required.

For many students, the most significant challenge in this course is that the projects are written in C. It will introduce you to sockets (network communications), string handling, protocol development, threading, inter-process communications and remote procedure call. You will find yourself reading and re-reading man pages and various online resources to try and work through the details.

For those new to the program, the learning curve is steep because the course assumes you are either familiar with C, Linux, virtual machines, and gdb or that you are willing to learn those things. For those trying to learn all of this along with the concepts and implement the projects, it is a challenging class.