Back to Ashish's home page

Engineering Bowl

E-Bowl in action
That's me at the laptops in the E-Week 2007 shirt.

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.


You can download the software here as a single zip file.

License: Copyright (C) 2010 by Ashish Myles
This 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 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 doesn't work, then try http://localhost:3000/ instead.


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.


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.

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.

File format


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.


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

NOTE: Since HTML entities begin with &, if you wish to have a literal & in the file, use "&".


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 -/

Back to Ashish's home page