This paper proposes a relationship between design thinking and computational thinking. It describes design thinking and computational thinking as two prominent ways of understanding how people address design problems. It suggests that, currently, each of design thinking and computational thinking is defined and theorized in isolation from the other. A two-dimensional ontological space of the ways that people think in addressing problems is proposed, based on the orientation of the thinker towards problem and solution generality/specificity. Placement of design thinking and computational thinking within this space and discussion of their relationship leads to the suggestion of a dual process model for addressing design problems. It suggests that, in this model, design thinking and computational thinking are processes that are ontological mirror images of each other, and are the two processes by which thinkers address problems. Thinkers can move fluently between the two. The paper makes a contribution towards the theoretical foundations of design thinking and proposes questions about how design thinking and computational thinking might be both investigated and taught as constituent parts of a dual process.