How to deal with the wealth of "help" available for programming assignments?
Most people should require nothing more than the textbook and my lectures.


Probably most professional programmers today could do their jobs armed with nothing but the lectures from their programming coursework and the complete official reference material for the programming languages and libraries they are using. But why would they, when there are much more useful resources available online that allow them to do a better job, more quickly?

Your students (understandably) approach this the same way. Why would they do their homework with just the textbook and lecture notes, when this isn't the most efficient way (with respect to time, getting a good grade, and actually learning)? (Yes, the Internet can be a tremendously useful aid for learning and not just copying.)

In my experience, the best way to deal with students using online resources is:


Encourage students to use online resources. Recommend specific online resources to them that you consider most helpful and reliable.
Require students to cite all the online resources that they used. (And depending on the assignment, to also explain how they used it.)
Educate students who use online resources that are flawed about how to better evaluate the online resources they choose to use. ("This website seems useful at first glance, but it actually doesn't apply to the problem in the homework assignment. Here is how you could have known that...") If you do this successfully, this will probably be the most valuable thing they learn in your class.
Assign a mix of problems, including some that can't be answered immediately with a simple Google search.


If you want them to have some practice solving programming problems without the assistance of the Internet, you can occasionally give them a small (&lt; 10 minute) problem to complete in class.