Elementary Algorithm Design and Data Abstraction