C.Sc. 484 - Distributed Computing Theory Bruce McMillin - Computer Science - Room 322, Phone 341-6435, ff@mst.edu Office Hours: Monday, Wednesday 8:30-10 Textbook: Concurrency in Programming and Database Systems, by Art Bernstein, and Phil Lewis, 1993, Jones and Bartlett INTRODUCTION Distributed computing can blur geographic distinctions as well as improve performance through concurrency for applications running on networks of individual computers such as distributed database; it can improve reliability for responsive applications such as aircraft fly-by-wire. Writing concurrent programs that are correct, safe, fault-tolerant, and efficient is hard. Mathematics provides a sound, theoretical basis for Formal Methods in Software Engineering. These formal methods in concurrent program specification/verification are used to aid in the analysis and creation of distributed software. This course examines fundamental issues in making individual computers function together, transparently, as a Distributed Computing System. Introduction to Distributed Computing Network Review Book, 7.1 Book, 1.2 -1.4 Problems 1.1(5),1.2(5),1.4(5),1.6(5),1.7(15),1.8(10) Sequential Program Reasoning Chapter 2 Sequential Programs Book, 2.1-2.6 Problems 2.1(5),2.2(5),2.3(10),2.4(5),2.5(10),2.6,2.7(10,5), 2.9(5),2.10(10),2.11(10),2.16(15),2.17(15),2.18(15), 2.20(15),2.21(15),2.22(15),2.24(5) Concurrent Specification/Reasoning Paradigms Chapter 4, Shared Memory Concurrent Programs Book, 4.1-4.10 Problems 4.2(5),4.5(15),4.7(15),4.8(15),4.9(15),4.10(10), 4.11(10),4.14(15),4.15(15),4.16(15),4.17(10),4.20(15) Papers - Temporal Logic: Proving Liveness Properties of Concurrent Programs Owicki and Lamport, ACM TOPLAS, 1982 Problems TBA MIDTERM EXAM – March 16 – In class Chapter 6, Synchronous (Distributed) Programs Book, 6.1-6.7 Problems 6.2(5), 6.7(15),6.8(15),6.10(15),6.12(15), 6.6(15), ,6.13(20),6.15(20),6.16(15) Chapter 7, Asynchronous (Distributed) Programs Book, 7.2-7.11 Problems 7.4(10),7.5(15),7.7(15),7.8(15),7.11(15),7.14(15) Mechanical Correctness Proofs Paper: Model Checking SPIN , CADP - LOTOS Computer Exercise - Mechanical Verification of Programs Exam COURSE DETAILS Format Each week during class will be a combination of lecture and problem solving sessions in which class participation is required. Problems will be from the textbook and from the papers we read and each has a point value (in parenthesis). Each student will be required to present several problems during the semester totaling at least 50 points. More problems may be presented for extra credit. All students are responsible for all the material presented during the semester. Presentation grading will be done with the attached rubric. You must attempt a problem if called on, even if you haven’t been able to solve it on your own; if you have not tried to solve the problem before coming to class, you are not prepared and you get a 0. Grading Policy: Grades will be assigned as follows: 20% Midterm Exam 20% Final Exam 50% Problem sets and class participation. 10% Computer Aided Verification Work ___ 100% You are encouraged to collaborate on the Problems and in the Problem Solving Session. The Exams, however,, MUST BE YOUR OWN WORK. Any cheating will result in a failing grade for the course and appropriate university procedures being followed. Attendance Since the class is a seminar type class, attendance is mandatory. If you miss more than three classes during the semester, you will be dropped from the course. Class participation is based on your interaction during the lecture and during the problem solving sessions. Be on time – class starts at 9:30, do not be late. Coming to class late will be counted as ½ a missed class. Prerequisite Knowledge Students should have a knowledge of operating systems as a prerequisite and a solid mathematical logic background. A background in local area computer networks may be helpful but not required. Campus Policies Academic Alert System: http://academicalert.mst.edu I will utilize the online Academic Alert System. The purpose of the Academic Alert System is to improve the overall academic success of students by improving communication among students, instructors and advisors; reducing the time required for students to be informed of their academic status; and informing students of actions necessary by them in order to meet the academic requirements in their courses. Disability Support Services: http://dss.mst.edu Any student inquiring about academic accommodations because of a disability should be contact Disability Support Services so that appropriate and reasonable accommodative services can be determined and recommended. Disability Support Services is located in 204 Norwood Hall. Their phone number is 3414211 and their email is dss@mst.edu. Instructors may consider including the following statement on their course syllabus as a means of informing students about the services offered: "If you have a documented disability and anticipate needing accommodations in this course, you are strongly encouraged to meet with me early in the semester. You will need to request that the Disability Services staff send a letter to me verifying your disability and specifying the accommodation you will need before I can arrange your accommodation." Academic Dishonesty: http://registrar.mst.edu/academicregs/index.html Page 30 of the Student Academic Regulations handbook describes the student standard of conduct relative to the System's Collected Rules and Regulations section 200.010, and offers descriptions of academic dishonesty including cheating, plagiarism or sabotage. A description of the process for dealing with issues related to academic dishonesty, is available on-line at http://ugs.mst.edu . If you have any questions about the Campus Policies information listed above, please contact the Office of Undergraduate Studies at 573-341-7276. Theory Rubric (Constructing and Understanding Proofs) 1. SYNTAX (Understanding of the mathematical language used) a) Inadequate: The use of mathematical notation cannot be understood. b) Needs improvement: The intended meaning can be discerned from the proof, but the use of mathematical notation is incorrect in many places. c) Adequate: The intended meaning is clear and there are only a few places where the mathematical notation is used incorrectly. d) Excellent: The proof is clearly written with correct usage of mathematical notation. 2. SEMANTICS (Understanding of what proof by induction means) a) Inadequate: The student has not demonstrated an understanding of the structure of a proof by (contradiction/ induction). b) Needs improvement: The student seems to understand how a proof by induction (contradiction) is supposed to look, but has difficulty fitting the structure to the specific problem. c) Adequate: The student has demonstrated that they understand the logic underlying an induction (contradiction) proof but there are some errors. d) Excellent: The student has demonstrated that they understand the logic underlying an proof by induction. 3. LOGIC (Understanding how to tailor the proof technique to the specific problem) a) Inadequate: The student's proof fails to address the statement of the theorem. b) Needs improvement: The student understands what needs to be proven, but cannot find adequate statements (e.g., an appropriate induction hypothesis) which would logically prove the statement. c) Adequate: The student understands the statement of the theorem and how to tailor an induction proof to the problem instance, but fails to complete the argument to form a correct proof. d) Excellent: The student provides a logically sound proof.