![]() |
Re: Ethics 101: To re-use or not to re-use?
Quote:
Although some rules seem pointless they are rules none the less and you MUST follow them. But than again programming is often very simlar. What are you going to do? But I believe that the point of this rule is so that the rookies learn how the program itself works and get to work on it and learn something about programming rather than just cut and paste. Pavan. 118 - Controls |
Re: Ethics 101: To re-use or not to re-use?
Quote:
|
Re: Ethics 101: To re-use or not to re-use?
Yes it may waste time to re build a code base but the rule does not out law reusing code it only states that that code must be adapted for that years robot. The adapting of the code is what makes students learn from last years code. If each year students can understands all the code you are using from previous years and adapted it to work on the new robot it is acceptable to the rule.
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
If you basically take the rule (as some have suggested) to mean that you have to start from scratch (i.e. you can use a pseudo-code/code outline or similar, but no actual code), you're forced to redo each year the simple things. Imagine if every year, teams were forced to do CAD drawings for every part of their robot, even if the drawings were the exact same as a previous year. This is the real parallel we're talking about. Paul |
Re: Ethics 101: To re-use or not to re-use?
Quote:
After reading the thread, I think that the machine part v. code is a faulty analogy because of the information they hold. Rather, I suggest that a source file is closer to the working-drawings that are used to build components. I say this because working drawings are a very information-dense format of representing the idea of a part; In my design class, I wouldn't throw out my drawings at the beginning of every project, rather, I re-work them to speed up the next project to allow me to work on something new. In the same way, the source code is a very information dense format of representing an idea of behavior. I think Seanwitte is saying that by having code modules already developed, instead of re-writing them, they can be tweaked to fit a new situation and then new code and new implementations can be built from them. The analogy breaks down at the implementation stage, because machining a part takes more time than compiling a program; the information-dense idea to information-diffuse implementation divide is blurred. However, consider a team that has a CAD file for a part. To make the part, they can enter this into a CNC, go to (Wawa/7-11/Subway/etc...), and retrieve their part. By having this, a team can plan new implementations without worrying about the base every year. Maybe they want to add a turret on their already developed frame? The programming analog here is adding a new function. By having a code base for managing joystick input to drive motor output (lets say the team wrote a piece of code to linearize the input to output and also added a deadzone on the joystick). This year, the team plans to implement the already-debugged code block, but also to add functionality for using the gear-tooth sensor and an accelerometer. I think that this difference is key to why I am behind the conclusions Mr. Scheck draws in post #62 |
Re: Ethics 101: To re-use or not to re-use?
Quote:
Say for any artifact, hardware or software, there is 80% planning and 20% implementation. For a piece of hardware you create this year you get to save 80% next year. You don't get the same scaling for software because you can't fully define it without the source. Since the software is by far the weakest discipline in FIRST, acknowledge the difference and relax that particular rule. |
Re: Ethics 101: To re-use or not to re-use?
Quote:
There are pieces of hardware and software provided to all teams by the governing organization to use as a starting point in building a robot's functionality, separate from custom team-generated programming. The same idea as IFI providing the hardware applies to Kevin Watson's code- it's provided as a basis for obtaining functionality provided to all teams. I doubt any team simply compiled unmodified camera code and downloaded it to the RC without adding some sort of custom input/output or autonomous code. It's understood overall there are some pieces of code that are necessary to use from year to year, e.g. the default code provided from IFI. But to preserve complete customized team modules from year to year in a copy-paste fashion seems to defeat the purpose of having a programming team for each year. All it would take is one original team to write the code, then hand the flash drive down from season to season. Quote:
My example was a hypothetical extreme, and yes, the default code would suffice for that function. My point was to show how boring life is for the programmers on the team if they didn't have anything to do. The default code is provided for the purpose of having something that "just works" for all teams to use if necessary. Customization is the prerogative of the team, and generally necessary to achieve proper robot function. Handing completed modules down from one programmer to another is similar to handing them the default code. The only difference is one happens to be more functional, which is great for getting a working robot out the door, but not so great for the students trying to learn what programming entails. To each their own I guess. Quote:
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
Quote:
Quote:
Quote:
|
Re: Ethics 101: To re-use or not to re-use?
Guys, this thread is off-topic (I think.) What Paul was originally asking was, A. What is your interpretation and what does the rule mean? and B. What is a violation (of letter or spirit) and what violations are acceptable? The thread has now gone from answers to the questions to "This is my analogy and why the rule shouldn't apply" and "You're wrong, this analogy is better and why" and "You're both wrong", and generally being a big confusing mess. (At least, confusing to a non-programmer who doesn't know much about programming and isn't sure he wants to know.)
Now, to answer: A. The rule is that you can't re-use unaltered modules from year to year, but algorithms and designs may be re-used. Also, the specific lines must be new. Now, what this means (to me) is that you must alter the modules every time you use them. If you have changed a hardware drive module for a different encoder/wheel/gearing, you practically have to change the software module, right? So, seeing as the robots are different each year, there shouldn't be too much of a problem for most teams. B. The letter is as Paul quoted. The spirit is that you must change the code between years. For me, a violation is when a team used the exact code that they used the year before. Doesn't matter if they retyped it or not (and that discussion was over a rule that applied to Fix-it windows and similar things, if I remember correctly.) What violations are acceptable? For me personally, none. I prefer not to do anything that might be perceived as against the rules. There is another point that I wish to bring up, however. This rendering of <R71> is from last year's manual. We don't know what the corresponding rule in this year's manual will be, or even if there will be one. So this whole discussion could be a moot point on January 6th. |
Re: Ethics 101: To re-use or not to re-use?
So does that mean that Kevin Watson has broken the rule? Most of his code is the same from year to year.
|
Re: Ethics 101: To re-use or not to re-use?
Hypothetically speaking:
If a team has used the same drive train 4 years in a row, and plans on using it again for a fifth year, but each year they build a new one (so they are using a design but not the pre-made structure), does the programmer still have to completely rewrite the drive code, even though it would most likely be nearly or completely identical to the code from the previous four years? |
Re: Ethics 101: To re-use or not to re-use?
Quote:
But you brought up a good point. According to some people in this thread, no line of code could be the same from year to year. Now, if that is what the rule is actually saying, that means the simplest things, such as pwm01 = 127; would be illegal. Also, as it has been stated before, this rule would make using Kevin Watson's default code illegal, since there are few changes from year to year. |
| All times are GMT -5. The time now is 13:49. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi