![]() |
Re: Ethics 101: To re-use or not to re-use?
You know what would make a great change to this rule? Allow the re-use of any code that is put into the public domain (a la Kevin.org), and force the re-typing for fuddy-duddies who don't want to participate. It would encourage a practice that would lead to stronger teams, force top team to continue innovating, and give weaker or new teams a glimpse into what can be done with the tools they have available.
Would anyone have a problem with posting last year's code in orde to be allowed to use it this year? |
Re: Ethics 101: To re-use or not to re-use?
Quote:
(This is what "public domain" entails.) |
Re: Ethics 101: To re-use or not to re-use?
Quote:
Hmmm.... :confused: |
Re: Ethics 101: To re-use or not to re-use?
Quote:
And yes, I think the idea's a winner. The Kevin Watson Rule, anyone? |
Re: Ethics 101: To re-use or not to re-use?
Quote:
In FIRST we don't encourage lawyering the rules, and we often don't worry about policing them, either. GP mostly handles both functions. A world where lawyers and police don't get much work -- there's a goal to work toward. |
Re: Ethics 101: To re-use or not to re-use?
Quote:
Thanks to everyone who has responded so far! Paul |
Re: Ethics 101: To re-use or not to re-use?
Quote:
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
Andy B. ps... btw, everyone: whatever is discussed here is by no means a decision we all must live by. This is up to the GDC. They can either incorporate the suggestions in this thread, go totally against them, or even make us all write code on banana peels with our fingernails. |
Re: Ethics 101: To re-use or not to re-use?
Quote:
Quote:
|
Re: Ethics 101: To re-use or not to re-use?
I disagree with the proposed idea.
My reasoning is that I think that this will punish teams that actually take the time to create well written, reusable code. They have put in the time to create this product....why should they be forced to share this with a team that doesn't put in the effort? What is the motivation of a new team to actually learn how to write code when they can go out and download the prewritten code of their choice? What is the motivation for a team to post their code in a legible format? If teams want to share a code module, or even their whole codeset, that should be their prerogative. Would you think the same way if this pertained to mechanical design? Would you force teams to make their gearbox design public if they intended to use it from year to year? (I know that the software/mechanical comparison isn't easily made, but humor me). |
Re: Ethics 101: To re-use or not to re-use?
Quote:
Everyone needs to read this carefully. I see quite a bit of arguing back and forth about whether a rule like this has any justification, and I think this post nails the question home. While software is without a doubt an integral part of a robot, it's implementation (not creation) is arguably simpler than a mechanical component. Once the concepts and code are developed and written, it only takes the click of a button to send it on it's way to the robot. Therein lies the problem: how do you arrive at completed concepts and code? The question seems to be "is it alright to use code/algorithms from previous years on current robots?" To take the question to a hypothetical extreme, without a rule like the one in question, a team could just drop in completed 2006 binaries into the 2007 robot and call it a day. Naturally, this wouldn't make much sense given the change in game play form year to year, but how far off from reality could it be if a team has not much more than a pusher/drive train bot from year to year? In that situation, how would a mentor tell their programming team "sorry guys, the code we had from last year is good enough, so we won't be needing you." More importantly, what do the students learn from that? Break it down one step. Instead of binaries, copy and paste the source from the previous year. The compiled binaries are still the same if nothing has changed. Break it down further. Instead of complete source, just take snippets from the most complex parts, such as the camera tracker. Mentor to programming team: "Sorry guys, our code from the camera last year worked so well, we don't need to rewrite it. Just copy and paste it and call it a day." Again, what do the students learn from that? If a team has the same general programmers from year to year, the rule does make it seem like a waste of time to re-write common code from year to year. However, at the same time I see seniors graduate from their teams and move off to college, carrying all their concepts and algorithms with them, leaving a rookie programming team scratching their head looking at the leftover code. Rewriting every year at least gives the experienced programmers time to properly explain why the code works, from algorithm to implementation, and gives the programmers-to-be the chance to ask questions and learn as things are put in place. Ultimately, isn't that the goal of FIRST? To inspire future engineers and help them find something they're interested in? How inspiring is it as a programmer to simply copy and paste existing code without understanding how or why it works? I believe that is the spirit of the rule. |
Re: Ethics 101: To re-use or not to re-use?
Marc
I agree that then end result has to benefit the students. However, there is a hole in your argument. What do students learn from Kevin Watson's serial port code? That code is so complex that it has the potential to baffle even people that write software for a living. I would never expect a high school student to be able to understand it. Yes they can be taught how it works, but isn't the allocated time better spent teaching them how to use the interface? In this case, I believe that's where the real learning comes from. How many high school students are exposed to serial communication outside of this program? How many have even heard of it? So much can be learned in simply writing a protocol to talk serially between two endpoints. In theory, nothing about the guts of the serial code needs to be known other than "when I call this function, these bits get sent to the other end". This is something that software professionals deal with on a daily basis. There are always modules that you will use that you haven't written yourself. If you're doing any sort of GUI programming, I highly doubt that you would write your own Button class. This doesn't take away what can be taught/learned if you can't see the internals of what a Button really is. Why can't this principle be applied to robot code? Why couldn't a team re-use a PID control function from year to year? There is so much to learn from interfacing with the function and tweaking the parameters without needing to know the guts. I do see how reusability needs to be done responsibly otherwise we would end up in the situation that you described above, where the students get very little out of this. This should be placed squarely on the shoulders of the mentors. After all, aren't we here to make sure that students get the most out of this program (whether it be education or inspiration)? I agree that there is no substitute for actually writing a piece of code to understand what it does, but there is plenty to learn by interfacing with existing code. Another thought: Is prototype code written during the offseason legal for use? There has been plenty of discussion of being able to track multiple colors. If a team has perfected it are they forced to have to rewrite everything? What if the same team of people that are writing the robot software also designed and wrote that code? My stance is that if a team has put in the effort to go out and learn about something on their own, they shouldn't be forced to waste the time rewriting it when the time could be better spent creating the interface to it. |
Re: Ethics 101: To re-use or not to re-use?
Quote:
Quote:
Quote:
Quote:
Quote:
I agree that the comparison is not easily made, and I've tried, but why not? Year after year, and with nearly every chance they get, FIRST rules in a way that makes the game more competitive, the robots better, the compeitition more fun to watch. Why should completely spilling the beans on last year's robot be any different? It's good for good teams, because it encourages them to continue to innovate, and it's good for struggling teams because it demystifies the champion teams in a way that is bound to inspire them to strive further. It makes the pie higher. |
Re: Ethics 101: To re-use or not to re-use?
Quote:
|
Re: Ethics 101: To re-use or not to re-use?
Quote:
Quote:
I just meant it would be easier for everyone if the code was all in one place. Or atleast a place were we could find a list of every teams webpage. Maybe a list of all the teams websites exists and I just havent seen it. |
| 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