CSC 165: Lectures

Week Topics Covers Notes
1 Sept 10 Course Introduction
Universals and implication
Ch.1 More funny headlines
Puzzles are in the Ch.1 notes
No tutorial this week
2 Sept 17 Sentences, statements, symbolic notation, and implications Ch.2
3 Sept 24 Quantifying implication, equivalence, existential quantification Ch.3
4 Oct 1 Manipulating quantifiers, conjunction, disjunction, and negation Ch.3
5 Oct 8 Formal proofs 4.2-4.5 No class or tutorial Monday due to Thanksgiving holiday
6 Oct 15 Basic proof structure 4.1, 4.6-7
7 Oct 22 Other proof structures 4.9-4.19
8 Oct 29 Binary notation, analyzing algorithms 4.14, 5.1
9 Nov 5 Big-O notation 5.2, 5.3
10 Nov 12 Asymptotic notation and time complexity 5.3, Ch.6
11 Nov 19 Bounding running time of programs, floating point systems Ch.6, 7.1
12 Nov 26 Error in numerical methods 7.2-7.3
13 Dec 3 Handling error, review 7.4-7.7

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

Lecture schedule is provisional and subject to change as the term progresses. Please check back each week to confirm reading assignments.

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 textbooks listed below, 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