Summary: | Every repetitive process encapsulates a regularity pattern, which may be expressed as an invariant assertion. Invariants embody implicit, insightful properties that characterize the execution of programming statements. Due to their implicit nature, invariants may be less apparent to algorithmic problem solvers. Yet, invariants are essential for designing correct and efficient algorithms. This paper illustrates the essential role of invariants, and examines whether novices tend to look for invariant properties during their algorithmic problem solving. The paper presents a study in which two novel algorithmic challenges were displayed to a group of motivated, novice students. Student solutions to these challenges demonstrate an operational reasoning approach, which does not capture the essence of the problems at hand, and yields non-satisfying results. Some solutions were incorrect, others were inefficient, and some had no convincing justification. These results, and the correct and efficient solutions to both challenges illuminate the importance of assertional reasoning and the fundamental role of invariants.
|