This text offers insight into how computation is used to solve a variety of interesting and important real-world problems. Taking an active learning approach that uses hands-on projects to teach computer science concepts and applications, the text encourages students to explore computing ideas by running programs and testing them on different inputs. It requires no prior experience with programming and includes a set of exercises at the end of...