First of all, DataLore is a great tool for teaching. I can share screen and notebook simultaniously and allow students to copy parts of the code into their own notebooks and run it as I speak. Sadly, it is not fully available in Russia right now, so I can't use it.
File based notebooks are also quite useful. I share those notebooks with students and they do not have to make the whole project setup thing. Right now I do no explain the build system until the middle of the term because build system is not easy to understand from the beginning. I start with notebooks only both for lectures and homeworks and only then switch to projects.
As for homeworks, it is easy for students to share a single-file notebooks instead sending project archives or sharing their work on github.