CS 310-0 MATHEMATICAL FOUNDATIONS OF COMPUTER SCIENCE

Miguel A. Lerma - Winter 2001

Section 20

MWF 10:00 am - TECH L150
T 10:00 am - TECH L150

http://www.math.northwestern.edu/~mlerma/courses/cs310-01w/

A Quote

[...] The story suggest that assertions, or simply Boolean expressions, are really needed in programming. But it is not enough to know how to write Boolean expressions; one needs to know how to reason with them, how to simplify them, to prove that one follows from another, and to prove that one is not true in some state, and so forth. And, later on, we will see that it is necessary a kind of assertion that it is not part of the usual Boolean expression language of Pascal, PL/1 or FORTRAN, the "quantified" assertion. [...] More importantly, the study of program correctness proofs has led to the discovery and elucidation of methods for developing programs. Basically one attempts to develop a program and its proofs hand-in-hand, with the proof ideas leading the way! If the methods are practiced with care, they can lead to programs that are free of errors, that take less time to develop and debug, and that are much more easily understood (by those who have studied the subject).

David Gries: The Science of Programming. Part O:
Why Use Logic? Why Prove Programs Correct?

Announcements

• Reminder: Final Exam, Wednesday, March 14, 2001, 9:00-11:00am in Tech L150. It will cover the whole syllabus. You may use the posted "Notes on Discrete Mathematics" and your personal class notes during the exam.

• As you know, homework is assigned weekly and will be collected and graded by the TA. After being graded I will return it to you in class. If you cannot pick it up in class, you can do it at a later date in the TA office.

• Note that the volume of homework to be graded may exceed the teaching duties of the TA. In that case only part of the problems or questions assigned will be graded.

Feedback

Course Description

725-310-0 Mathematical Foundations of Computer Science

Basic concepts of finite and structural mathematics. Sets, axiomatic systems, the propositional and predicate calculi, and graph theory. Application to computer science: sequential machines, formal grammars, and software design. Prerequisites: 725-A10 or 725-A11 and 435-B14-3. Prerequisite for: 725-C22, 725-C32, 725-C39, 725-C43, 725-C51.

Teachers

Instructor Teaching Assistant
Name Miguel A. Lerma Dianwen Zhu
Office Lunt 203 Lunt B10
Phone 1-8020 7-1956
E-mail mlerma at math dot northwestern dot edu zhudw at math dot northwestern dot edu
Office Hours by appointment
MW 2-3pm
Teaching in Tech L150 Tech L150
Code N.A. 123

Lectures and Homework Assignments

Note: I am going to be releasing notes ("Notes on Discrete Mathematics", in PDF format) that you can download by clicking in the links of the "subject" column of the syllabus bellow. The table of contents, the introduction and the appendix are here:

Depending on various circumstances, the schedule shown bellow may experiment small modifications.

The "sections" listed on the 4th column are from Grimaldi's book.

The "Suggested Exercises" column contains some exercises from the book that you may find useful to try. They are not homework nor need to be turned in.

The complete set of notes is here. However I do not recommend to download the whole set until the end of the quarter, since I may still make some changes to the notes.