|
|
|||
|
||||
OverviewLearn to program more effectively, faster, with better results… and enjoy both the learning experience and the benefits it ultimately brings. While this undergraduate-level textbook is motivated by formal methods, so encouraging habits that lead to correct and concise computer programs, its informal presentation sidesteps any rigid reliance on formal logic which programmers are sometimes led to believe is required. Instead, a straightforward and intuitive use of simple 'What's true here?' comments encourages precision of thought without prescription of notation. Drawing on decades of the author's experience in teaching/industry, the text's careful presentation concentrates on key principles of structuring and reasoning about programs, applying them first to small, understandable algorithms. Then students can concentrate on turning those reliably into their corresponding – and correct – program source codes. The text includes over 200 exercises, for many of which full solutions are provided. A set of all solutions is available for instructors' use. Full Product DetailsAuthor: Carroll Morgan (University of New South Wales, Sydney)Publisher: Cambridge University Press Imprint: Cambridge University Press Weight: 0.596kg ISBN: 9781009421027ISBN 10: 1009421026 Pages: 374 Publication Date: 19 February 2026 Audience: General/trade , General Format: Paperback Publisher's Status: Active Availability: Manufactured on demand We will order this item for you from a manufactured on demand supplier. Table of ContentsPreface; List of Figures; Part I. Everyday Programs: 1. Programs that work; 2. Using invariants to design loops; 3. Finding invariants; 4. Finding variants; 5. Assignments and conditionals; 6. Summary of Part I; Part II. Data Structures: 7. Introduction to Part II; 8. Coupling invariants; 9. Fibonacci numbers; 10. Encapsulated data-types; 11. The Mean Calculator; 12. Summary of Part II; Part III. Concurrency: 13. What is 'concurrency'?; 14. The Owicki–Gries method; 15. Critical sections with Owicki–Gries; 16. Peterson's algorithm; 17. Garbage collection on the fly; Part IV. Machine-assisted Checking, and Testing: 18. Machine-assisted program checking; 19. Program testing; Afterword; Appendix A. Drill exercises; Appendix B. Rules for checking programs; Appendix C. Data refinement: the real story; Appendix D. The 'arithmetic' of conditions; Appendix E. Some helpful logical identities; Appendix F. Illustration of garbage collection; Appendix G. Python-specific issues; Appendix H. Answers to selected drills; Appendix I. Answers to selected exercises; Bibliography; Index.Reviews'This accessible and compellingly written book will deepen your understanding of how code works and why it works correctly. It is full of practical insights for both students and experienced programmers, as well as university educators looking for a new - and better - way to teach programming.' Graeme Smith, University of Queensland 'Carroll Morgan's Formal Methods, Informally is a timely guide to checking everyday code by asking the right questions. Building on distilled logic and math mechanisms, rigorous thinking is promoted as a most valuable tool for developing verifiable software. This book is an insightful must-read for students, educators and practitioners alike.' Luigia Petre, Åbo Akademi University Author InformationCarroll Morgan has been an innovator, educator and researcher in computer science for his whole career: first in industry, then as Lecturer and Fellow at the University of Oxford, and finally as Professor at the University of New South Wales. He is best known for his pioneering work in systematic- and correctness-oriented methods of writing computer programs and systems, and especially for his text Programming from Specifications. He is a member of IFIPWorking Groups 1.3, 1.7, 2.1 and 2.3 and received (jointly) the 'Best Cybersecurity Paper of the Year' award from the National Security Agency in 2015. Tab Content 6Author Website:Countries AvailableAll regions |
||||