Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   General Forum (http://www.chiefdelphi.com/forums/forumdisplay.php?f=16)
-   -   Open Invitation to help design a programming game for FRC (http://www.chiefdelphi.com/forums/showthread.php?t=137511)

faust1706 14-06-2015 21:10

Open Invitation to help design a programming game for FRC
 
With recent speculation about the state of programming in FRC, it is hard to argue that it is in a good state. FRC has largely failed to To raise awareness of this field of engineering, and does not do it justice to demonstrate what computer science really is.

In an attempt to inspire future computer scientists, I am proposing a programming game of sorts. The basis of this game is to demonstrate to its participants what computer science really is by solving a task, or tasks.

The game has not been decided yet, and there is still much work to be done. We are short on man power, and could use all the help we can get with the task. Anyone is welcome to help; no programming knowledge or experience is required.

PM me or email me if you are interested in helping: hunter.park11235@gmail.com

evanperryg 14-06-2015 21:32

Re: Open Invitation to help design a programming game for FRC
 
The programming in FRC is extremely underappreciated because you can often get away with very simple code. However, good code is one of the things that separates the good from the best, so it deserves a lot more recognition than it gets.

Want to write code for my quad quidditch robot? :D In all seriousness, it's a challenge based on a hypothetical game, given a hypothetical robot with hypothetical design constraints. It seems to fit exactly what you're talking about. Perhaps when people begin to reveal their designs, you might be able to use it for this programming challenge.

faust1706 14-06-2015 21:36

Re: Open Invitation to help design a programming game for FRC
 
FRC programming ultimately fails to demonstrate what computer science really is. With very little algorithm design and no requirement for efficiency, it is not the game that we are looking for unless you make the game into a simulation with scoring to allow for people to write AIs to play it.

To put things into perspective, here is the game I designed but ultimately decided it wasn't the game we were going to go with:

There are two seeds that are siblings in the ground, Mark and Jessica. They want to be reunited, but cannot see or talk to one another. They can grow their roots in an attempt to find each other, as well as resources. First, they must be reunited by touching roots, and then they can begin gathering resources in the ground to be as healthy and big as possible. It is a 3d map and there are boulders in the ground that cannot be moved and cannot be moved through.

Task: Design and write an algorithm that each tree will use to find each other as well as find resources.

Scoring would be based off of speed (efficiency) of the algorithm, as well as organization and structure of code. Bonus points would be provided if you provide the big-O of your algorithm as well as prove mathematically that as the iterations approach infinity, the probability of convergence approaches 1.

Then do it for more than 2 trees, say 5, and more dimensions than 3, say 100

teslalab2 14-06-2015 22:51

Re: Open Invitation to help design a programming game for FRC
 
Quote:

Originally Posted by faust1706 (Post 1486807)
FRC programming ultimately fails to demonstrate what computer science really is. With very little algorithm design and no requirement for efficiency, it is not the game that we are looking for unless you make the game into a simulation with scoring to allow for people to write AIs to play it.

To put things into perspective, here is the game I designed but ultimately decided it wasn't the game we were going to go with:

There are two seeds that are siblings in the ground, Mark and Jessica. They want to be reunited, but cannot see or talk to one another. They can grow their roots in an attempt to find each other, as well as resources. First, they must be reunited by touching roots, and then they can begin gathering resources in the ground to be as healthy and big as possible. It is a 3d map and there are boulders in the ground that cannot be moved and cannot be moved through.

Task: Design and write an algorithm that each tree will use to find each other as well as find resources.

Scoring would be based off of speed (efficiency) of the algorithm, as well as organization and structure of code. Bonus points would be provided if you provide the big-O of your algorithm as well as prove mathematically that as the iterations approach infinity, the probability of convergence approaches 1.

Then do it for more than 2 trees, say 5, and more dimensions than 3, say 100



I completely agree! people have no idea the work that goes into getting the data from a joystick to the roborio. and the roborio is quick enough you could write absolute crap, and it would be fast enough! make them program something useful on a ti-83 calculator. thats when efficiency matters! You could have a program challenge where they have to make a program to calculate digits of pi, and the fastest one wins.

gblake 14-06-2015 23:03

Re: Open Invitation to help design a programming game for FRC
 
Faust - I love that you are stirring the computer science and software pot here in the CD forums. That's definitely a good thing.

But, you lose me (and maybe a large fraction of the readers you hope to motivate) when you make extraordinary claims like this one.
Quote:

Originally Posted by faust1706 (Post 1486807)
FRC programming ultimately fails to demonstrate what computer science really is.
...

Be willing to cast your net a little more broadly, and I think you find that FRC topics like hard-deadline real-time scheduling, automated testing, distributed processing, high-availability, communication protocols, executable specifications, and ... are allowed into the computer science tent by most definitions.

Maybe you can come up with a game/challenge that includes some of those aspects of CS, along with the ones you already emphasized? I'll bet the audience here in the CD site would be more excited by a challenge that manages to include something from several of the domains we have collectively mentioned.

Blake

gblake 14-06-2015 23:06

Re: Open Invitation to help design a programming game for FRC
 
Quote:

Originally Posted by teslalab2 (Post 1486811)
I completely agree! people have no idea the work that goes into getting the data from a joystick to the roborio. and the roborio is quick enough you could write absolute crap, and it would be fast enough! make them program something useful on a ti-83 calculator. thats when efficiency matters! You could have a program challenge where they have to make a program to calculate digits of pi, and the fastest one wins.

I completely disagree.

If software does and is, what it is required to do and be, it's a defect-free success.

PS: See the XKCD cartoon at the URL in EricH's post.

EricH 14-06-2015 23:07

Re: Open Invitation to help design a programming game for FRC
 
Quote:

Originally Posted by teslalab2 (Post 1486811)
You could have a program challenge where they have to make a program to calculate digits of pi, and the fastest one wins.

To what degree of accuracy? 10? 100? 10000000? Something about nobody finishing that one yet...


Just to give something that's actually helpful:

First, what is the broad objective? Teach good programming practice, right? (Clean code, good algorithms, etc.--all the usual "good programming" goals.) I remind you of this.

Second, what is the device that will run the program? Laptop (and which OS)? RIO (c or Robo)? That's going to affect some of the structure, you know.



Personally, I'd use a particularly nasty heat transfer over time problem... Wait. Got one. PM inbound.

faust1706 14-06-2015 23:36

Re: Open Invitation to help design a programming game for FRC
 
Quote:

Originally Posted by gblake (Post 1486814)
If software does and is, what it is required to do and be, it's a defect-free success.

Software is generally considered a failure if it fails to adapt to allow for an unforeseen, but plausible, use for the user.

For the most teams, their code cannot adapt. Their autonomous routine cannot adapt. The code fails to generalize across seasons.

tindleroot 15-06-2015 00:17

Re: Open Invitation to help design a programming game for FRC
 
Quote:

Originally Posted by faust1706 (Post 1486816)
For the most teams, their code cannot adapt. Their autonomous routine cannot adapt. The code fails to generalize across seasons.

Why not just address this issue, then? I don't feel that the problem is FIRST giving the wrong programming challenge, more like teams are not addressing that challenge correctly. Like you said, most teams' code fails to generalize across seasons. Therefore, if we as a community emphasized this idea to teams, we would see better results rather than throwing a completely irrelevant "challenge" at them. I know my team does not try to write generalized code, rather we practically start from scratch each year.

You just outlined the problems that teams need to overcome with the Computer Science challenge from FIRST; now we need to put more emphasis on the teams to address these issues.

gblake 15-06-2015 00:54

Re: Open Invitation to help design a programming game for FRC
 
Quote:

Originally Posted by tindleroot (Post 1486818)
I know my team does not try to write generalized code, rather we practically start from scratch each year.

See previous posts in this thread. In general, you are supposed to start from scratch, unless you are legitimately attempting to publish something other teams will find useful.

That said, attempting to build a modest level of flexibility/generality into your code will probably (but not necessarily) help your team satisfy the requirements they impose on their producton processes and on the robots they produce; and writing some advice/examples along those lines into your team's training materials for future programmers, is probably a good idea.

connor.worley 15-06-2015 01:12

Re: Open Invitation to help design a programming game for FRC
 
In addition to this, teams could volunteer to help develop software for non-profits. Maybe attend hackatons? I see a lot of unused software+outreach opportunities.

gblake 15-06-2015 01:19

Re: Open Invitation to help design a programming game for FRC
 
Quote:

Originally Posted by faust1706 (Post 1486816)
Software is generally considered a failure if it fails to adapt to allow for an unforeseen, but plausible, use for the user.

For the most teams, their code cannot adapt. Their autonomous routine cannot adapt. The code fails to generalize across seasons.

By whom?

If you are the proverbial customer, you defined what the software must do and be. If adapting to unspecified conditions wasn't in your specification, the software isn't a failure.

If you aren't my customer, your opinion is interesting, but not particularly relevant or motivating, until it can be linked to something I or my customer require.

My guess is that a game or challenge that (mostly) matches what FRC is, instead of what someone says FRC should be, will have greater success.

On the other hand, anything that is both fun and easy to participate in stands a good chance of succeeding.

dubiousSwain 15-06-2015 08:58

Re: Open Invitation to help design a programming game for FRC
 
Quote:

Originally Posted by faust1706 (Post 1486816)
Software is generally considered a failure if it fails to adapt to allow for an unforeseen, but plausible, use for the user.

For the most teams, their code cannot adapt. Their autonomous routine cannot adapt. The code fails to generalize across seasons.

If we want people to make adaptable code, we have to create a challenge that requires adaptability. If we want code to be generalized, we must design a challenge where modularity is a bigger advantage than the cost of the time taken to code it. FRC games are neither of these things. Doing these things definitely makes good code, but they aren't required for FRC. We can't compare the code we want submitted to what we think "should" be written for FRC. We have to make people do these things by showing the advantages of doing them, not berating people who don't.

AlexanderTheOK 15-06-2015 09:14

Re: Open Invitation to help design a programming game for FRC
 
Quote:

Originally Posted by gblake (Post 1486825)
By whom?

If you are the proverbial customer, you defined what the software must do and be. If adapting to unspecified conditions wasn't in your specification, the software isn't a failure.

If you aren't my customer, your opinion is interesting, but not particularly relevant or motivating, until it can be linked to something I or my customer require.

My guess is that a game or challenge that (mostly) matches what FRC is, instead of what someone says FRC should be, will have greater success.

On the other hand, anything that is both fun and easy to participate in stands a good chance of succeeding.

That was the most fantastic piece of writing I have read all week.

Teams are building a robot to play the competition. Teams don't have many unforeseen circumstances, hence they don't plan for them.


Now, if the autonomous mode allowed, or even REQUIRED teams to intersect, like in the recent VRC challenge, you would see a lot of interesting code pop up as well as use of sensors like this one (a darn shame it's not a vex legal or cheap)

AlexanderTheOK 15-06-2015 09:15

Re: Open Invitation to help design a programming game for FRC
 
In the meantime, I've found robocode to be an amazing exercise in autonomous programming. Maybe it wouldn't be too hard to set up a competition surrounding it, and livestream official battles between submissions?

Heck. I'll do that. Who's with me? I have 4mbps up so I should be fine streaming 720p on twitch.


All times are GMT -5. The time now is 00:49.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi