You must complete the Cloud Computing course before taking this course. This course assumes some basic knowledge of working computer systems. This course is generally oriented towards either graduate students (or senior undergraduates) or developers in industry who are working with cloud computing systems. Some familiarity with cloud computing systems helps, but is not a prerequisite. In the optional programming track, familiarity with C++ programming language is required. This course does not teach you how to use cloud computing systems or about networking or Big Data. If we were to draw an analogy, if this course were about cars, then it would teach you the physics relating to the internals of the car (e.g., friction, transmission, gears, etc.) and basics about the internals of the car (e.g., about the carburetor, engine, etc.). The course would not, however, teach you how to drive a car or about automobile accident statistics or about how roads are built. Take this course if you’re curious about cloud computing systems. Do not take this course if you know nothing about computers or computer science.