Notes On Computational Thinking