Hi, I'm the author.

You're of course welcome not to recommend my book to anyone for any reason. But in my own defense, my reluctance to release solutions is not a moral stance, or a belief that I know what's best for all learners. I completely agree that a textbook with solutions would be a better resource for independent learners than a textbook alone.

But my first allegiance is to my students at Illinois. My textbook grew out of course materials for the algorithms classes I've been teaching at UIUC for more than two decades, and it's still the primary reference for those classes.

I religiously release solutions to my homework, exam, and discussion problems every semester, but only after the homeworks are due, exams are taken, or discussion sections are over. (Experience strongly suggests that having homework solutions _after the fact_ significantly improves later exam performance on similar questions.) I also include at least one solved problem in every homework assignment, to help students calibrate the level of rigor and detail that we expect, and to give a worked example of the type of problem that the assignment is covering. (This pisses off several of my colleagues, who really wish I wouldn't publish solutions at all.)

But whenever I've assigned homework or lab problems whose solutions are readily available _in advance_—either from me or elsewhere on the web—students have performed worse on average on similar exam problems later in the same semester. I take that as strong evidence that they didn't learn the material as well. This isn't a philosophical or moral stance about what students _should_ do; it's an empirical observation.

tl;dr: In practice, releasing solutions in advance hurts my primary audience. That's why I don't do it.

"Why not just make up new problems every semester?", I hear you ask. I do make up new homework and exam problems every time I teach, which is why the textbook has so many problems, but not enough to fill an entire course. Developing problems that are substantively new (not merely old problems in new clothes), focused on the target skills, and neither too easy nor too difficult to be pedagogically useful, is *HARD*. (Most competitive-programming and interview-practice questions are terrible, because they're not designed for the same purpose.) I do it, because I have to, but it's one of the hardest parts of teaching this material, and I don't always succeed. Other parts of my job life also require time and attention, and I'd really like to sleep, so yes, I do rely on good problems that I've used before,after they've been fallow for a few years. (The same goes for the other algorithms faculty at Illinois and elsewhere.)

Similarly, collecting all (or even a significant fraction of) the problem solutions and polishing them into a common publishable form, even just for instructors, would require a serious amount of work, especially without a professional editor (because I'd want to self-publish, so that I could give it away free). Finishing the textbook required a full-year sabbatical, free from my usual teaching and committee work. Again, I'd like to sleep.

I completely understand and sympathize with your frustration, but I still believe I made the right choice. I'd like to think that my textbook and other course materials are useful even without solutions; otherwise, I wouldn't have published it. But it can't be all things to all people.