how to think like computer scientist