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 opera- tive. This kind of ND is quite different from the first one. It appears in nondeterministic program - ming 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.

Highlights

  • Nondeterminism (ND) is a fundamental concept in computer science

  • In order to evaluate the feasibility of teaching operative ND on the high-school level, we examined the learning process of high-school students that were introduced to this concept in the context of a programming course on live sequence charts (LSC) and scenario-based programming

  • We have studied how high-school students understand operative ND after taking a semestrial course in which they learned the nondeterministic programming language of live sequence charts (LSC)

Read more

Summary

Introduction

In Schwill’s work on fundamental ideas of computer science (1994), it is listed under the category of programming concepts. There can be several reasons behind the low presence of ND in that curriculum, but we believe that a major factor is that ND was far less a prominent characteristic of computerized systems at the time that curriculum was developed. This has changed, as reflected, for example, in a new knowledge area on parallel and distributed computing that was added in CC2013 (IEEE/ACM, 2013). ND, especially of the kind considered in this paper, is one of these essential concepts

Objectives
Results
Discussion
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call