Some teachers give far more homework than is necessary to learn the material. I understand that not all learn as fast as I, but it really can get ridiculous and become a waste of time, which makes kids not just hate the homework but school in general. I like my calc class so much more this year because it's like many college classes--the homework is optional. I get A's on the tests w/o doing the homework, so why should I do homework?
Teachers need to make the material more interesting by applying it to the real world more. So many times in my calc class I've heard "Why do I care about whether this series converges?" and the like. Teachers need to come up with interesting ways to teach and show how it's actually used so that the students will care.
I like learning infinitely more when I'm building apps at home than at school, and it's not just because I like coding more than other stuff. I see it's use. The use of learning about lamdas is so that I can make x work so that this app will do what I want it to do.