This book aims to take beginner and intermediate programming hobbyists to the next level by challenging them with exciting bite-size projects rooted in actual scientific and engineering problems. Each chapter introduces a set of simple techniques and shows a variety of situations where they can be applied. The main feature of the book is the choice of topics that are designed to be both entertaining and serious. Most of the projects strive...