The paper elucidates two views (models) of algorithmic problem solving. The first one is static; it is based on the identification of several principal dimensions of algorithmic problem solving. The second one is dynamic, i.e., it catalogs main steps in the process of solving a problem with a computer. The models are used to identify several important issues in teaching design and analysis of algorithms and to suggest ways of rectifying the shortcomings identified.