course syllabus distributed systems and algorithms 4125212