Teaching nondeterminism through programming

Research output: Contribution to journalArticlepeer-review

Abstract

Nondeterminism (ND) is a fundamental concept in computer science, and comes in two main flavors. One is the kind of ND that appears in automata theory and formal languages, and is the one that students are usually introduced to. It is known to be hard to teach. We present here a study, in which we introduced students to the second kind of ND, which we term operative. This kind of ND is quite different from the first one. It appears in nondeterministic programming languages and in the context of concurrent and distributed programming. We study how high-school students understand operative ND after learning the nondeterministic programming language of live sequence charts (LSC). To assess students' learning, we used a two-dimensional taxonomy that is based upon the SOLO and the Bloom taxonomies. Our findings show that after a semestrial course on LSC, high-school students with no previous experience with ND of either type, understood operative ND on a level that allowed them to create and execute programs that included nondeterminism on various levels and in various degrees of complexity. We believe that it is important to expose students to the two types of ND, especially as ND has become a very prominent characteristic of computerized systems. Our findings suggest that students can reach a significant understanding of operative ND when the concept is introduced in the context of a programming course.

Original languageEnglish
Pages (from-to)1-23
Number of pages23
JournalInformatics in Education
Volume15
Issue number3
DOIs
StatePublished - 2016

All Science Journal Classification (ASJC) codes

  • Education
  • Communication
  • Computer Science Applications

Fingerprint

Dive into the research topics of 'Teaching nondeterminism through programming'. Together they form a unique fingerprint.

Cite this