Skip to main content

Preface Preface

This book is intended to introduce the reader to the productive use of the Sage library in the study of combinatorics. The focus is on topics that might reasonably be addressed in an introductory undergraduate course for interested students concentrating on the study of mathematics or theoretical computer science. We cover basic and advanced techniques for “counting”, which is, more precisely, the practice of determining the cardinality of finite sets. Then we turn to basic topics from graph theory, concentrating on simple graphs. A section on block designs demonstrates another area of Sage's strengths while also indulging an excursion into a treatment of one of the author's favorite things.

The relationship between Sage and combinatorics here is a two-way street. We intend to educate the reader in how to use certain commands and constructions in Sage. But we also intend to show how skilled use of Sage can help the reader understand combinatorics better, eventually perhaps even for research into new unsolved problems in the discipline.

Besides telling you what this is, we should take the complementary view and tell you what this is not. This is not a primer on how to setup and get started with Sage. Nor does it address the topic of basic interactions with Sage. There are many resources for this–perhaps the most comprehensive, and aimed at the same audience is Greg Bards XXXXXXXXXX. Sage is basically a massive Python library (one of its strengths) and similarly, this is not a primer on the popular Python language. We do not assume you know Python at all, and it is not necessary to learn any to get started. If you work through the material carefully, or should you learn how to use Sage in some other way, you will learn a great deal of basic Python syntax by osmosis. This is also not an introductory textbook about combinatorics. We assume you are gaining familiarity with the topics through some other resource, likely in roughly the same order as our presentation (but surely not in exactly the same order).