* 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.
Maybe you would have. Maybe you wouldn't have. But they have to design these things for the 90% case. People using things that are far outside what's being taught—in the age of AI—are maybe more likely to be cheating than everyone going above and beyond.
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!
When I took my Freshman year undergrad programming course decades ago, I had already been programming in that language for at least three years. It would have been quite painful to have to deliberately not do things I already know how to do because "I didn't learn it yet."
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."
Same. I taught myself C when I was in high school, back in the early 90's. Fortunately, in college, I was able to test out of the intro classes for credit.
I remember being marked down for using a ternary in Java for an introductory programming course at uni because the teaching assistant didn’t know what it was. Pretty minor loss of marks but it always annoyed me.
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.
Decent professors distinguish between "using stuff we haven't taught yet" and "trivializing the assignment by using stuff that wasn't intended". If the assignment in an Algorithms course is to implement a square root function, calling "sqrt(x)" is obviously inappropriate. Structuring their solution using a do while() loop rather than while() loop is not.
This isn't the 90% case. At least half of CS students come in with at least a basic proficiency in programming. It's a big enough portion of the class that not boring them into ignoring the actual Computer Science parts while getting the other half up to speed is the defining issue of lower-division CS courses.
Yeah, and sizeof and malloc are very easily things students could have been exposed to in high school or their own studies. I’ve seen C books that use them in the first chapter.
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.”
It did not say "I assume cheating". It said you're probably cheating, as in of you look at the population of students who are using such constructs, over 50% of them are using them because they are cheating. Given that accusations of cheating were not made when such constructs were found, it seems like that probability was not factored in when deciding whether or not to advise someone.
Are you so graybeard that structured programming was interesting enough to be part of the focus of a C course? Because I can see in that context requiring the use of appropriate control flow structures. Nowadays, I can't imagine in what context students would be so eager to reach for GOTO that they don't preferentially use other control structures.
It does not say that one cannot use those things, it says that one is likely making their life more difficult. Implementations that utilize those things are, with high probability, more convoluted and involved. This slide is specifically around the time we introduced fscanf() and friends. If one is using the things mentioned in the slide, they're likely partially re-implementing *scanf() on their own. Which, while certainly a good exercise, misses the goal of developing familiarity and understanding surrounding *scanf().
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.
As a student, _especially_ in the weedout classes where your performance in those classes decided if you could get into that major (I went to a school where you applied to majors 1-2 years after starting) it was incredibly frustrating to see other students cheating. When applying to a major that was well past capacity and very competitive to get into, it very much felt like a 0-sum scenario where cheating students were screwing the rest of us over. How awful would it have been to be declined from your major and have your career path severely impacted because so many students were cheating with 0 consequences
It was even worse when professors were notified but couldn't do anything about it (for example, a student next to me in an exam kept pulling out his phone but hiding it when the professor was nearby. I even notified her during the exam but she wasn't able to catch him so as far as I know, it never went anywhere.)
Similarly, I was a grader for a 300 level math class where about 50% of the class had blatantly cheated on an assignement (the solution manual on chegg had mixed up the questions so anyone who actually read the problem would've caught it because it was the wrong problem). I notified the professor and he said he would mention it in class but no other consequences occurred - they didn't even get 0s on the assignment!
All of your thought processes were very reasonable and I thought the best slide was comparing exam scores by people using LLMs on assignments vs people not using LLMs on assignments. I truly think that will convince people who otherwise might be borderline failing and desperate to pass that using an LLM is not in their own best interest.
I'd be curious to see (both as myself, and I think it'd be very convincing as a student in your class) the overall class grades for people using LLMs vs not. I could see someone reasoning "ok well if I get 100% on the assignment and scrape by on the exams, that still gives me a better grade than doing badly on the assignments (without an LLM) and doing slightly better on the exam"
Edit: I always thought for some reason that cheater would get their karma in their own way but in the real world, there are no consequences. I'm plagued by ads for ai-assisted ways to cheat on interviews every time I login to Blind. It actively is making things worse for the rest of us
aenigmaclamo · · focus · HN ↗
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.
tyre · · focus · HN ↗
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!
ryandrake · · focus · HN ↗
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."
icedchai · · focus · HN ↗
sothatsit · · focus · HN ↗
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.
OkayPhysicist · · focus · HN ↗
OkayPhysicist · · focus · HN ↗
smelendez · · focus · HN ↗
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.”
sfink · · focus · HN ↗
broodbucket · · focus · HN ↗
OkayPhysicist · · focus · HN ↗
broodbucket · · focus · HN ↗
[deleted] · · focus · HN ↗
[deleted]
luke0016 · · focus · HN ↗
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.
hn_user82179 · · focus · HN ↗
As a student, _especially_ in the weedout classes where your performance in those classes decided if you could get into that major (I went to a school where you applied to majors 1-2 years after starting) it was incredibly frustrating to see other students cheating. When applying to a major that was well past capacity and very competitive to get into, it very much felt like a 0-sum scenario where cheating students were screwing the rest of us over. How awful would it have been to be declined from your major and have your career path severely impacted because so many students were cheating with 0 consequences
It was even worse when professors were notified but couldn't do anything about it (for example, a student next to me in an exam kept pulling out his phone but hiding it when the professor was nearby. I even notified her during the exam but she wasn't able to catch him so as far as I know, it never went anywhere.)
Similarly, I was a grader for a 300 level math class where about 50% of the class had blatantly cheated on an assignement (the solution manual on chegg had mixed up the questions so anyone who actually read the problem would've caught it because it was the wrong problem). I notified the professor and he said he would mention it in class but no other consequences occurred - they didn't even get 0s on the assignment!
All of your thought processes were very reasonable and I thought the best slide was comparing exam scores by people using LLMs on assignments vs people not using LLMs on assignments. I truly think that will convince people who otherwise might be borderline failing and desperate to pass that using an LLM is not in their own best interest.
I'd be curious to see (both as myself, and I think it'd be very convincing as a student in your class) the overall class grades for people using LLMs vs not. I could see someone reasoning "ok well if I get 100% on the assignment and scrape by on the exams, that still gives me a better grade than doing badly on the assignments (without an LLM) and doing slightly better on the exam"
Edit: I always thought for some reason that cheater would get their karma in their own way but in the real world, there are no consequences. I'm plagued by ads for ai-assisted ways to cheat on interviews every time I login to Blind. It actively is making things worse for the rest of us