For me it's ok, I guess. I have graduated years ago and it's strictly for fun. But I wonder if it also creates a kind of artificial divide for those not able to attend a university but could have gotten good use of this kind of material by self study.
Edit, found this quote from him on an earlier discussion which summarizes it nicely:
> I'm honestly seriously torn about this. There is a serious tension between pedagogical needs of students in formal classrooms and the pedagogical needs of self-learners. I've chosen to aim for the former. Yes, I know it's a bummer.
I think they've all evolved now to where that is only available for paid tiers.
One innovation I really enjoyed was marking and commenting another student's answers, once you'd submitted your own. There are flaws but it's a valuable variation on graded feedback.
I definitely agree with you on this. However, there are three things self-learners (or even students) can do.
1. Find a textbook with worked solutions or a different presentation of material.
2. Look for course material that has problem sets with solutions, worked tutorials, or worked examples.
3. Learn numerical or other methods to evaluate your solutions. I know this isn’t possible for proofs, but if it’s an algorithm’s run time, I don’t see how implementing the algorithm and plotting run times over different input sizes wouldn’t be a good way to see if you have the correct run time.
The right thing to do is to publish detailed solutions to textbook problems and create new problems for HWs.
No. He's the author, this is his choice. People who don't take his course don't have to use the book.
Exercises with no solutions are very hard for people learning away from traditional academia - I haven't read this book so I don't know what they're like, but in a physics books it's often common to add questions that take fairly deep conceptual understanding which if you don't click with the book means you're totally out of action until you find somewhere else to learn from.
The only person who seems to be getting “pissy” is you.
What is the point of making a comment like “if you don’t like it, leave?”. People who say this seem to think they’re some pithy genius but it’s not a comment that advances the conversation at all.
“Hey I have some feedback ...”
“I don’t accept feedback. Take it or leave it”
“Ok”
That’s not really what HN is meant for.
Does the conversation really need to be advanced? The author has chosen to not include answers and gave an extremely valid reason for choosing not to and HN'ers are, indeed, getting pissy saying the author should do the "right thing" and provide the answers.
No. Just no. The "right thing" is to accept that the author is choosing not to and move on if you need answers. The author doesn't owe anyone answers.
The discussion is about whether his decision may be criticized. Which it absolutely can be.
Again, saying, “if you don’t like it, leave” is not the genius rejoinder you seem to think it is. It doesn’t add anything to the discussion.
I could flip this back at you and say “if you don’t like this discussion, leave”. I’m not doing that because I choose to engage in a good faith discourse.
PDF of the book: http://jeffe.cs.illinois.edu/teaching/algorithms/book/Algori...
You could always publish the solutions in a separate paid ebook. If people want to be able to check their own answers, or they want to use the exercises to set homework and make it easier to grade, they might be willing to pay you for them.
Yeah that's an option too, especially with gumroad/leanpub providing version/packages for such cases.
In my case, I provide my ebook for free online (inspired by FOSS and authors such as Al Sweigart and Allen Downey) and charge for pdf/epub formats. Good enough to pay my living costs (and a bit more in recent months). So, I don't mind providing solutions as well.
- Defines a macro with no parentheses
- Uses unsigned for length and capacity (should be size_t)
- Uses () instead of (void) for an empty parameter list
- Useless use of "extern" for function declarations
- I think that leading double underscores and structures ending with _t are reserved identifiers, but I don't really have a good source for this
[0]: https://github.com/TheAlgorithms/C/blob/master/data_structur...
Oooo, nice. Thanks for the link!
>Please do not ask me for solutions. With very rare exceptions, I will say no, even if you are an instructor. I recognize that my stance limits the utility of these materials, especially for self-learners, but I'm trying to optimize the learning experience of my own students at Illinois. The point of homework is not to solve that particular homework problem, but to practice solving a type of problem and get honest feedback on your progress. I've found that when solutions are available, my own students are much more likely to rely on them, rather than trying to figure out the problems themselves, which means they get both less practice and less honest feedback, which means they do worse on exams and in the course overall.
Interesting. I was asked multiple times for solutions to my self-pub ebooks that I relented. I didn't add them initially as I wanted readers to solve by themselves or ask for help if needed (and I did get a few mails, saw one of them asked on stackoverflow as well).
See also https://github.com/tayllan/awesome-algorithms for more learning resources, practice problems, visualizations, etc.