Computational Thinking, Algorithms and Programming