How to think like a computer scientist and Problem solving with Algorithms and data structures