Learning work is not work. It is learning. But it is still work, and thus most human will try to cut it.
Not doing homework just stacks learning debt and forbid to learn any more elaborated knowledge.
At AI time, my current strategies to teach CS:
1- My lectures start from the current state of the art and go down the basics. The lecture time is thus spend at my final desired level of knowledge. It is then clear and can be freely used at the exams. Difficult to go alone the reverse way from the basics to my goals as much more large knowledge spectrum must be acquired.
2- All my practicals use extensively the last language version (eg. C-23 arrays parameters, nullptr, threads, generic, bool, local storage, C++-23 ranges, threads, option, etc. ): never Python, never POSIX Threads.
2'- Alternative: low profile language: Algol68 in GCC-15 seems promising, but now I am using MODULA-2 for few small practicals
3- Humans learn by copying, thus producing any handwritten documents, even of some text coming from AI, wikipedia, or any cheating system, are fine enough. But, grade it "Fails" every time a student has copied (thus learned) a single obvious false statement (not done 5 second check in wikipedia) .
4- Ask questions with an easy answer in wikipedia but with low content overall on the web:
eg. history of computer science, about soviet union contribution: Andrei Erchov do not play a significant role in Algol68 development, nor soviets invents PASCAL, nor the Setun 1 was a mobile computer (AI improves over years, but still...)
5- Do computer lab exam on anonymous account without internet for any basic knowledge (perfectly working up to master level, with a nice IT Team able to set up local software and documentation)
6- Long term team projects are difficult for AI (1 month full time, 20 000K), or impossible (1 month full time, 2 000, highly technical lines)
7- Combining by pair false/true basic questions in multiple choices quizzes: 25% rate of random success.