Computational Thinking For Problem Solving