Abstract
Algorithm efficiency is a fundamental computer science concept encapsulating the core topic of
algorithm complexity. While complexity is expressed in formal measures such as `Big O',
ef®ciency can be denoted in rather ¯exible terms. Thus, unlike complexity, which is postponed
in the introduction of programming (due to its formal measures), ef®ciency can be introduced
early. Unfortunately, the strong link between ef®ciency and complexity yields a delayed
introduction of ef®ciency. This is unnecessary and results in reduced student perspective of
basic programming considerations. I present an Ef®ciency-Early Approach in which ef®ciency
of algorithms is introduced early, gradually, using simple measuring terms. The approach
emphasizes capitalization on problem characteristics and utilization of design patterns. I
illustrate the approach with gradually-more-subtle algorithmic tasks, and assess different levels
of their solutions. The more advanced tasks are colorful and rather unfamiliar. The different
solution levels represent results I experienced in implementing the approach with highschool
computer science students. The implementation raised student awareness of problem
characteristics, augmented their design pattern repertoires, and enhanced their efficiency
perspective. Improvement in mathematical insight was experienced with the average and better
students.
Users
Please
log in to take part in the discussion (add own reviews or comments).