think like a computer scientist