To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.roboticsOpen lugnet.robotics in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / 23644
23643  |  23645
Subject: 
Re: FLL not allowing NQC; Mindscript is allowed
Newsgroups: 
lugnet.robotics
Followup-To: 
lugnet.robotics.rcx.robolab
Date: 
Thu, 10 Mar 2005 06:34:33 GMT
Viewed: 
3321 times
  
In lugnet.robotics, John Hansen wrote:
   In lugnet.robotics, Steve Hassenplug wrote:
   Dean touched on another good reason. It’s much easier to judge GUI programs (Robolab & RIS) than text-based languages. In some cases, the judges are NOT programmers, or engineers, they are volunteers, who may have been trained earlier that day.

First off, judging the technical merit of a program of any significant degree of complexity by simply looking at the code (be it text-based or graphical) for 20 minutes or less is nonsense. The only judging of that sort that ought to occur should be based on the team’s presentation of the program logic to the judge in conjunction with a review of the code led by the team members.

Complete agreement. But it is unfortunately not the case.

   It is *far* easier to look at a text-based program, however, and make sense of what it means and whether it is technically excellent than it is to look at a connected series of tiny icons with cryptic numbers and symbols next to them (or embedded within them). A volunteer judge would have to know what each image represented and what its semantics are before they could make any sense of a graphical program.

Actually, they would only need to move the curser over any symbols they were unfamiliar with. The contextual help will spell it out for them.


  
This, for example,



vs
// make our press count global so we can access it from BricxCC
int PressCount;

task beeper()
{
  // beep forever
  while (true)
  {
    PlayTone(440, 50);
    Wait(100);
  }
}

task main()
{
  // configure our sensor as a touch sensor
  SetSensor(SENSOR_1,SENSOR_TOUCH);
  // start our beeper task
  start beeper;
  // check for 6 touch sensor presses
  while (PressCount <= 6)
  {
    // a press == pressed then not pressed
    until(SENSOR_1);
    until(!SENSOR_1);
    // increment our press count
    PressCount++;
  }
  // now stop beeping
  stop beeper;
}
or (as an interesting alternative):
// make our press count global
int PressCount;

#define PressEvent 1 // define a meaningful name for event #1

task PressWatcher()
{
  while (true)
  {
    // wait for a press event to occur
    monitor (EVENT_MASK(PressEvent))
    {
      Wait(100);
    }
    catch
    {
      // increment our press count when it does
      PressCount++;
    }
  }
}

task main()
{
  // initialize our press count to zero
  PressCount = 0;
  // configure our sensor as a touch sensor
  SetSensor(SENSOR_1,SENSOR_TOUCH);

  // configure the press event
  SetEvent(PressEvent, SENSOR_1, EVENT_TYPE_PRESSED);

  // start our watcher task
  start PressWatcher;

  // beep until 6 press events have occurred
  while (PressCount <= 6)
  {
    PlayTone(440, 50);
    Wait(100);
  }
}

A brief glance at either of the two text programs makes it clear (with or without comments) that the goal is to make the RCX beep continually until the touch sensor on port 1 is pressed 6 times.

Without additional information can anyone here tell in 10 seconds what the Robolab program does? I highly doubt it.

Actually yes. And it is not equivalent to your programs. This is:



The CEEO example you cite is much more complex. It loops, playing 1 tone while the touch sensor is released, and a 2nd tone while the touch sensor is pressed. Once the 2nd tone has played 6 times, a final third tone plays. Note that it has nothing to do w/the number of times the sensor is clicked.

What many in this thread don’t seem to appreciate is that what may be immediately obvious to a NQC/Robolab/RIS programmer is not readily apparent someone who is not. If NQC is added to FLL, judges who are proficient in 3 languages will be necessary and they will be difficult to find.

Cheers,

Tom



Message has 2 Replies:
  Re: FLL not allowing NQC; Mindscript is allowed
 
(...) The page from which the original image came((URL) says this: "In this program, the RCX will continue beeping until the button is pressed six times. The container keeps track of each time the button is pressed." Having no way to tell simply by (...) (20 years ago, 10-Mar-05, to lugnet.robotics.rcx.robolab, FTX)
  Re: FLL not allowing NQC; Mindscript is allowed
 
(...) Just to clarify, your sample program is not really equivalent to the two NQC programs I posted. In my two samples I used two tasks and a global variable. Your sample would need to use a container and a task split to truly be equivalent. (...) (...) (20 years ago, 14-Mar-05, to lugnet.robotics, FTX)

Message is in Reply To:
  Re: FLL not allowing NQC; Mindscript is allowed
 
(...) First off, judging the technical merit of a program of any significant degree of complexity by simply looking at the code (be it text-based or graphical) for 20 minutes or less is nonsense. The only judging of that sort that ought to occur (...) (20 years ago, 9-Mar-05, to lugnet.robotics, FTX)

114 Messages in This Thread:
(Inline display suppressed due to large size. Click Dots below to view.)
Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact

This Message and its Replies on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR