Comment by rahimnathwani
3 hours ago
I think we're using two standards without naming the difference.
- "Responsible for the code", i.e. understands it, can explain it, can modify it on request, is the right bar for a working engineer using an LLM to go faster. But it's the wrong bar for a student, because in a course the deliverable isn't the point, the practice is.
I presume that as course like 'Parallel Computing' exists to build the habits of reasoning about decomposition, contention, race conditions, strategy tradeoffs. Those habits come from doing the reps, the same way you don't learn to write by reading good prose. Your two "successful" groups outsourced exactly the reps the course is (or should be) there to build.
Being able to follow and tweak a solution proves comprehension, but comprehension is a much lower bar than producing the solution.
Your students may understand this particular solution well enough to explain it. But did they learn enough that they could tackle a different problem with a different shape, without using an LLM?
I'm not a native EN speaker (I'm Portuguese), therefore a lot is lost in my attempt to find the right words. I'm writing these words without any use of AI or even a sentence-checker (only the spell-checker in Firefox).
Of course that the "succesfull" groups implemented their solutions, tweaked them and, tried their best to escape from race conditions and were able to talk about the performance/memory/etc. tradeoffs. We have a grid to grade for those and other items. They did not outsource all of their thinking to an LLM.. That is what I mean as taking responsability for their code, maybe not the correct word, but the one that came to my head when I wrote it..
Thanks. I'm still curious whether they could apply what they learned to a new problem, without using an LLM.