Module Code : G51MPC
Assessment: One unseen 2-hour written examination.
Module convener: Prof R C Backhouse
Lecture TimetableMonday, 14.00--15.00, CTF-LT2
Tuesday, 12.00--13.00, CTF-LT2
This is a revised version of the literature for this module. It rectifies the errors that were pointed out to me and includes a number of additions/modifications. Modifications are ongoing and I would appreciate receiving comments/suggestions/errata. (Note, in particular, that the chapter on Induction is still incomplete.) Many thanks to the class tutors, Wim Feijen and Joe Wrigley for comments on the copy distributed at the beginning of the semester, and to Sir Tony Hoare for his comments on the Find algorithm and allowing me to reproduce part of his inaugural lecture.
Recommended background reading:
"A Logical Approach to Discrete Math" by David Gries and Fred B. Schneider. Springer-Verlag. 1993.
Slides used during the lectures will be made available here (usually on Monday mornings).
Monday, 29th January. Introduction pdf
Monday, 29th January. The inadequacy of debugging pdf
Tuesday, 30th January. Searching a deck of cards pdf
Monday, 5th February. Binary Search pdf
Tuesday, 6th February. Calculational Proof pdf
Monday, 12th February. Equational Logic pdf
Tuesday, 13th February. Monday 26th February. Logic Puzzles pdf
Tuesday, 27th February. Number Conversion pdf
Monday, 5th March. Tuesday 6th March. Equational Logic, Part 2 pdf
Monday, 12th March. Tuesday 13th March. Hoare Triples, The Assignment Axiom pdf
Monday, 19th March. Sequential Composition and Conditionals pdf
Tuesday, 24th April. The Dutch National Flag Problem pdf
Monday, 30th April. Constructing Loops pdf
Tuesday, 1st May. Finding the best K values pdf
Informal coursework will be announced in the lectures. The information will also be posted here. The numbers refer to the exercises in the module literature. The coursework should be handed in to your G51MPC tutor for marking. (Solutions are provided in the module literature but you should always make a genuine attempt at the exercises before looking there. In this way you can use the example classes to find out about those things that you do not understand or find particularly difficult.)
If you are still not on the tutor list please contact Irena Spasic who is compiling the lists.
Tuesday, 30th January. (Deadline Monday, 5th February) Exercise 2.1 (Find)
Tuesday, 6th February. (Deadline Monday, 12th February) Exercises 3.1, 3.2, 3.4, 3.6
Tuesday, 13th February. (Deadline Monday, 19th February) Exercises 5.4, 5.16, 5.17, 5.18, 5.19
Tuesday, 27th February. (Deadline Monday, 5th March) Exercises 6.3(b), 6.4
Tuesday, 6th March. (Deadline Monday, 12th March) Exercises 7.8, 7.12, 7.13, 7.26 (contrapositive, contradiction)
Tuesday, 13th March. (Deadline Monday, 19th March) Read chapter 8 and do exercises 8.2, 8.4, 8.9.
Tuesday, 20th March. (Deadline Monday, 26th April) Exercises 9.3, 9.4, 10.7,10.8. Enjoy the holiday!
Here is a mock examination for this module. This is being provided because this is the first year that this module has been given. (There is some overlap with G51MC2 given in 1999/2000 but also significant differences.) This mock exam will be discussed in tutorials. Model solutions are now available here
In the first instance, see your G51MPC tutor for help.
I will be available for questions immediately after each lecture.
I will usually be available on Tuesday mornings and on Friday afternoons. Use the timetable posted on my door to book an appointment.
In general, email should only be used for simple administrative matters (broken links, etc.). It is too difficult for me to answer questions on the course via email.
Draft (American) Computing Curriculum, Introductory Courses. A review document on the Computer Science Curriculum prepared under the charter "To review the Joint ACM and IEEE/CS Computing Curricula 1991 and develop a revised and enhanced version for the year 2001 that will match the latest developments of computing technologies in the past decade and endure through the next decade."
Survey of Top-Ranking Computer Science Departments. (A survey, conducted in December 2000, of 1st-year teaching of MPC-like modules in a number of top-ranking (5 or 5* in research, excellent in teaching) Computer Science departments in the UK.
Program Verification Technology. Compaq Systems Research Centre's ESC/Java system developed to assist in teaching. "We speculate that students using ESC/Java as part of programming classes will develop a practical understanding of important programming concepts such as invariants and preconditions".