reaching a predefined goal by overcoming certain obstacles. This process often involves two different forms of thinking. On the one hand, divergent thinking aims at coming up with as many alternative solutions as possible. On the other hand, convergent thinking tries to narrow down the range of alternatives to the most promising candidates. Some researchers identify various steps in the process of problem solving. These steps include recognizing the problem, trying to understand its nature, identifying general criteria the solution should meet, deciding how these criteria should be prioritized, monitoring the progress, and evaluating the results. An important distinction concerns the type of problem that is faced. For well-structured problems, it is easy to determine which steps need to be taken to solve them, but executing these steps may still be difficult. For ill-structured problems, on the other hand, it is not clear what steps need to be taken, i.e. there is no clear formula that would lead to success if followed correctly. In this case, the solution may sometimes come in a flash of insight in which the problem is suddenly seen in a new light. Another way to categorize different forms of problem solving is by distinguishing between algorithms and heuristics. An algorithm is a formal procedure in which each step is clearly defined. It guarantees success if applied correctly. The long multiplication usually taught in school is an example of an algorithm for solving the problem of multiplying big numbers. Heuristics, on the other hand, are informal procedures. They are rough rules-of-thumb that tend to bring the thinker closer to the solution but success is not guaranteed in every case even if followed correctly. Examples of heuristics are working forward and working backward. These approaches involve planning one step at a time, either starting at the beginning and moving forward or starting at the end and moving backward. So when planning a trip, one could plan the different stages of the trip from origin to destiny in the chronological order of how the trip will be realized, or in the reverse order. Obstacles to problem solving can arise from the thinker's failure to take certain possibilities into account by fixating on one specific course of action. There are important differences between how novices and experts solve problems. For example, experts tend to allocate more time for conceptualizing the problem and work with more complex representations whereas novices