aenigmaclamo
6 hours ago
* 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.
smelendez
6 hours ago
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.”
sfink
2 hours ago
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.
luke0016
2 hours ago
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.
tyre
6 hours ago
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!
OkayPhysicist
5 hours ago
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.
ryandrake
6 hours ago
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."
OkayPhysicist
5 hours ago
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.
sothatsit
5 hours ago
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.
icedchai
6 hours ago
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.
user
5 hours ago
broodbucket
6 hours ago
My professor in a C course said anyone that uses `goto` gets failed. It was quite liberating for me to then end up writing `goto`s for a living
OkayPhysicist
5 hours ago
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.
broodbucket
5 hours ago
This was in...2013? I think the main point was just to stop students from footgunning themselves