An introduction to computer science for non-majors using principles of computation

It represents a universally applicable attitude and skill set everyone, not just computer scientists, would be eager to learn and use.