The web page is not accurate: Starting in 1914 Polya was teaching at ETH Zurich. He became a Swiss citizen. On and off he was in Zurich until 1940 when he moved to the US permanently. ========== How to Solve It was written for mathematics We can easily adapt it to CS. What is the unknown? What are the data? What is the condition? In Software Development: unknown = design and program data = inputs and outputs condition = requirements Separate the various parts of the condition. In CS: Separate the concerns ... Have you seen it before? Or have you seen the same problem in a slightly different form? Here is a problem related to yours and solved before. Could you use it? Could you use its result? Could you use its method? Could you imagine a more accessible related problem? A more general problem? A more special problem?