Miguel A. Lerma - Winter 2001
Section 20
MWF 10:00 am - TECH L150
T 10:00 am - TECH L150
courses/cs310-01w/
David Gries: The Science of Programming.
Part O:
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.
Ralph P. Grimaldi: Discrete and Combinatorial Mathematics,
4th edition, Addison-Wesley.
Miguel A. Lerma:
Notes on Discrete Mathematics. (See bellow.)
The problem sessions will be held on Tuesdays under the TA's
supervision.
The homework assignments will be posted on this web page.
There will be one one-hour Midterm Exam and one two-hour Final Exam.
No make-up exams will be given. In the event of an extreme and well
documented absence (such as hospitalization) the final may be weighted
to count for the missing exam. In the case of a missed exam, contact
the instructor as soon as possible.
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.
Email:
mlerma at math dot northwestern dot edu
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).
Why Use Logic? Why Prove Programs Correct?
Announcements
Feedback
Click the following link and tell me your thoughts:
Feedback
Course Description
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
Class Logistics
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:
Related links