LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to verify VI authorship / authenticity?

I teach a class whose course topics include an introduction to LabVIEW, so naturally there are some homework assignments where the students write LabVIEW programs. I sometimes receive homework submissions from multiple students that look virtually identical on the front panel and block diagram windows. Of course, I'd like to know if cheating is going on here--i.e., if the students are turning in someone else's work for credit as if it were their own work.

 

I'm wondering if VI files contain metadata that can be used to unambiguously determine a) who created the VIs, and/or b) if two (or more) students have submitted the same VI file(s) to me.

 

NOTE: Most of the time, the VIs the students submit to me for grading have identical file names, and this is by design--e.g., I create a "starter" VI named "xyz.vi" that the students must finish and then email to me for evaluation/grading. So it is impractical for me to use something like the built-in "compare VIs" feature because I cannot load into memory two VIs named "xyz.vi". And when I have a class of 50+ students whose homework assignments I must evaluate/grade, I don't want to waste my time renaming 50+ files so that I can evaluate them using the "compare VIs" tool. (And FWIW, most of these homework assignments have two or three files per student, so that's 100+ or 150+ files whose names I'd have to change.)

 

0 Kudos
Message 1 of 15
(3,931 Views)

You could try doing a compare on the binary level, but that wouldn't be real secure.

 

Everybody should be documenting their code, so make it a requirement that all VI have change histories filled-out to include the name, student number, or something of the person who edited it. If somebody didn't really do thier own work it would be easy to miss all the places where they would need to change/add an identifier.

 

As a last resort, in the case of suspicious similarities you always ask the student to explain what the code does. If they can't it's either because they copied someone else's work or they are just doing things by rote and don't really understand the process - in either case they don't deserve the credit.

 

Mike...


Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 2 of 15
(3,921 Views)

I think Mike made some good suggestions.

 

In addition require each student to create a project.  The VI you provide as a starter can be added to the project. Require each student to include his or her name or other unique identifer as part of the project name.  The project process should allow you to keep VIs with identical names separated.

 

Look at the sample Certification exams for their requirements on organization and use of "starter" VIs. 

 

Lynn

0 Kudos
Message 3 of 15
(3,912 Views)

I'm hoping for something more robust/reliable than adding a text box, or modifying the text within an existing text box, to determine which person actually authored/modified a VI.

 

I'm presently using file checksums to quickly compare the files my students submit to me for grading, and while this method does identify blatant file copies it is not as foolproof as I would like.

 

0 Kudos
Message 4 of 15
(3,907 Views)

Is the course you're teaching about LV or is LV a side topic. If it's the later, a somewhat Zen approach would be to catch the blatant ones, and not worry about the rest. People can't fake it forever, sooner or later they will have to either really learn the stuff - or go into marketing...

 

Mike...


Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
Message 5 of 15
(3,903 Views)

@jfischer wrote:

I teach a class whose course topics include an introduction to LabVIEW, so naturally there are some homework assignments where the students write LabVIEW programs. I sometimes receive homework submissions from multiple students that look virtually identical on the front panel and block diagram windows. Of course, I'd like to know if cheating is going on here--i.e., if the students are turning in someone else's work for credit as if it were their own work.

 

I'm wondering if VI files contain metadata that can be used to unambiguously determine a) who created the VIs, and/or b) if two (or more) students have submitted the same VI file(s) to me.

 

NOTE: Most of the time, the VIs the students submit to me for grading have identical file names, and this is by design--e.g., I create a "starter" VI named "xyz.vi" that the students must finish and then email to me for evaluation/grading. So it is impractical for me to use something like the built-in "compare VIs" feature because I cannot load into memory two VIs named "xyz.vi". And when I have a class of 50+ students whose homework assignments I must evaluate/grade, I don't want to waste my time renaming 50+ files so that I can evaluate them using the "compare VIs" tool. (And FWIW, most of these homework assignments have two or three files per student, so that's 100+ or 150+ files whose names I'd have to change.)

 


You can hang out here in the forums and see who is trying to get people to do their homework for them.  Seriously.

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
Message 6 of 15
(3,904 Views)

I don't know how much control you have over the LabVIEW installations the students use, nor do I know if any of the following is unavailable in the student-licensed versions (if that's what they're using).  But if at all possible, I would REQUIRE that the following be set on each installation (unfortunately, these aren't generally defaulted on):

 

Tools->Options->Revision History->

  • Add an entry each time the VI is saved
  • Prompt for a comment when the VI is saved
  • Record comments generated by LabVIEW

 

Ooops - Like Mike Porter said.

 

And I would tell your students that I expect them to add meaningful comments as they modify and re-save their code.  Even if they don't write "War and Peace" every time they hit ctrl-S, you should be able to spot-check the history of any VI that looks too much like that one you saw three students back...

 

And, look for your students' postings on this forum Smiley Very Happy

David Boyd
Sr. Test Engineer
Abbott Labs
(lapsed) Certified LabVIEW Developer
Message 7 of 15
(3,895 Views)

The 1st problem is easy, you give them xyz.vi, all returns should be named xyz_name.vi, then you can compare freely.

 

I guess cooperation is ok, so having 2-4 create a vi together would cause them all to submit the same, but it should be clearly stated in the vi "Done by: Matt, Ross and Steve", when 10 submit the same ...

 

There's no Metadata, and if the problem easy the solution will be similar. So, either have lab-time in which they do it, or make the problem harder, then no solution should be quite similar.

 

/Y

 

 

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 8 of 15
(3,892 Views)

@DavidBoyd wrote:

I don't know how much control you have over the LabVIEW installations the students use, nor do I know if any of the following is unavailable in the student-licensed versions (if that's what they're using).  But if at all possible, I would REQUIRE that the following be set on each installation (unfortunately, these aren't generally defaulted on):

 

Tools->Options->Revision History->

  • Add an entry each time the VI is saved
  • Prompt for a comment when the VI is saved
  • Record comments generated by LabVIEW

These options are the closest you can get and they are added as binary resources to the VIs so not easy to fake. I'm not using these features as I find the VI scope a little to extreme and disturbing during edit time and the SVN source code control allows me to record change comments on a somewhat broader and less intrusive scale, but these would certainly be a good start point. If someone doesn't fill in the history he won't get the full points. You can't edit history entries after the fact (without understanding most of the binary structure of the VI well), only remove them entirely so it would seem to do what you are looking for.

 

Rolf Kalbermatter
My Blog
0 Kudos
Message 9 of 15
(3,872 Views)

@Yamaeda wrote:

The 1st problem is easy, you give them xyz.vi, all returns should be named xyz_name.vi, then you can compare freely.

 

I guess cooperation is ok, so having 2-4 create a vi together would cause them all to submit the same, but it should be clearly stated in the vi "Done by: Matt, Ross and Steve", when 10 submit the same ...

 

There's no Metadata, and if the problem easy the solution will be similar. So, either have lab-time in which they do it, or make the problem harder, then no solution should be quite similar.

 

/Y

 

 



It's the file's contents that are important here, not the file's name. Changing the file name alone is not sufficient. If student B copies student A's homework, renames the files as recommended, and then turns in the renamed files as his/her own work, a checksum calculation performed by me on A's and B's files will show that A's and B's files are exact copies of each other even though they have different file names.

0 Kudos
Message 10 of 15
(3,851 Views)