This paper describes a study of students' meaningful learning of the engineering design process during their participation in robotics activities. The population consisted of middle-school students (ages 13-15 years) who participated in the FIRST® LEGO® League competition. The methodology used was qualitative, including observations and interviews. The analysis was based on the Revised Bloom Taxonomy. Almost all the groups demonstrated meaningful learning, although some reached higher levels than others. Most of the groups demonstrated the understanding/applying level during each of the design process phases (searching and decision making, construction and testing, diagnosing and debugging), some demonstrated the analyzing/evaluating level, but only a few demonstrated the higher level of creating. Factors that seemed to play a role in the students' learning include: (a) the teaching or mentoring style; (b) the absence of a robotics textbook; (c) the extra-curricular competition-oriented nature of the activities; and (d) the unstable nature of the design of the robot.
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.