Computer Science 513/601.08 — Additional References

References

Additional References

It is not required (and should not be necessary) to use material that is not freely provided on the course web site, in order do well in CPSC 513 or CPSC 601.08. Furthermore, material that you find online can be highly unreliable: Sometimes technical terms, used in this course, are used in inconsistent (and, very different) ways. The internet includes many misleading — and, sometimes, downright false — claims about things that are being studied here.

Students in CPSC 601.08 are being asked to complete a project on a topic that extends, or applies, the course material — so that these students probably do need additional material. Several of the references that are listed, below, include at least a little bit of material that might be useful to begin work on a CPSC—601.08 project.

Several of these references are freely available to University of Calgary, as ebooks, through the University of Calgary. An “ebook” link is provided for the text, below, when this is the case.

In Case You Need To Review

One of these is frequently used as a textbook or recommended reference for MATH 271, while the other is frequently used as a textbook or recommended reference for CPSC 251. They are both readable references for the material, in discrete mathematics (as well as logic and proofs), that are covered in prerequisite courses and that will be assumed as background for CPSC 513.

This book presents material about automata and computability theory that is included in the prerequisite course, CPSC 351 — but it is written at a somewhat higher level, and includes a considerable amount of additional material. Some of this material might be the basis for the beginning of a CPSC 601.08 project. This is freely available to University of Calgary students as an ebook.

Main Reference for Course Material

Parts 1 and 2 of this text were consulted heavily, when preparing an earlier version of this course, and quite a bit of the current version of the course is still based on this material.

A simple programming language is introduced in this text (and in this course) and used to define “computable functions,” with Turing machines introduced later. While this adds extra material that computer science students must learn, at the beginning of the course, it simplifies proofs of a variety of claims in the course, later on.

This is also freely available to University of Calgary students as an ebook.

Alternative References for Course Material

A readable text that places computability theory in a historical perspective. Since Turing machines are used as the model of computation, nontrivial results about computable function are described with proof sketches instead of detailed proofs — but these can certainly help to understand how various results can be proved. This also includes a useful guide for further reading as its final chapter. Once again, this is freely available to University of Calgary students as an ebook.

Since this uses a programming model (with “URM programs”) it can present proofs at a level of detail similar to what is possible in the main course reference. This goes somewhat beyond the course material, presenting early results in computational complexity theory (which are often left out in textbooks on that subject). This is also freely available to University of Calgary students as an ebook.


University of Calgary Extension of Logo
Department of Computer Science

cpsc 513/601.08 computer science faculty of science u of c

cpsc 513/601.08 intro and math review models of computation first hard problems classifying unsolvable problems post’s problem chomsky hierarchy cpsc 513 course outline cpsc 601.08 course outline more about administration references assignments tests