- D. Sannella. M Fourman, H. Peng and P. Wadler
*Introduction to Computation: Haskell, Logic and Automata*- Undergraduate Topics in Computer Science, Springer (2021)
- ISBN 978-3-030-76907

The following files are organised by chapter with minimal changes as required to make them work without modification in Haskell. Changes include renaming of functions/types to avoid duplicate names, and commenting out definitions of Prelude functions.

- Chapter 1: Sets - no Haskell code
- Chapter 2: Types - no Haskell code
- Chapter 3: Simple Computations
- Chapter 4: Venn Diagrams and Logical Connectives
- Chapter 5: Lists and Comprehensions
- Chapter 6: Features and Predicates
- Chapter 7: Testing Your Programs
- Chapter 8: Patterns of Reasoning - no Haskell code
- Chapter 9: More Patterns of Reasoning - no Haskell code
- Chapter 10: Lists and Recursion
- Chapter 11: More Fun with Recursion
- Chapter 12: Higher-Order Functions
- Chapter 13: Higher and Higher
- Chapter 14: Sequent Calculus
- Chapter 15: Algebraic Data Types
- Chapter 16: Expression Trees
- Chapter 17: Karnaugh Maps - no Haskell code
- Chapter 18: Relations and Quantifiers
- Chapter 19: Checking Satisfiability
- Chapter 20: Data Representation
- Chapter 21: Data Abstraction
- Sets as lists and problems
- Sets as ordered lists without duplicates and problems
- Sets as ordered trees and problems
- Sets as AVL trees and problems
- Sets as ordered trees as an abstract data type and previous problems solved
- Sets as AVL trees as an abstract data type and previous problems solved
- Sets as lists as an abstract data type and previous problems solved
- Defining intersection for an abstract data type of sets

- Chapter 22: Efficient CNF Conversion
- Chapter 23: Counting Satisfying Valuations - no Haskell code
- Chapter 24: Type Classes
- Chapter 25: Search in Trees
- Chapter 26: Combinatorial Algorithms
- Chapter 27: Finite Automata - no Haskell code
- Chapter 28: Deterministic Finite Automata - no Haskell code
- Chapter 29: Non-Deterministic Finite Automata
- Chapter 30: Input/Output and Monads and a file Main.hs that can be run using runghc
- Chapter 31: Regular Expressions - no Haskell code
- Chapter 32: Non-Regular Languages - no Haskell code