Nobody is an average student. So, don't call yourself that :)
Programming is actually a lot about perseverance.
As far as your assignments or the programs you write in your hands on sessions in university go, what you're doing is not something out of the ordinary. I wouldn't think you would give up or ask your friends to do it, if there was no grading or there was ample time available to solve your assignments.
I think you should start building side-projects. You're doing it just for yourself - there is no teacher or a boss supervising over you. Besides, you have the freedom to do whatever you want to do. I don't think you'll slack off or give up, there :)
If that doesn't work, a time will come when you've to start working, during which you'll have no choice but to fight it out and not quit.