Problem solving
Problem solving involves understanding a problem, analyzing the problem and providing a solution to the problem.
The solution specifies the overall design (structure chart, object diagrams, flow chart), algorithms and data organization.
Phases of software development: problem statement, design solution, code the solution, document, debug, test, and maintain.
Modeling : Mapping real world problems known models/techniques in order to solve them.