SFWR ENG/COMP SCI 4/6L03: Mathematically Rigorous Software Design
2002 December 2

A solution to Exercise 9 is in the file MRSDExer09Soln.pdf.

Grades for your assignments and for the tests are in the file Grades46L03.html. The answers to the multiple choice questions on the tests are also in this file.

Ariane 5: In class on November 14, I mentioned the importance of strict preconditions in practical applications and briefly described the Ariane 5 explosion. More information on this event is at web page http://www.cas.mcmaster.ca/~baber/TechnicalReports/Ariane5/Ariane5.htm.

Mathematical precision in proofs, derivations, etc.: In the solutions to one of the problems on test 1 as well as in solutions to assignments, it is evident that a significant number of students are not presenting their solutions to these problems in a mathematically precise way. In theoretical work, mathematical precision, even pedantry, is necessary to ensure that no needed detail has been overlooked and that nothing has been implicitly, but incorrectly, assumed. In practical work, mathematical precision and well structured and organized documentation are necessary not only for the same reason, but also in order to make inspection (i.e. independent review) feasible.

In order to improve your skill in formulating and presenting mathematical proofs, it is strongly recommended that you review proofs in the literature, including in our lecture notes and other materials for this course, as well as the solutions mentioned below. A proof of a theorem should logically begin with the hypothesis and proceed step by step, each of which is justifiable mathematically, towards the thesis of the theorem. The final step should be the thesis of the theorem. In the documentation, this logical sequence of statements (expressions) can be presented in reverse if this helps the reader. Pay particular attention to the direction of implication arrows, equality vs. implication, etc.

The solution to exercise 3, problem 1.15, is in the file MRSDSolution3.1.15.pdf. In order to develop and hone your skills at finding a precondition with respect to an assignment to an array variable (in which ambiguous references to the array variable in question and empty series can occur), it is recommended that you review this solution, try to derive the precondition again without referring to the sample solution, review the solution again, etc., repeating this process until you can derive the precondition correctly without referring to the sample solution. This practice will equip you well to handle just about all complications that can arise in such problems.

The solution to problem 3G for the graduate students is in the file MRSDGradStuExer3GSoln.pdf.

New reading assignments: Please note the reading assignments for chapters 6 and 7 below.

Teaching assistant: Zheng Wang is the teaching assistant for this course. Her email address is wangz7@mcmaster.ca. She is in room ITC-223. Her office hours are anytime on Thursdays.

Reading and study assignments:
by Sept. 9: Review the file on mathematical fundamentals (MathFund.pdf).
by Sept. 9: Read chapters 1 and 2 in the lecture notes (MRSDLect.pdf).
by Sept. 12: Review and study chapter 2 in the lecture notes.

by Sept. 16: Read and study chapter 3 in the lecture notes.
by Sept. 19: Read and study chapter 4, sections 4.1 through 4.6, in the lecture notes.
by Sept. 26: Read and study chapter 4, sections 4.7 through 4.10, in the lecture notes.

by Oct. 3: Read and study chapter 5 in the lecture notes.

Test 1 on October 15 Tuesday, 10.30-11.20, room BSB/B154
by Oct. 28: Read and study chapter 6 in the lecture notes.
by Nov. 7: Read and study chapter 7 in the lecture notes.
Prepare for test 2 by reviewing Exercise 6 (in file MRSDExer.pdf), the reading assignments and all other material covered to date.
Test 2 on November 19 Tuesday, 10.30-11.20, room BSB/B154
Graduate student project due November 25 Monday
Note: Your reading is expected to precede the corresponding lectures. The lectures will explain and expand upon the material you have read, not simply repeat it. You should be prepared to raise questions in the lectures on the material covered, which you are expected to have already read and studied.