How do I check source-code-homework for plagiarism? [closed] - plagiarism-detection

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
How do I tell that two source-codes (independent of their language C,Java,Lisp...) have strong indications that they could be plagiarism of each other?
Background: I going to give my first seminar on computer languages. We have prepared small exercises for major programming languages such as C/C++, Python, Java,... but also OCaml, Haskell,... to give the students some practical introduction (also into programming paradigms). We estimate to have ~300 students with more than 50 programming tasks per person. So a single person cannot check all homeworks.
I guess anti plagiarism techniques used for natural languages (essays, papers, book chapters, etc) will not work for source code, right? Also solutions to those programming tasks will have inherent similarity due to the demanded interface.
I've done a little search and found: MOSS mentioned in: Checking for code plagiarism with JavaScript and Variable renaming for plagiarism detection for C/C++

Award a small prize for detecting it. Given the possibility of a couple beers, students will pour over the net for hours, looking for matches from other students submissions.
With large fines for offences, it's self-financing and rewards students who do their own work - they want beer and are not going to leave themselves open to revenge by plagiarising work themselves!

Related

is it necessary to use Microsoft approach in every class for finding software maintainability? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
For finding software maintainability by using Microsoft approach, where normally we have to use following method
MI = MAX(0, (171 — 5.2 * ln(HV) — 0.23 * CC — 16.2 * ln(LoC)) * 100 / 171),
Where,
HV – Halstead Volume,
CC – Cyclomatic Complexity;
LoC – lines of code.
In my program i have few different type of classes .as example
For "finding area "__problem
i have ----"circle", "triangle","quadrilateral", "abstract","choice" classes .
do i have to use the approach for every individual class for finding software maintainability ?
The simples answer is no. This is only a heuristic formula created to assess code and drive code refactoring in order to achieving good maintainability. You can find many other interesting heuristics if you look for code smells (aka anti-patterns).
In the real world, you face challenges, like resource constraints (e.g. time, legacy, design options), which usually leads to decisions that create technical debt. So, do not worry so much about strictly following these formulas. They are guidelines to help in making good decisions while designing your software architecture.

If I'm the only developer on a project, do I still need to use encapsulation? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I always hear that we need to encapsulate whenever we write object-oriented code. If I'm the only developer on a project, do I still need to use encapsulation?
One way to put an answer: Encapsulation, conceptually, exists for writing better, safer, less error-prone code. It doesn't exist, primarily, to facilitate teams working together on code (that might be a side effect, but that's not the purpose).
So the goods that encapsulation seeks to foster scale from one coder to many coders, and they are goods that do not really have to do with the number of coders, although those goods may find stronger expression the larger the project and teams are.
Encapsulation is there for a reason.
Someone has to maintain and manage your code after you are done, right? What if the project gets bigger and you get team members?
So, the answer is "yes", it is always best to use encapsulation whenever possible.
The fact you are asking this question makes me wonder you actually did not get the actual value of encapsulation as a means to reduce and thus deal with complexity.
My theoretical computer science professor used to tell me that in the end, if you think at the whole binary representation of a program, any program is just a number. Very big indeed but, only a number. And that is true, any other construct we use but 0 and 1 (i.e. C++, Java, Python, functional programming, object oriented programming, aspect oriented programming, etc..) is just because of the fact we need more abstract means to get the one number we need.

Separation of data in different classes [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
What are the best practices for separating data in different classes? Not just objective c, but programming in general.
For example, if someone was making a game like angry birds, how one manage classes?
Would you have a separate class for just the projectiles (in angry birds case, the birds) and have different classes for the targets, music and images, etc?
There is no simple answer to this. You first need to really understand, deep in your soul, how object-oriented programming works and what it represents. Then you need to make your own decisions based on that understanding and your understanding of the problem at hand.
I've seen many "cookbook" applications of OO and MVC and the like that are terrible, even though the writers dotted all the i's and crossed all the t's and their college professors would have given them an A+ on the project.
But in general I'd probably have a common superclass (with several subclasses) for entities that represent visible, movable objects, but probably not use that for music, eg.
not even data but your functional approach must be modular. create as many smaller components in terms of classes and define their behavior as methods and set the interaction between them through the Game Manager/Logic control system that you design for your game...
Best of luck..!!

what is the current use and future of icon programming language [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
While studying different programming languages, I recently hit upon Icon programming language. It seems to have quite cool syntax and functions for string scanning, goal directed execution, generators etc. and it was developed quite a few decades back (1977).
There doesn't seem to be much information available on it regarding the places it is used currently. It doesn't seem to be actively developed or supported also. I was wondering if people really use this language in certain niche areas even today or is the language now primarily of historical interest? Will it have much relevance in future also?
The TIOBE programming language index http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html places it somewhere between 50th and 100th in terms of
the number of skilled engineers world-wide, courses and third party vendors.
If it hasn't gotten any further than that since 1977, I doubt it ever will.
If you're into "cool," complex languages with sophisticated capabilities, Scala may scratch your itch.

Does the computer science/software engineering field have a standardized citation format? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
Wikipedia provides a number of citations used in the sciences, however does one stand out in computer science and software engineering related documents? My initial guess is to the IEEE format, as they have a number of conferences and publications related to both fields, but I couldn't find anything definite.
I think I used both APA and MLA styles at different points. Unlike journalism or psychology, there isn't a defined standard, so it will probably depend the most on the school/professors that you have.
Follow the standards of the publication you plan on submitting to. All conferences and journals should have formatting information available during the submission process, and will often even provide LaTeX stubs that you can work off of.
If you're just doing a paper for a class, check with your professor if there's a publication's formatting style they prefer, and if they don't have one, feel free to pick your own out of the stubs you can get a hold of.
The big takeaway here is that if you're worrying about measuring margins and placing commas, you're either reinventing the wheel, not using LaTeX, or probably both, and if you're serious about participating in the academic side of CS, it's something you should learn as soon as possible.
Typically in college for Com Sci you will be using the MLA citation standards at least from what I have found here in the US.
You'll usually see APA style or MLA style citations used in university CS departments in the US. MLA has been more widely used in the past because it has been used in journalism for years, but APA is gaining ground in academics (not only in CS, but in many fields).
Whatever LaTeX happens to generate. Since there's no standard, I go with the most convenient one.
I've always used APA style when I write things on paper, but my preferred form is the hyperlink. This is CS, after all :)
I think I am little late on this thread. But I am just gonna share some resource in case someone stumbles here. They do have a standardized citation format. In fact, the format may vary from institute to institute. In case your institute has a different format, you can always go for ieee citation machine. They help you generate citations automatically.