Improve student programming through emphasis on programming methodologies and problem solving

We often watch computer science students struggle to write programs to solve a programming problem. Quite often the student reads the given problem, turns on their computer, starts their programming language application, and begins to type. They give little thought to the problem or the design of their solution. The end result-a poorly designed program, that if it even works, has consumed much more of the student's study time than the instructor intended. Some students eventually derive their own problem solving methodologies, but many continue to struggle, earn poor grades, become frustrated with computes science, and eventually leave the field. This paper proposes a method of introducing problem solving and programming methodologies that will help the student avoid the frustration of poorly designed solutions and programs and instead devote more time to design than coding.