The Turing project aims to offer the foundations of a course on introduction to the theory of computing. We are formalizing some content of the textbook Introduction to the Theory of Computation, by Michael Sipser.
Our library includes results on
- Formal languages: common operators and language equality results
- Regular languages: regular expressions, pumping lemma
- Turing machines: acceptance, equality, map-reducibility, decidability.
This library has been used to teach 3 sessions of a course on introduction to theory of computation at UMass Boston. Slides, video recordings, and classroom exercises are freely available here:
https://cogumbreiro.github.io/teaching/cs420/f19/
https://cogumbreiro.github.io/teaching/cs420/s20/
https://cogumbreiro.github.io/teaching/cs420/f21/
Some of the live coding recordings of S20 are available on YouTube: Tiago Cogumbreiro - YouTube
I would love to meet other educators using a similar approach to teach intro to the theory of computation, and to connect with people curious to try out this work.