Is it really cheating. If the goal is to learn the material using someone else's solution is incredibly helpful and can expedite the learning process. If there is a process to master a skill in 20 hours and another way to master it in 5, only the fool would chose the 20 hour process.
When I took electrodynamics the first semester I worked through all the problems myself. I started on Sunday would ask questions Monday and Tuesday where I was stuck and the process took me 20ish hours each week. When I took the second semester, a couple of the other students had the solution manual. I would attempt the problem, then when I got stuck, I would consult the solutions manual, understand what the solution manual was doing, then go back to my work and understand the problem. It would help me track down errors I made in algebra. I ended up spending about 10 hours a week on the problem sets, understood the material better (as well as the material from other classes) and got better grades (on both tests without solutions and homework).
I used to tutor kids in physics and one of my students went from a C at midterm to an A because there was real time feedback for the homework he is trying to do so he was able to grok the material. Worked out solutions to the homework problems is the next best thing.
When I was teaching myself machine learning, it was the same deal, I started working through other peoples worked out problems, it helped me grow my programming skills and learn machine learning more effectively. I would take their code break it down, add comments to lines I didn't understand on first reading and ran the programs.
Learning from solutions is one of the best ways to learn. And it is stupid to have to do twice as much work for the homework problems because some kids might cheat themselves. The alternative for students who have gotten behind or don't know the background is that they don't learn the material because you don't have . The solutions manual gives them an opportunity to catch up.
> Learning from solutions is one of the best ways to learn.
Sometimes I feel like that's the only way to learn. There's no worse feeling than staring at a problem and having no idea where to start with no one to guide you.
The corollary is that I feel sometimes it becomes _memorizing_ instead of _problem solving_.
In a certain aspect, problem solving is recalling previous solutions you've done and applying various parts of them. But in another sense, just memorizing solutions doesn't necessarily help you apply them.
Reading your comment made me realize that this practice is common within programming itself where frameworks/languages often strive to provide “fully contained examples”. When I’m learning a new framework, I will often first look at how others have written to learn things faster.
If your only goal is memorizing the material, then sure. But usually it is a goal in of itself, to apply knowledge to novel problems and develop a solution. There are no solution manuals to unsolved problems. If you went your whole graduate education not working on the ability to approach problems you haven't seen, you will not do very well in research, and many aspects of professional life.
But sure, if you do a first pass without a book, spend sufficient time trying to figure it out, then a solution manual is helpful if you are not getting the feedback loop of a professor.
Well the feedback loop is much faster with a solution manual than a professor. I agree there is a line between leveraging the solution manual to teach yourself more quickly and just copying the solution. My quantum mechanics professor would give us the solutions to the homework before we were expected to turn it in so that we could learn from his explanations.
I agree that you have to a some point learn how to approach problems which you haven't seen before, but almost every field I have seen, the right way is to start by copying solutions of others until you understand it and then riffing from there. My father was a professor/researcher and he said you shouldn't start a problem unless you knew what your solution was and what you expected it to provide.
In fact much of the research work I have done is see if technique from field x will apply to field y after I have become an expert in field y. Or push to edge of field y and take the next logical step. But pushing to the edge of field y almost always requires working through the solutions of the people who have been there before rather than reinventing the wheel.
> I started on Sunday would ask questions Monday and Tuesday where I was stuck and the process took me 20ish hours each week. When I took the second semester, a couple of the other students had the solution manual. I would attempt the problem, then when I got stuck, I would consult the solutions manual, understand what the solution manual was doing, then go back to my work and understand the problem.
At the university I attended, this would be an honor code violation. But I agree with the value of worked problems.
When I took electrodynamics the first semester I worked through all the problems myself. I started on Sunday would ask questions Monday and Tuesday where I was stuck and the process took me 20ish hours each week. When I took the second semester, a couple of the other students had the solution manual. I would attempt the problem, then when I got stuck, I would consult the solutions manual, understand what the solution manual was doing, then go back to my work and understand the problem. It would help me track down errors I made in algebra. I ended up spending about 10 hours a week on the problem sets, understood the material better (as well as the material from other classes) and got better grades (on both tests without solutions and homework).
I used to tutor kids in physics and one of my students went from a C at midterm to an A because there was real time feedback for the homework he is trying to do so he was able to grok the material. Worked out solutions to the homework problems is the next best thing.
When I was teaching myself machine learning, it was the same deal, I started working through other peoples worked out problems, it helped me grow my programming skills and learn machine learning more effectively. I would take their code break it down, add comments to lines I didn't understand on first reading and ran the programs.
Learning from solutions is one of the best ways to learn. And it is stupid to have to do twice as much work for the homework problems because some kids might cheat themselves. The alternative for students who have gotten behind or don't know the background is that they don't learn the material because you don't have . The solutions manual gives them an opportunity to catch up.