170 likes | 178 Views
This course covers the principles of distributed computing, including topics such as distributed system services, reliable distributed applications, socket programming, RPC, replication, and security.
E N D
Instructor • Dr. Hanan Lutfiyya • Middlesex College 418 • Ext. 86888 • hanan@csd.uwo.ca • Office Hours: Wednesday 5-6; Thursdays 4-6 or by appointment
Prerequisites • CS305 -- Operating Systems • CS350 -- Computer Architecture (sometimes not enforced) • CS357 -- Computer Communications Networks It is expected that you have good C skills and some knowledge of makefiles. This course is an antirequisite to SE 466 (from the Department of Electrical and Computer Engineering)
Textbooks • Required textbook • Andrew S. Tanenbaum and Maarten van Steen, Distributed Systems:Principles and Paradigms, Prentice-Hall • References • G. Colouris, J. Dollimore and T. Kindberg, Distributed Systems: Concepts and Design, 3rd edition, Addison-Wesley, 2001 • J. Kurose and K. Ross, Computer Networking: A Top-Down Approach Featuring the Internet, Addison-Wesley, 2001. • R. Stevens, Unix Network Programming, Volume 1, Prentice-Hall • Links to web pages on various topics; man pages
Lecture Notes • Lecture overheads will be available (hopefully) before each lecture. • They will be available in powerpoint format.
E-mail Contact • All e-mail that I send will be to your GAUL account. It is your responsibility to check your GAUL account or to forward the e-mail to another account. • I will ignore e-mail from hotmail accounts and other UWO accounts unless you cc your UWO account in the message.
Student Evaluation • Final Exam: 40% (April 21) • Quiz: 15% (Feb 20) • 3 Programming Assignments: 35% • 2 Concept Assignments: 10% • No makeup quiz except for religious reasons. I need two weeks warning and you must go through your Dean’s office. • If you miss your quiz for a non-religious reason and present valid documentation to the Dean’s office, your Final exam mark will be reweighed to include the weight of the Quiz.
Special Note for Graduate Students • Instead of concept assignments, you must complete paper reviews.
Student Evaluation • To be eligible to pass the course, a student must receive at least 40% in the quiz/exam component and at least a 40% in the individual assignments. • To be eligible to receive an overall grade of 60% or higher in the course, a student must receive at least 50% in the quiz/exam component and at least 50% in the individual assignments.
Assignments • Three programming and two concept • Concept assignments are meant to help you keep up with the material. This should be good preparation for the quiz and exam. • Assignments are made available through the course web page. • All assignments are due by midnight. You must submit to both the locker and electronically.
Late Assignments • There is a penalty of 2^n marks, where n is the number of days late. • The weekend counts as one day. • Extensions will be granted only on serious medical or compassionate grounds. • Extensions will NOT be given for minor illness.
Late Coupons • You are given 3 “late coupons” • Late coupons may be applied toward the individual assignments but not toward the group assignment. • Each coupon is a one day extension. • Rules • No transfer to other students • Once used, you may not receive it back • Coupons cannot be redeemed retroactively • Unused coupons are not redeemable for extra marks • Use of a late coupon does not change the final date on which an assignment will be accepted.
More Assignment Information • Keep a backup! • Requests for an adjustment in an assignment mark must be made within 2 weeks after the assignment is returned in class. All such requests are to be written and submitted to me. • Assignments must satisfy the specifications given in the assignment description!
Course Objectives • The main objective is to study the principles of distributed computing. • Distributed computing is a broad subject. This course roughly focuses on the following: • Topics related to distributed system services such as support for RPCs and file systems. • Topics related to the development of reliable distributed applications. This includes socket programming, RPC, replication, election algorithms, time, consistency and security. Your programming assignments will focus on this.
Topics • Communication • Network organization • Socket Programming • RPC • Processes • Iterative vs. Concurrent servers • Thread Programming • Design Issues • Naming • Synchronization • Consistence and Replication • Security • File Systems • Distributed object-based systems (CORBA, DCOM) (time permitting)
Frequently Asked Questions • Will you be providing previous exams? • No • Why? • This is almost the first time that I have taught the course. • Can I use last year’s CS402 book and not this year’s CS402 book? • The answer is probably “yes”, but I think this year’s book is better written which is one of the reasons it was chosen. • This course seems to be a heavy load. Is it? • We will find out