Introduction to computation : Haskell, logic and automata /
Donald Sannella [and three others].
- Switzerland : Springer, c2021.
- xvi, 366 pages : illustrations ; 28 cm.
- Undergraduate Topics in Computer Science .
Includes index.
1. Sets -- 2. Types -- 3. Simple Computations -- 4. Venn Diagrams and Logical Connectives -- 5. Lists and Comprehensions -- 6. Features and Predicates -- 7. Testing Your Programs -- 8. Patterns of Reasoning -- 9. More Patterns of Reasoning -- 10. Lists and Recursion -- 11. More Fun with Recursion -- 12. Higher-Order Functions -- 13. Higher and Higher -- 14. Sequent Calculus -- 15. Algebraic Data Types -- 16. Expression Trees -- 17. Karnaugh Maps -- 18. Relations and Quantifiers -- 19. Checking Satisfiability -- 20. Data Representation -- 21. Data Abstraction -- 22. Efficient CNF Conversion -- 23. Counting Satisfying Valuations -- 24. Type Classes -- 25. Search in Trees -- 26. Combinatorial Algorithms -- 27. Finite Automata -- 28. Deterministic Finite Automata -- 29. Non-Deterministic Finite Automata -- 30. Input/Output and Monads -- 31. Regular Expressions -- 32 Non-Regular Languages -- Index.
Computation is a process of calculation involving arithmetic and logical steps, following a given set of rules (an algorithm). This uniquely accessible textbook introduces students to computation using a very distinctive approach, quite rapidly leading them into essential topics with sufficient depth, yet in a highly intuitive manner. The work is anchored in coverage of functional programming (in Haskell), symbolic logic, and finite automata-- each a critical component of the foundations of Informatics, and together offering students a clear glimpse into an intellectual journey beyond mere mastery of technical skills.