The course is largely based on the book Modelling Computing Systems: Mathematics for Computer Science by Faron Moller and Georg Struth. The .pdf version of this book is available for free, provided you are on campus.
In addition to this book, I have brief set of lecture notes that we will use for the last few weeks of the course.
But there are many other interesting books about logic:
Logicomix – An Epic Search for Truth by Apostolos Doxiadis and Christos Papadimitriou – a ‘graphic novel’ about the history of logic.
The Art of Logic by Eugenia Chang – shows how to apply logic to reason about everyday life and society.
Beschrijven en bewijzen by Hans Zantema and Piet Lemmens. Delft University Press – I learned logic using these lecture notes.
Logic for Computer Science by Michael Huth and Mark Ryan. This book goes a bit further than the book used in class. It covers various topics, focused on program verification. If you’re interested in learning more after having completed this course, this book would make a good choice.
Logica voor informatica by Jan van Eijck and Elias Thijsse. These lecture notes were used in previous editions of this course.
Elements of computing systems - if you want to know more about the design of computer hardware, this is a great book to learn how to construct a fully functional computer (including assembler and operating system) from the ground up.
There are many different explanations of natural deduction for propositional logic.
- the lecture is roughly based on the presentation used here in the context of the Lean theorem prover;
- Frank Pfenning has excellent lecture notes going beyond what is covered in class, including natural deduction rules for predicate logic;
- Femke van Raamsdonk has another great set of notes. Natural deduction is explained in Chapter 1.