Rather an interesting perspective, especially given some of the recent lawsuits which revolve around programmers doing precisely what the author is advocating...
great in theory, but nobody has time to grade like that. And (unless this is all automated now...been a long time since I was in school). Personally, I think in college, you need to do your own work. That doesn't mean someone can't help with some section of code, but you're never going to be a decent developer if all you can do is copy someone else's code. Yes there's a lot of copy/paste, but there's a lot of actual coding...and I've worked with people who can't code. It's a PITA, because you have to do their work for them.Like solving a math equation, points should be awarded for showing your work, not just the answer. If a student copies code, but is able to explain how that code accomplishes the task, he deserves at least some credit. If the class isn't being taught / tested / scored in a manner that allows for this, maybe that should change?
I feel like we went to the same school lol. One of my classes (not a CS course, but required for CS students to take), we had to do verilog and the prof was very strict on reusing code you found anywhere, and basically automatically failed you if thought you took code from somewhere else without attributing the source of where you got it.I have been through the academic rigor and when coding in verilog all my prof asked us to do was insert a descriptor saying where we got it and what it does. If the code did the job he didn't care. If it was messed up he barraided you.
Same for my research papers, lead with authors name and cite, then no ine cares and everyine got credit.
If your trying to pass shit off as your own to make yourself look like a genius.... Be prepared to fall hard.
We had to write sample code on tests in my early CS courses... depending on the teacher it could just be pseudocode, but another required basically the correct syntax. I hated that because it took too much damn time to write out on paper and be sure you were correct. And if you made a mistake at the beginning of the code? Lol gotta erase a bunch or try and squeeze an additional line in there between 2 other handwritten lines of code.I think this seems similar to math proofs. You would work on math proofs during class / homework, but you had come up with the right proof at the right time during the test.
Perhaps testing for CS needs to change where you write code during the test without the aid of the Internets?
Law suits are in and of themselves, a revenue vehicle. All it really proves is that IT intellectual property is a field that always seems fresh for the plowing.
Take a good look at IT patents, they don't revolved around the content of the code. IT patents are written to protect the "idea".
"I patented a middle-out compression algorythm blah blah" (Yea, I've been binge watching Silicon Valley)
It's because as I said earlier, there's more then one way to skin a cat. If I don't patent the idea itself (the cat), what an app does, it's functionality, it's "soul", and I just patented the code itself, someone could steal the idea and re-engineer the code. A different way to skin the cat.
So you patent the cat, and then it's doesn't matter how you make the cat, it's still a cat. And I hold the patent on cats.
Of course if I have unique code written to make cats have sharp teeth and you use my code so that your dog also has sharp teeth, it doesn't mean I won't try and make some cash with a law suite.
As I've been told "It's just good business".
Only a quarter of developers I've known could even come up with a unique way of doing things, regardless of their coding capability. Of course, they're way ahead of the general population, where it's probably about 3-5%. Most human beings are only capable of putting legos together, not designing their own lego pieces.
It's not, I'm in academics, at a college level, and we're well beyond the point of teaching people how to think at this point they're pretty much hardwired already. We try to teach people the subject, it's up to them to use their current facilities to figure out what works for them in retaining knowledge of the subject whether it's for a test, or an assignment, or even so far as to recall where they saw the information so they can re-read it.This is a really tricky subject, first off a lot of people think that academics teaches people how to think. Personally I don't believe this to be true,
In academics you're right, you read about how to do something in a book or in a lecture and then you're expected to mimic what was taught in some way, in this case writing code. But there is a hill of differences between me writing a piece of code that sayActually coming up with real novel or even slightly novel solutions is a very rare event. Yet we all try to fool ourselves into thinking we are doing our own work every day, but really our brains are just matching an existing problem to one we saw solved in the past. The best solutions are very often ones where someone worked out a solution then it was improved upon many times till it just works very well and those are probably the solutions that you find in code dumps.
The problem is there seems to be a lot of confusion with what plagiarism is, even in this thread I see people trying to make parallels with copyright law which is pretty far off. Academics often wants to YOU to figure out how to do a particular task, and we realize that you will come to similar results as everyone else (who did the assignment correctly), will you look at other code to see how it was done and then write something similar? Sure why not, that's really no different than reading the book and looking at an example they did and trying to work that into your solution in some way.The tricky part gets to be how much plagerism do you allow before you realize the students aren't really even capable of understanding the problem or even properly solving it at all. That's really all academics are typically trying to vet out and avoid.
This is like the concept of you don't need to understand math as you have calculators. There still needs to be a level of underlying knowledge about what you are doing. When I was in college we always joked about the schools that only taught people how to basically copy and paste code. We were always told that we were learning how to learn how to program. Lots of classes used different programming languages, we even had a class that went over how all the different languages work to understand them at a base level. How is HTML different from C++? How is Java different than C? If you only teach somebody how to copy and paste somebody else's code they don't actually understand the basics, which also means that they don't know how to create new. That said, we did have a class where using whatever source (other than other students) was fine for getting information. The instructor's mind set was that once you hit the real world your boss is never going to ask you a question but tell you that you can't use anything as a reference for an answer, So knowing how to look up what you don't know is as important as what you know. However that class didn't require any coding for that part.
I can agree with this. Having majored in computer science many people in my classes lacked any true understanding of things enough to ever be anything than a code monkey.
It's not, I'm in academics, at a college level, and we're well beyond the point of teaching people how to think at this point they're pretty much hardwired already.....