Affiliation:
1. Weizmann Institute of Science, Rehovot, Israel
Abstract
Nondeterminism is a fundamental concept in computer science that appears in various contexts such as automata theory, algorithms and concurrent computation. We present a taxonomy of the different ways that nondeterminism can be defined and used; the categories of the taxonomy are domain, nature, implementation, consistency, execution and semantics. An historical survey shows how the concept was developed from its inception by Rabin & Scott, Floyd and Dijkstra, as well the interplay between nondeterminism and concurrency. Computer science textbooks and pedagogical software are surveyed to determine how they present the concept; the results show that the treatment of nondeterminism is generally fragmentary and unsystematic. We conclude that the teaching of nondeterminism must be integrated through the computer science curriculum so that students learn to see nondeterminism both in terms of abstract mathematical entities and in terms of machines whose execution is unpredictable.
Publisher
Association for Computing Machinery (ACM)
Cited by
8 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A Tour Through the Programming Choices: Semantics and Applications;Lecture Notes in Computer Science;2024
2. Nondeterminism and Guarded Commands;Edsger Wybe Dijkstra;2022-07-12
3. Not by equations alone: Reasoning with extensible effects;Journal of Functional Programming;2021-01-27
4. Teaching Abstraction in Computer Science to 7
th
Grade Students;ACM Transactions on Computing Education;2020-03-31
5. A Testbed of Non-determinism in Educational Context;Proceedings of the 20th International Conference on Computer Systems and Technologies;2019-06-21