This book has been divided into two parts. The main reason for that is that I wanted to make a distinction between, on the one hand, relatively basic notions that are really necessary for any programmer using Perl 6; and on the other hand, more advanced concepts that a good programmer needs to know but are possibly used less often in day-to-day development work.
The first eleven chapters (a bit more than 200 pages) that make up this first part are meant to teach the concepts that every programmer should know: variables, expressions, statements, functions, conditionals, recursion, operator precedence, and loops, as well as commonly used basic data structures and the most useful algorithms. These chapters can, I believe, be the basis for a one-semester introductory course on programming.
Of course, the professor or teacher who wishes to use this material is entirely free to skip some details from Part I (and also to include sections from Part II), but, at least, I have provided some guidelines on how I think this book could be used to teach programming with the Perl 6 language.
Part II focuses on different programming paradigms and more advanced programming techniques that are (in my opinion) of paramount importance, but should probably be studied in the context of a second, more advanced, semester.
For now, let’s get down to the basics. It is my hope that you will enjoy the trip.