Introduction to systematic program design practice problems