Computational Thinking. A Perspective on Computer Science