Engineering Bowl
The Engineering Bowl, or E-Bowl, is one of the events in UF's Engineering Week, a yearly week-long event promoting engineering to kids and other students. I wrote the software for E-Bowl in 2006 in PHP. I rewrote it in Ruby on Rails the following year and refined it in the following years. The nifty buttons and background were made by Megan Gales, Assistant Director of Communications.
This software has been tested with Firefox, and I make use of some Firefox-specific formatting (curved borders), so that's the recommended (though not required) browser to run it on.
Software requirements
This program only requires the Ruby interpreter.
Download
You can download the software here as a single zip file.
License: Copyright (C) 2010 by Ashish MylesThis program is free to use, modify, and distribute as long as the original version here is credited. It is distributed WITHOUT ANY WARRANTY, express or implied.
Running the software
If ruby is in your path, you can run the software from the command line
with 'ruby script/server
'. There should be some output
indicating that the server is running. Then, direct your browser to
http://0.0.0.0:3000/
to use the software.
On windows, if the .rb
extension is associated with ruby,
you could rename script/server
to script/server.rb
and double-click it to run it. A window should pop up with
some output indicating that the server is running. If
http://0.0.0.0:3000/
doesn't work, then try
http://localhost:3000/
instead.
Directions
User interface
I recommend playing with it. Click on one of the "Load Example" buttons further down. Once the main screen is loaded, hit Ctrl-A to see invisible buttons scattered over the board. Hover the mouse over each of these buttons to see a tooltip describing what it does. Click the buttons one-by-one to try them out.
Rules
Scoring and attempts
The team who gets the problem correct gets full points for the problem, while a failed attempt is penalized the value of the problem. When a team makes an incorrect guess, other teams have a chance to buzz in to answer the problem unless it is a True/False problem. Here's a summary of how many attempts are allowed per question type.
- Daily-Double: Only the team who selects the Daily Double has a chance to bid and answer it.
- True/False: Only the first attempt is allowed. If the first team guesses and gets it wrong, then the correct answer is obvious.
- Multiple choice: Only two guesses total are allowed.
- Free-response: There are four attempts allowed (one for each player).
- Final round: Everyone (with a positive score) guesses simultaneously (so that there are four simultaneous guesses).
Note that all of the scoring is done automatically. If an error is made so that the score is incorrect, it can be corrected using the "Correct scores" invisible button (which is the second one at the top-right).
Question types
I personally recommend not using free-response-type questions because teams can always give an answer that is correct but not what you have listed. Sometimes what is being asked is ambiguous, but you don't realize it until the event is running. Moreover, if the answer is multiple choice, then the person at the laptop doesn't need to know whether or not the answer is correct - she or he can simply click the button corresponding to the team's choice. I generally recommend just sticking with multiple choice and True/False.
The final-round question must be multiple choice. I normally handle that by giving something like 16 choices so that the choices don't help.
Final round
Unlike all other question types, the final round involves a secret wager. A final round is automatically distinguished from the other rounds because it consists of only a single question (1 row and 1 column). When you enter the round, the final round topic is shown. At this point, we typically take a break while the teams write down their secret bids on paper and hand it to the host who hands it to the person at the laptop. This is where the secrecy of the bids has to be maintained. Here are the steps for the person at the laptop.
- Disconnect the laptop from the projector so that the contents of the laptop screen are no longer being displayed.
- Click on the question category and the bid window should pop up.
- Enter the bids and click on the "Bid!" button.
- The following screen should show an "All bids are in!" button and the message box at the top should show you all the bids for verification. Close (toggle) this message window since the bids are supposed to be secret. The "All bids are in!" button should still be in the middle of the screen.
- Verify that nothing secret is showing up on laptop screen and plug the projector back in.
- Once everyone is ready, click on the "All bids are in!" button to reveal the question.
- The team members should write down their answers secretly and give them to the host once the time is up. The host reads them out loud and you should select them from the drop box. If there is no answer, select the '-' choice. Click "Done" after selecting all the answers.
- The following screen will show the answers and update the score automatically. If there is a tie, you can go to your backup round if you have one. Otherwise, you can click the "Declare winner" invisible button at the top right corner to show the final screen.
File format
Structure
There are sample pre-formatted E-Bowl files in the FINAL/
directory. I recommend modifying the existing FINAL/final.txt
(in the software directory) so that you can simply use the "Load example" button
on the setup page. The setup page has more details.
Comments
Any line whose first character is # is ignored.
HTML Entities
You can use HTML entities within the file and they will show up in the actual question. An excellent summary of HTML 4.0 entities for special characters is http://www.htmlhelp.com/reference/html40/entities/.
NOTE: Since HTML entities begin with &, if you wish to have a literal & in the file, use "&".
Tags
Most of these are demonstrated in the first category (first column on jeopardy) of the example. So try it out.
Nested tags of the same type are not allowed (and the results are
unpredictable). However, notice that there are four ways to delimit tags:
using the box brackets [ and ], using the curly braces { and },
using the vertical bar |, and using the forward slash /.
You can nest a box bracketed one within a curly-braced one and vice versa.
Therefore you can nest up to 4 levels deep; e.g. {-c [-b |-i /-sup text -/-|-]-}
Tag format: [-tag stuff -] OR {-tag stuff -} OR |-tag stuff -| OR /-tag stuff -/
- Regular tags:
[-b I'm bold-]
gets translated to the HTML code<b>I'm bold</b>
- b - bold
- i - italics
- sup - superscript
- sub - subscript
- pre - like html <pre>
- code - code/fixed-width font
- h1 - h1 header
- h2 - h2 header
- h3 - h3 header
- c - center
- Images:
[-img me.jpg-]
gets translated to the HTML code<img src="file:///my/imagedir/me.jpg"></img>
wherefile:///my/imagedir/
is the image directory in the form above.