8 ms·
Not proving solutions to textbooks seems to be a common theme in mathematics and theoretical computer science. It makes it difficult for those outside of the tr
by dkfjs 6y ago
Not proving solutions to textbooks seems to be a common theme in mathematics and theoretical computer science. It makes it difficult for those outside of the traditional classroom to learn the material. Instead textbook writers seem to have this adversarial approach against readers, thinking they’ll “cheat themselves” if they look up solutions or attempt to verify their work. Experts make mistakes, beginners would presumably make even more mistakes. Without a feedback mechanism beginners can’t truly know whether their logic is impeccable or if they have a subtle error that they themselves cannot detect. They could easily fool themselves that they have correct understanding.
Due to that I will not recommend this current book to any colleagues.
If you want an example of a fellow hacker news member that did things right, check out
http://joshua.smcvt.edu/linearalgebra/ http://joshua.smcvt.edu/linearalgebra/
He provides solutions and lecture videos... this is truly a democratization approach to learning and a model that other academics should follow.
- 30f0fn 6y agoThe book contents are FREE! Look away if you're offended.
- dkarp 6y agoThey weren’t attacking the author. It’s a valid argument regardless of the cost of the book. Free doesn’t mean you can’t criticize anything.
- macintux 6y agoThere was an accusatory, hostile tone that I personally found off-putting and not worthy of an HN discussion. asicsp’s comment[1] was much more useful and neutral. 1: https://news.ycombinator.com/item?id=26074429 https://news.ycombinator.com/item?id=26074429
- charlescearl 6y agoThanks for the reference. Another algorithms text -- though Haskell centric -- that provides solutions is Algorithm Design With Haskell [1]. The exhaustive Combinatorial Mathematics by Douglas West [2] provides hints at least. These are advanced texts though. Another source of solved problems are "problems in" books. Dover offers affordable titles like Fifty Challenging Problems in Probability [3]. There are other classics like Combinatorial Problems and Exercises [4] or Proofs from the Book [5], all with solved exercises. [1] https://www.cambridge.org/core/books/algorithm-design-with-haskell/824BE0319E3762CE8BA5B1D91EEA3F52 https://www.cambridge.org/core/books/algorithm-design-with-h... [2] https://faculty.math.illinois.edu/~west/ https://faculty.math.illinois.edu/~west/ [3] https://store.doverpublications.com/0486653552.html https://store.doverpublications.com/0486653552.html [4] https://www.ams.org/books/chel/361/ https://www.ams.org/books/chel/361/ [5] https://www.springer.com/gp/book/9783642008566 https://www.springer.com/gp/book/9783642008566
- unishark 6y ago> Instead textbook writers seem to have this adversarial approach against readers, thinking they’ll “cheat themselves” if they look up solutions or attempt to verify their work. I agree that worked problems make a text much more valuable and useful; even students in a class may spend a lot of time doing self-study. And for self-study, without worked problems the book is only useful as a reference while working problems from elsewhere. The author essentially agrees with this. However, it's not "thinking" students will cheat themselves, it's knowing for a fact that many will. If you give homework that takes multiple hours each week, then for students who have gotten behind or don't know the background they should, it will take multiples of that time. Many, if not most, simply won't do it if there's a shortcut handy. Challenging people to do more than they would on their own is necessarily adversarial.
- musingsole 6y ago> If you give homework that takes multiple hours each week I think I found the problem. Educators have such an obsession with homework and stealing more class time from their students they can't imagine different models where having the answers in front of you doesn't detract from learning. Have you never used flash cards? My answers are on the back and yet...
- unishark 6y agoI don't know what you mean by stealing. In college you are generally supposed to devote twice as many hours outside of class as in class. It's probably stated in your student handbook. That is why 12 to 16 credit hours is called "full time". In a problem-solving discipline the best way to spend that study time is solving problems. As a bonus you can get personalized feedback when it is graded.
- musingsole 6y agoI'm going to call that stockholm syndrome. Many people throw around the idea of spend twice as much time in class as out. That's a fine idea for some, but many don't need it. Forcing a student to fill out problems to satisfy the instructor's concept of enough time spent is completely tangential to purpose of an education. There isn't a requirement for the amount of time a MMA fighter spends in the gym. They set their own schedules and reap the results.
- le-mark 6y agoThis x1000, I was/am a particularly dense student and the only way I learned was by working loads of problems repeatedly until the “tricks” became second nature. The worst are solutions manuals with hand wavey solutions.
- tdudzik 6y agoIt's kind of insulting to assume that students are unable to decide what's good for them. If someone wants to cheat, he/she will do it anyway. Not providing solutions harms people that really want to learn the material.
- bloodorange 6y agoThe author of this particular book made his choice based on his experience teaching the course. While, of course no one can stop you from criticising his choice, on any day, I'd respect his opinion more than that of an angry internet commenter as he (the author of the book) has more invested in it _and_ has given free resource to the community after putting a lot of work into it.
- mindcrime 6y agoI mostly agree with your sentiment. But I don't necessarily see it as a question of respecting one opinion more than the other. The author of the book didn't make a statement like "books without solutions are universally" better or anything. But he did make it clear that he optimized for one particular audience (his students at Illinois) over another possible audience (self-learners). And on that, he totally has the right to make that choice. It's unfortunate that some commentators ignored that point, or choose to be critical anyway. OTOH, just because something is free doesn't mean that people can't criticize, IMO. The question just kinda becomes "what's the point of the criticism?" If one doesn't find this book useful, they're under no obligation to use it. And the author isn't likely to change his position based on a few grouchy Internet commentators. Personally I appreciate what the author has done and am glad his book is out there. Do I prefer books with solutions in general? Yes. Does that matter in this particular context? No.
- ycombobreaker 6y ago> If one doesn't find this book useful, they're under no obligation to use it. And the author isn't likely to change his position based on a few grouchy Internet commentators. Yes this is what I don't understand. Why are there so many critical posts about this particular decision? Why didn't those users just close their browser tab and move on with life? They are bring offered a free resource, it doesn't meet their needs/desires, they choose to complain. It seems very rude to me. The few who have suggested alternatives are contributing.
- tmotwu 6y agoI took this course a while back. Before every exam, students would create a massive crowdsourced google doc and attempt many problems in the book / fodder. Granted, we had TAs to review our results - but even they don't access to a solutions manual. But the docs were filled with comments, many different approaches and alternative viewpoints. The class discussion board was very active. I've never seen that sort of large scale student-led collaborative atmosphere in any other class. In that sense, I agree that this book isn't designed for self study. Every homework was done in groups of 3 and probably took a combined 30-60 manhours a week to complete. It would be pretty hard I'd imagine. The reality is - if you're a developer and someone asks you to develop a program that does x, you rarely have the privilege of having a complete source code waiting in the end to compare against. But you build it iteratively. You do a bit of research. Sometimes you ask for feedback through a pull request. You think about every corner case and edge case. These are all basic practical skills you don't get to exercise if your mindset is to just grind through math problems. These days, the internet is full of knowledge, social and connected as it can possibly be. StackOverflow and research papers are one google search away. (I say this because every problem in the book are usually based on very interesting theoretical CS papers) Discord servers have become huge chat rooms for people to organize like-minded individuals. Assembling a group of motivated individuals online and working on problems together is a very effective way to learn than trying to dive into material by yourself. Whether it be this book or any other textbook. I don't think this book should be faulted for trying to incentivize that philosophy.
- yifanl 6y agoIn a previous post, the author responded to this concern: https://news.ycombinator.com/item?id=18808010 https://news.ycombinator.com/item?id=18808010 It seems like he will include a subset of solutions in a later edition, whenever he has time to publish it.
- alanfranz 6y agoI think the ideal would be something like an autograder, rather than a solution. There used to be a Coursera class from Princeton that relied on Sedgewick and Wayne algorithms book, and the class was very, very good. Then we must hope people don't publish solutions on github!
- dls2016 6y agoor chegg barf
- jefferickson 6y ago> I think the ideal would be something like an autograder, rather than a solution Me too! But I don't know how to write a useful auto-grader for free-form English text and pseudocode, and neither does anyone else. Even a pedagogically useful auto-grader for actual _code_ — one that doesn't just check a bunch of test cases, but diagnoses the code to identify design errors and offers specific feedback for improvement — would be utterly revolutionary.
- alanfranz 6y agoIIRC the Coursera class autograder used actual code, and offered _some_ design improvement suggestions - about code correctness, edge cases, speed. Of course, it couldn't point out other design flaws. I think that the Java used in that class was a good approach. By limiting the packages you could use, they prevented leveraging builtin facilities (e.g. Java collections) and forced people to write their own data structures.
- victor106 6y agoI agree with this 100%. It’s really hard for everyone when there are no solutions provided. Even if you arrive at the correct answer it’s nice to know how the author is thinking about the problem
- ohdannyboy 6y agoWhile I agree that this book isn't very useful for self learning, I have to defend the model you describe as adversarial. I took CS473 at UIUC (it's CS374 now) so I can tell you firsthand the course is brutal -- easily the hardest course in the CS program. You're given a LOT of resources through office hours and everyone uses them. The TAs are good at leading you down the right path instead of just showing you the answer and making you feel like you connected the dots (you probably didn't). Most of the answers are on Chegg if you want that, although I think Chegg is the worst thing ever for actual learning. Unfortunately I don't have a good solution for the self learner here... There is no way in hell I would have gotten through that class without the TAs and workgroups. Just being able to peek at the answers would have been terrible.
- zinclozenge 6y agoIn the former situation you described, the actual textbook doesn't matter, it's all about the resources you described to help you along. In a lot of cases, those resources just don't exist, even at universities. That's why worked examples and problems with solutions are so invaluable. In fact, they're so valuable, I've spent half a decade compiling these kind of resources for mathematics and physics, back when I was a master's student. I literally crawled through professor course pages manually downloading pdfs.
- mcguire 6y agoIs that Computer Concrete Roman?! I guess I'll have to go through this one.
- jefferickson 6y agoNope. It's Bitstream Charter.
- jefferickson 6y agoHi, 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.