To really understand cloud computing you need hands-on practice using cloud services. You will be able to pick from several different topic areas to decide what you want to learn about.

In each topic you have the choice of attaining Beginner or Intermediate level mastery. Achieving Beginner level mastery should take 1-2 hours per area, while Intermediate level is likely to take 10+ hours.

Practice Round 1: By Monday October 29th you must attain Beginner + Intermediate level in a first topic and Beginner level in a second topic

Practice Round 2: By Sunday December 9th you must either: 1) reach Beginner + Intermediate in two areas and Beginner in a third area (including what you did in Round 1), or 2) complete a final project in an area of your choice (see details here)

If you choose to do another round of practice tutorials, then you must write a Technical Report in the form of a blog post designed to teach the reader about a topic you learned about this semester. Your post should present an overview of a distributed systems concept or tool in about 1500 words. Julia Evans’ blog has many excellent examples of short, technical articles designed to be educational. For example, see How big can a packet get? or How I use Wireshark. Your writeup should be similar: it should be designed for a computer scientist who has not taken a distributed systems course, but has basic knowledge; it should feature clear diagrams that you design to help present the material; it should give practical, hands-on information. The writing, images, and examples used in your post must be your own. Plagiarism will be treated very strictly, resulting in failure of the assignment! If you copy/paste anything at all, you must site the source and clearly mark it in quotation marks.

If you choose to do a project, then you must present your project to the instructor prior to the end of the semester. Plan to give a 10-15 minute presentation explaining what your project does and how it works. In this case you do not need to write a technical report.


To record your Practice progress you should:

  • Create a fork of this Git repository to record your progress and notes as you go through the linked materials
  • For each video/lab/tutorial, you must make a short writeup (bullet points or a paragraph) that highlights the key things you learned from the material and add it to your repository
    • Your notes SHOULD NOT be content copy/pasted from the tutorials/labs. You should be writing notes with your own words. You do not need to record every step you took in your notes, instead your notes should highlight the key points that you learned. You can include 1 or 2 images to show you correctly followed the tutorials, but you do not need to show a screenshot of every step!
  • Record how much time you spend on each lab or tutorial
  • Each topic ends with a small project to bring together all of the ideas you’ve learned so far. You must provide a short writeup about your project that explains what technologies you used and how they interact for the project with diagrams/screenshots.

Your notes should be written in a way that both helps you remember what you learned, but also would help a new student to figure out the key points of each tutorial/video. Part of your grade will be based on how complete and nicely formatted your notes are. You should keep all of your documentation in Markdown syntax so they can be viewed through the github web interface, or (even better) you can use GitHub pages to turn those markdown files into a nice looking web page.

Your fork of the repository will be public in your own GitHub account, so it is in your interest to make it look good!