This page has a series of helpful links for various topics. Emphasized links (bold, bigger font) are extremely useful for the content of this course and we recommend you look them over.

Programming Help

Network Programming

  • Beej's Guide to Network Programming is one of the most in depth explanations of socket programming. We would highly recommended reading it if you're confused about the various system calls (connect, accept, bind, etc.) required for socket programming.
  • Sockets Slide Deck contains a quick-start for getting a C sockets program up and running.

Concurrent Programming

Course VM Info



  • TCP Vegas contains a very useful description of how to read TCP Graphs. See section 2.2 on page 3 for a good explanation of how to interpret both Trace graphs and window graphs.


  • Git Cheat Sheet documents the basic git commands you will be using most of the time. The rest of the documentation on github is comprehensive and should be very helpful if you are stuck.
  • Pro Git is a comprehensive guide to Git. If you have never used Git before and want to get a solid understanding of how it works, we recommend reading chapter 2 (minus the section on tagging), and chapter 3 (minus the section on rebasing).


  • Computer Networks: A Systems Approach (5th edition), by Larry Peterson and Bruce Davie.
  • Computer Networking: A Top-Down Approach (7th edition), by James F. Kurose and Keith W. Ross

Course Links