Phases to solve a “programming” problem
I have been more than 15 years teaching programming to students of first course of Engineering (industrial, computer, telecommunications) and from the very beginning I show them which are the steps to address a Programming Problem.
Analysis (what), design (how) and test are needed before we type a single instruction in the computer, the focus is not in the language (Java, C, Delphi) but in how to design the solution (algorithm). If we reflect about it, they are the same steps to follow in any problem in real life!