The Competitive Programmer Graphs Handbook
An upcoming ebook about three significant topics inside the Graph Theory field.
Graph theory is a field of Mathematics and Computer Science that studies graphs’ properties.
Thanks to graph theory, it is possible to model and solve numerous problems of different kinds, including those in computational drawing, engineering, vehicle routing, genetic biology, and social sciences.
As a former Competitive Programmer, I faced numerous problems for which the solution lay in graph theory. Graph theory ended up being one of my favorite topics in Computer Science, and I was very fortunate to teach two semesters of this topic at my alma mater.
This book is a collection of graph theory problems I faced as a competitive programmer. I curated and refined this list of problems to teach you all the theoretical framework around three significant topics inside graph theory: bipartite graphs, functional graphs, and Euler paths. Each problem is accompanied by a detailed explanation and solution, providing a comprehensive understanding of the topic.
If you are interested in a hands-on deep dive into the beautiful world of graph theory applications, with a focus on implementation details and the development of a mind framework for detecting and tackling graph theory problems “in disguise,” then I’m writing the perfect book for you.
Wait, what?
Yes, I am writing about one of my greatest passions in Computer Science. Having solved over a thousand graph theory problems over a period of five years or so, I have gained extensive experience in this particular field, which I am excited to share with you.
You can see my love for the field because it has been a recurring theme in my posts about algorithms and data structures. Of the ten editions so far, six have been dedicated to exploring graphs in some way.
This will be a pragmatic book focused on enhancing your sharpness. It will provide theory without overwhelming you, and it will rely on examples so that you can try it before I explain any solution. By following the practical approach of this book, you will gain the confidence to tackle graph theory problems effectively.
I particularly enjoy these types of reading because of the flexibility of suddenly skipping a section if you find it too hard, just to come back at it a few days (or weeks) later when you feel more prepared. But also, there’s no problem if you want to use the book as an encyclopedia of interesting algorithmic rarities, just for reference in your future work, for example.
How long until it’s finished?
I expect this long-term project to surpass a hundred pages of content. This includes some mathematical proofs, some pseudocode, and implementations of all the problems present in the book in a high-level programming language.
Being optimistic, I expect to finish it before the year is done, but you don’t have to wait that long. This is a book I’m writing in public, so I will update you whenever a new version is available. This is also the best way for me to get early feedback from the readers in these initial stages.
Where is this book?
I like to share all my educational content for free. That is why every major update in the book will have a corresponding free article in the Algorithmia section of this blog. After some refining, some of what has already been written there will be included in the book.
However, writing a book is a significant undertaking that requires substantial time and effort. So, I hope to get some of you to support this project financially and gain early access to the ebook, which will be extended, professionally edited, and beautifully illustrated.
While all the content will be published here for free, the book will probably go one order of magnitude deeper in terms of quality and rigor. Plus, you will see the connections between recurring ideas more clearly when everything is packed in a single place instead of in individual articles.
How to support the book?
It would seem that becoming a paid subscriber is the most reasonable option, but I don’t want to overwhelm you with one more subscription that you have to keep track of. If you want to go with this way of support, then by all means, feel free. But I think I have a better idea in mind.
The best way to support this project is to get early access to the ebook at a meager price during development. This gives you lifetime access to all versions, updates, and future editions of the book. Also, I'd like to point out that the price will drastically increase once the final product is ready for publishing.
This way goes the extra mile. It feels like whoever decides to get early access to this ebook genuinely cares about my writing, and, in some sense, it’s deciding to be a part of it.
I cannot hide my excitement about this new project, which I have been dreaming of my whole life. Writing a book has been in my backlog ever since I first discovered the wonders of literature. Combining my passion for writing and computer science is a tremendous privilege.
And that’s it for today! If you are finding this newsletter valuable, consider doing any of these:
1) ✉️ Subscribe to the newsletter — if you aren’t already, consider becoming a free or paid subscriber.
2) 💛 Make a one-off contribution — thanks to all of you who have contributed to support my writing. If you feel like you are not ready for a paid subscription, consider leaving a one-off contribution if you enjoyed this post.
3) 🍻 Read with your friends — this newsletter grows because readers share it. I don’t use social media too much to advertise my writing. I’m counting on you!
Thank you for your support and interest in my work. I appreciate each and every one of you.
Have a great day! ☀️
Alberto