CSC 165: Lectures

Week Topics Covers Notes
1 Sept 11 Course Introduction
universals and implication
Warm-up puzzles
Chapter 1 (PS)
2 Sept 18 Sentences, statements, symbolic notation, and implications Chapter 2 (PS)
3 Sept 25 Quantifying implication, equivalence, existential quantification Chapter 3 (PS) [updated 11 October]
4 Oct 2 Manipulating quantifiers, conjunction, disjunction, and negation
5 Oct 9 Formal proofs 4.2-4.5 No class Monday due to Thanksgiving holiday
Chapter 4 (PS) [old version, only first half]
6 Oct 16 Basic proof structure 4.1, 4.6-7 Term Test 1 on Monday
7 Oct 23 Other proof structures 4.9-4.19 Chapter 4 (PS) [updated 27 Oct]
Gary Baumgartner's summary of proof structure
8 Oct 30 Binary notation, analyzing algorithms 4.14, 5.1 Chapter 5 (PS)
9 Nov 6 Big-O notation 5.2, 5.3
10 Nov 13 Asymptotic notation and time complexity 5.3, Ch.6 Chapter 6 (PS)
11 Nov 20 Bounding running time of programs, floating point systems Ch.6, 7.1 Term Test 2 on Monday
12 Nov 27 Error in numerical methods 7.2-7.3 Chapter 7 (PS)
13 Dec 4 Handling error, review 7.4-7.7

The "covers" section numbers above are from the online lecture notes.

Online lecture notes

These notes roughly correspond to material covered in lecture, sometimes in more detail and sometimes in less detail. Please let me know of any errors, typos, omissions, or things that should be added.

Many of the lecture notes included here are adapted from other sources, including Gary Baumgartner and Danny Heap's CSC 165 notes, the textbook, and Jim Hoover and Piotr Rudnicki's logic notes.

References

In the last few years a number of good logic, proof and reasoning books have been published. However the more formal ones tend to assume some mathematical sophistication, the less formal ones are not formal enough, and many have a lot of specific mathematics not relevant to this course (though often relevant to later CS courses). None make connections with programming. So none is a perfect fit.

We don't want you to spend a lot of money on a textbook you may not find useful. So browse the following to find any that are helpful to you. (Of course, just like in your programming courses, you must spend most of your time time thinking, doing and experimenting).

One very readable, informal and introductory book is:

A classic book on how to solve problems (and highly recommended to read sometime) is:

The following two books are a nice mix of formal and informal, and available on Short Term Loan at the Engineering and Computer Science Library:

Two books which concentrate more on the formalization are:

Finally, the following book focuses on how mathematics is done:


Valid HTML 4.01 Transitional