We're building a backyard shed, and I recruited a certain young teen to help. Sooner than I expected, he was back inside the house. "Finished already?" "I need a rest." But I only see two or three pieces of wood carried from the under-roof storage area to the work zone. It turns out that he kept bringing the wrong piece of wood (2 x 4 when asked for 2 x 6, or 8 foot when asked for 10 foot) and having to take it back and go get the right one. This is tiring, of course. But I also found it illuminating because a similar thing happens with my new hires who are straight from school or university.
In an academic setting, if I assign you the task of getting me a 10 foot 2 x 6, and you bring me a 10 foot 2 x 4, or an 8 foot 2 x 6, I will probably give you a pretty good mark. Not 10/10, of course, but at least 7. After all, you have brought me wood, as opposed to a rabbit or some mashed potatoes. You have come back with something, rather than wandering off into the woods to play or inside to watch TV. You have even got one of the dimensions right and the other close to right. So you receive your mark and you're done. Similarly when I mark a programming assignment, maybe I spot a logic flaw or other mistake, your code won't work under certain circumstances, but it works some of the time, or almost works, or at least doesn't always blow up. I can give you 7/10.
In the real world, whether of shed building, or code writing, things are more binary. I have the wood I need or I do not. Your code meets our standards or it does not. And here is the key thing - you have to make it right. Take this wood back and bring a longer piece, or a wider piece. Take this code back and make it so it can accept strings with apostrophes in them, or so the title is centred, or whatever other bug you need to fix. You're not done until it's right.
It's a lesson that probably needs to be taught more explicitly to the new grad. It wouldn't hurt to teach it a bit in those academic settings.