By now, Scheme is a well-established programming language and is finding increasing popularity in programming courses for undergraduates. This undergraduate textbook provides a first course in programming in Scheme and an introduction to programming principles.