Using pseudocode to teach problem solving

Teaching students how to solve problems is one of the biggest challenges of most Computer Science (CS) courses. An algorithm is by definition a set of well defined steps to solve a problem. Programs are algorithms written in one of many programming languages. Recommended methods for teaching students how to solve problems include a focus on mathematics, flowcharts, UML, pseudocode, and other methods. In this paper we describe an approach that emphasizes the use of pseudocode in the introductory CS course as described in the ACM Curriculum 2001 [1]. Our approach is to teach students how to first develop a pseudocode representation of a solution to a problem and then create the code from that pseudocode. We suggest that this approach improves a student's problem solving skills while teaching the concepts required in the introductory courses.