* Do not use variable length array in this class
* Some of are you are copying code and concepts from things outside of course material
* `fgetc()`, `sizeof()`, `malloc()`, etc
* You're probably cheating.
* You're also making your life more difficult
I always found these sorts of instructions quite frustrating as a student. If I'm a student enthusiastic about learning a language, I would have definitely been one of the kids trying to figure out how to use malloc and creating novel approaches to the projects that are assigned to me. It's a university class, why the hell not? Besides, isn't that going to be an advantage towards me considering the code is going to be evaluated by a anti cheat engine?The AI stuff aside, this comes across as a professor who feels threatened when his course isn't taken as doctrine. Being called a cheater for using external resources is ridiculous to me.
It’s fine to say solve this problem using the following tools, but not great to say “if you find another approach, I assume cheating.”
While there are certainly a handful of experienced students that use these things, ten years+ of experience shows that most are copying from elsewhere. A simple, brief meeting with the student is easy enough to ascertain that, however. And that was certainly a part of the process.
Regardless, that alone would not have triggered an academic integrity investigation and, again, there was no prohibition here.
Students are human. Many have been taught to focus on one end goal: a grade. They see a mythical program that knows 6000x more than is taught in this 200 level course; of course they want to use it!
This was definitely a problem in classes before AI. I had a number of infuriating teachers who insisted on failing me for doing X, because "you're going too fast and we haven't gotten to X technique yet."
That said, having to do the introduction to programming class at uni despite programming for like a decade in high school was the bigger annoyance.
This is a horrific policy. We work better with other people.
When I studied computer science, other students came to me for help. I helped them. We discussed problems together. I saw their code. They saw mine. No one copied: we shared approaches and style and thinking. I shared how I solved things. They learned my thinking. By explaining, I understood what I knew better. Sometimes I learned from them: an idea I wouldn’t have had alone, a new direction. All of us were better off. This was across multiple people.
It was in no way discouraged and so long as you wrote your work — while asking others for help was fine — you were okay.
Humans learn through teaching. We learn through discussion. We learn through interaction. Solitude — ‘do not work with other students. At all’ — is the exact opposite of a healthy learning environment.
I don’t care what their artificial intelligence policy is. I cannot state strongly enough how much I revolt against their human intelligence policy.
As for the lecturer’s warnings in slides: that reads like a trap.
For people that haven't spent time teaching lower-level programming courses, policies like this may seem overly harsh. But, remember, they're not solving particularly advanced problems at this stage. Instead they're mastering fundamentals. An analogy I like to use is learning to play the piano. If someone else is doing it for you, you're not going to develop the skill.
The main reason for the policy is that many students are not able to walk the line between leading someone to a solution and giving them a solution. The teaching staff know how to do this. When students help each other in situations like this, many times they end up just providing code or allowing someone to look at their code (ultimately copying it), etc.
We need students to work together and share their experiences. Then we need each one to achieve the learning goals (and we should not assess work they did far from our eyes. We should assess their understanding and skills in front of us).
Sorry, if your answer as to why using a beneficial pedagogical approach is your class sizes are too large, then it sounds like your class sizes are too large!
standardized and written tests, online school, homework, etc is just a way for professors (and increasingly, just TA's) who have no interest in teaching, to get the job done with less time and more efficiently.
Oral exams solve this problem entirely
>> Do not look at other students’ homework files and do not work with other students. At all.
> This is a horrific policy. We work better with other people.
I think that line was in connect with quizzes, which are presumably online. Near the top of the article it says > You may discuss assignments in a general way with other students, but you may not consult anyone else's work.
I'd be with you if they made everyone work in "clean rooms" but that is appropriate for quizzes and tests.As someone who's graded lots of undergrads I can tell you that cheating is prolific. It's easy to identify who is copying code, but it is hard to prove. My wife teaches in another department and says the same thing. AI use has grown exponentially and it's really destructive to the education process. Though I have more complex thoughts on this and that it is just exacerbating larger problems that no one wants to actually solve because they'd be very hard to solve in a way you can have clear metrics for the bureaucrats (including industry). Proper evaluation is unfortunately always going to be fuzzy. Metrics are in contention with making a meritocracy, especially if you don't have a deep understanding of said metrics
Clearly in this world the frats and the sorority members get the highest scores, and after that the best looking, the most amusing or charming etc.. so unless that’s the intent the whole approach is perhaps worth reconsidering.
If you want to teach to improve your understanding the normal thing is you become a TA so that access is open.. not open every assignment to ad hoc collaboration so you disadvantage half of the students on every assignment
As you point out, there are plenty of students who flat-out copy each other. Filtering out those students does plenty to enrich the remaining students, you don't need to go on witch hunts to find ever-more subtle cheating.
That some 50% are using the LLMs rather than spend effort learning is not a cause to remove the ban of LLMs in the classroom.
90% of the power of an LLM is being yourself competent enough to judge its outputs. Besides, do we really need more humans coding like LLMs?
The title includes “retrospective” but the learning and changes following such a process are absent.
working in a team is valuable. but that value is proportional to the teammates chosen. teammates who have worked alone and can think through their decisions are more valuable, thus it is this way.
>AI merely amplifies extremes, it’s a factor but neither the cause nor culprit here.
you may have missed this part: ~As discussed in the paper, we have also run the tool against earlier semesters with very compelling and interesting results. In particular, the indicators that we use are virtually nonexistent prior to 2024 and their presence increases rapidly over the following years.~
So it stands to reason that LLM's are in fact, the culprit here.
If society offered some reward for lifting the weight while not enforcing how, forklifts would absolutely be used to lift weights.
Prof: "I know you cheated."
Student: "How do you know it, can you prove it?"
Prof: "I have ways, trust me I know."
Student: "I know the material, I'll re-take the test right in front of you if you want."
Prof: "Either admit that you cheated and get a F, or don't admit and I'll send you to the school's academic integrity department."
"Okay, but that's worse. You do get how that's worse, right?"
As far as the "comically inept" setup, I think that's acknowledged in the retrospective - including an apology.
The author concludes near the end:
> That said, I have no judgment to pass on you here.
And follows with this as the very next sentence:
> We are all human beings, we all make poor choices and mistakes in our lives.
Which seems to be clearly judging the students for their "poor choices and mistakes".
I feel the author is out of touch with the students and the times; If so many of them are leveraging AI perhaps the better move is to find ways to align that usage with learning. He quotes:
> "it is better 100 guilty Persons should escape than that one innocent Person should suffer"
But if there is such a scenario in a classroom rather than a courtroom, then perhaps the methodologies should be revisited?
It feels like the author is the ACKCHYUALLY meme, striving to prove themselves technically right, rather than empathizing with the students, which I feel shows a lack of maturity for an educator more than 2 decades older than his students.
I understand that education and evaluation is difficult in this AI era, but I can't come to agree with the author's actions or conclusions in this case.
I am curious what leads you to believe that there's a desire for someone to agree with the actions when the retrospective opens by saying the situation should have been addressed better.
The way you leverage AI for learning is to do the work yourself and ask it to review and provide feedback, or to ask it to explain some concept, ask it questions to check your understanding, ask it to generate questions for you to answer, etc. If the entire point of the exercise is the exercise, then generating the answer... misses the point.
Like I can easily find online how to encode if statements in the lambda calculus, or how to make a half-adder out of logic gates, or how to prove that bijections are invertible. It's always been cheating to not do it yourself. School intentionally gives you easy problems with known solutions, not open research problems where you should use any and all tools and information you can find.
Should the course be updated to better leverage AI? Sure.
But as a student, if you're explicitly instructed not to use AI for a particular course/assignment and you do it anyway, that's academic dishonesty. No matter how much you disagree with the principle of the thing, you still lied and cheated.
It's probably best going forward to grade only in-person proctored exams using paper, or offline air gapped computers in the case of programming courses.
Also, I never had a computer science class where exams were administered on a computer. I only graduated like 10 years ago, too. I shit you not, even my x86 assembly class was all pen and paper too, and yes, we were graded for code accuracy.
No doubt the student body will learn this lesson, and in the future the number of students identified as having cheated will be near zero.
We had to add a new significant assignment which was the student sitting down next to me and we both look at their code and I ask questions.
Our policy for the project wasn't even anti AI, it was simply "do not submit code you do not understand" so obviously we had to test understanding, but already with 90 students it was hard, I don't know how you would manage something like this with 500
> Through careful analysis and manual review, we have identified what we consider to be clear and concrete indicators in one or more of your homework assignment solutions that it was partially or entirely generated by an AI/LLM tool like ChatGPT, Claude, Copilot, etc....
> You are required to submit a response to this form....Failure to respond will result in a grade of 'F' for the course.
> Honest responses that align with our analysis will result in a score of O for the identified assignment(s).
> You also have the option to meet and dispute our findings. Should you choose to do so and we determine that our original findings of AI/LLM usage stand, we will instead apply the standard course policy from the syllabus and assign a grade of F for the course.
The above letter sent to a bunch of students.
> It is an open question whether this is reflective of their actual behavior or instead something that underscores the purported, and unintentional, potentially coercive nature of the form.
Sounds like the professor discovered (or disputes the possibility of?) the concept of forced confessions.
"Honest responses that align with our analysis": did the professor consider the possibility of dishonest responses that align with the analysis?
"Should you choose to do so and we determine that our original findings of AI/LLM usage stand" Not much needs to be said about that.
If the professor was confident enough about the analysis to send the letter, then all of the students getting the letter should have gotten an F and no letter at all.
> If we find reason to believe that a student or team has cheated on any assignment, we may inform the student or team promptly, or we may decide to silently accumulate evidence against the student or team on later assignments.
Why role play what you may or may not do if you encounter cheating.
The university has rules about how academic integrity is handled independent of the syllabus.
Including this line in the syllabus, and again at the top of the blog post is weird
Students cheating at lower-division university level courses is almost entirely a symptom of the students being poorly suited for the course material. Students who are interested and capable, but overwhelmed with the amount of work tend to just turn in incomplete assignments, or not turn in work at all. Encouraging the cheaters to drop while they can still get "dropped" rather than an "incomplete" or "F" is in everyone's best interest, as it provides an opportunity to consider a pivot to something that interests them more.
IMO, the overreaction by the professor was seeking further penalty for students who already dropped the course, or who would do so when confronted with their misbehavior. A student who cheats in CS is not necessarily a student who will cheat at chemistry, or business, or journalism. If they've already dropped out of CS, there's little benefit to be gained by pursuing the matter further.
Anecdotal but not in my experience. The professor can inform students, collect evidence, etc without detailing each scenario in the syllabus.
Every CS class I’ve been a TA for had the same generic university provided statement on cheating.
The professors did not want to spend time thinking about or dealing with people cheating.
Every time MOSS flagged assignments they basically sat with me and the student and said “You are likely cheating. Please don’t do it again.”. No one ever admitted to cheating and no one ever got flagged twice.
It would be more like a low level manager telling new employees what he would do if he ever catches them stealing office supplies.
The university has a policy on how to handle cheating. The professor doesn’t need to imagine potential scenarios in the syllabus
I had a similar problem when doing my MBA; Lean Startup had just been released and the whole "startup scene" was getting going. But I couldn't use any of that in my MBA entrepreneurial course, because no-one had written a paper on Lean. I had to write business plans (which, obviously, no-one was doing out in the real world). I was being taught a useless skill because academia couldn't adapt quick enough.
For these CS grads who are being punished so harshly for using AI, the same: the first thing they will meet when they start their new developer job is a Claude prompt. Their CS course will not have prepared them for this, and they will suck at using an LLM to generate code.
There is an argument that universities should not be vocational, and should teach people how to be better humans, not better employees. I agree completely with this, but that also means universities need to stop advertising how getting a degree leads to more lucrative employment. Which is it?
Because if it is vocational, and if a CS degree is supposed to lead on to a career in software development, then they need to teach orchestration not C. We don't teach prospective developers how to write machine code on punched cards any more, for exactly the same reasons.
You're assuming that this policy continues for higher level courses. It does not. Use of LLMs is discussed, and in some cases even encouraged, in higher level courses like Software Engineering I.
I would argue that if they use an LLM at the stage of a lower-level fundamentals course, they'll suck even more at using an LLM for more interesting tasks. They also won't have the skills necessary to address problems when the LLM invariably doesn't do exactly what is desired.
I read a reply to a similar question in a different HN thread a while back that stuck with me. It went something like, "The point of university is to get an education. The point of student loans is to get a job."
This is insane. Absolute power tripping. And I say that being in favor of banning AI throughout the course.
This article sounds like the professor was reprimanded by higher powers and tried to dig themselves out of a hole for having a badly structured grading system.
Students should be encouraged to use AI in their learning, because they will anyway. The understanding should be that they will be assessed in supervised environments so they need to learn the work either way. This gives the students incentive to learn without fear of using the best tools available to do so, and provides evidence to the powers that they actually did so.
> "NSA advises organizations to consider making a strategic shift from programming languages that provide little or no inherent memory protection, such as C/C++ and assembly, to a memory safe language when possible."
imo watermarking will do little to reduce this awkward, personal, adversarial thing. as always, technology cannot 100% solve, or even 50% solve, a political problem.
> the decision that was reached was to reverse the retroactive use of the tool on earlier homework submissions... Students that had dropped the course would be permitted to re-enroll.
it's too bad the professor completely capitulated. like people have so much angst against H1Bs, so much excitement about unionizing, agitation about layoffs or whatever... look, 40% of your classmates are cheating. 40% of your colleagues are cheats. the call is coming from inside the house!