Design for Thinking: A First Book in Semantics