We recently had a discussion about the usage of the word "expert" in the FAQ: the consensus being that this site, while not necessarily only for experts, is for professionals. Aaronaught's excellent answer to whether we need a "General Reference" close reason also discusses the importance of this site being both "advanced" and "disciplined".
That's not to say if you're not a classically-identified "professional" (i.e., you're a hobbyist or someone who does programming as a tangential job duty) your questions aren't welcome here, but that the site doesn't cater to non-professional-level questions.
So, for the most part, people using Programmers for homework help or class supplements are probably in the wrong place: stuff like "can you explain to me when I would need an array?" or "What's a good language to learn as a teenager?" are routinely closed as being either too broad or not constructive, and I have a hard time imagining questions that would be class assignments and on-topic here.
At the same time, we shouldn't be calling people out with the scarlet homework tag, adjusting the level of content in answers, or closing questions for something that happens to be part of a class assignment. If someone's asking a question that's similar in scope and expertise as other questions on the site, they're fine, even if they happen to be homework: treat them as you would any other question.
And for educators, I think it's important to realize we can't know if a question is homework or not, and given the intended audience of the site and the goals of the network, it'd be untenable for us to accommodate special homework-only rules (like not providing full and complete answers, or using the Socratic method). If a student happens to ask a question here and it meets the site's quality guidelines, it'll definitely be answered.