Designing Steps in Solving Computational Problems