Often in engineering and science based units, there is a need for students to demonstrate proficiency at completing detailed, multi-part questions. This github describes how Blackboard's "Fill in Multiple Blanks Question" type questions can be used for just such a question.
Blackboard Help provides the basics for creating Fill in Multiple Blanks Questions . These type questions allow multiple text-box enter fields to be presented to the student, one for every parameter (variable) set up in the question. Parameters are setup anywhere in the question by typing parameters formatted as [a], [b], [c] where a,b,c will represent the text-strings entered by the students as the answers associated with each text-box. Importantly, you can enter as many of these parameters as you like, which is the key property required to form a mulit-part question. When setting up Fill in Multiple Blanks Questions, at the stage of constructing the (in this case three) answers matching a,b,c, Blackboard provides several options in the pull down menu as indicated in the image right.
These include Exact Match which will match only the defined text string, Contains which will search the string text entered by the student for the sub-string given as the answer, and finally Pattern Match. Only Pattern Match will allow the student's response to match a string, number (float or integer), or both a number and string (which might be used for a number containing a unit). It could also allow a response to be entered as a vector such as 3x+5y and evaluated correctly. This makes the use of Pattern Match extremely powerful in engineering and science based questions. The key to using Pattern Match is in understanding how to set up the answers which use a regular expression to evaluate an entered value. There are some very useful sites that allow you to experiment with the evaluation of regular expressions. So what's the catch ? Well:
- using Pattern Match requires an understanding of regular expressions. If you're a programmer you may be familiar with regular expressions and hence setting up such a answer on Blackboard is easy. If you do not use regular expression in your day-to-day life, there is some learning to be done. However I encourage you to draw on support from local computer programmers within the institution (students and/or staff), see my cheat sheet below and/or check out the many tools online to help
- the other down-side is that when displaying the answers to the problem, students are not presented with a clear response like "the answer was 8.0". Instead, the view they get might show a answer like
([+])?8((.)([012])([0-9]?)+)?([\s])?(V^2)?. Some students can figure it out, some will need some guidance, and others will just need to contact you for the answer. I argue that this encourages another form of learning (research) by the student, and any student who engages with the teacher for more information is taking a proactive apporach to their studies.
So restating the above, without using pattern matching, the answers provided by the student are matches to the string data that the student enters so any answer you provide must match exactly or contain a sub-string of the student-entered data. There is little flexibility here. However using pattern matching, the solutions can be interpreted as numerical data and variations are allowed including leading zeros (0.81), different exponent forms (E,e) and differing number of decimal palces (3.1 verses 3.14156) - all the different forms can be accepted as correct. IMPORTANTLY, it is possible to check for the inclusion of units or to ignore units if desired as I will show later.
Some pattern matching I have used and find useful are:
| Regular expression | Matches |
|---|---|
| 3.7([0-9]?)+([E,e])([+])?3 | 3.7e3, 3.71223e3,3.7e+3,3.7332E3,3.7e3 |
| 3714(.)?([0-9]?)+ | 3714,3714.122,3714.,3714.000 |
| [0]?.0024([0-9]?)+ | .0024,0.0024,0.0024566 |
| -2.4([0-9]?)+([E,e])-(0)?5 | -2.4e-5,-2.46565e-5,-2.46565e-05,-2.46565E-5 |
| ([+])?8((.)([012])([0-9]?)+)?([\s])?(V^2)? | 8.156,8,8.0V^2,8.0 V^2,+8.0 V^2 (basically 8 up tp 8.2 with or without units) |
Some of these look daunting, but lets break them down a little to look at what each sub-section of the Regular expression does:
[012][Interpretation]: Any text enclosed by square brackets [] indicates any of these numbers can be used at this point in the students answer, so this allows an entry of 0, 1 or 2.?[Interpretation]: A quesion marks ? indicates the preceeding text to match is optional()+[Interpretation]: A plus sign + after brackets () indciates that any number of the expression in the brackets () are allowed([0-9]?)+)[Interpretation]: The sub-string allows any combination of numbers 0 thru 9 to be entered as many times as you like, so it allows 3,31,314,3141,31415 etc.. This is useful where students enter too many decimal places in an answer. Effectively it tells the system to ignore these digits([\s])?[Interpretation]: some students will enter a space before units, some will not. Some will put a space after the last digit, some will not. This setting simply tells the system to ignore any white-spaces in these locations(\.)[Interpretation]: the decimal point is a special character in a regular expression, so to properly match a decimal point in the answer, make sure to proceed with a \([+])?[Interpretation]: some students may enter a + at the start of their answer, especially if the solution depends on the sign and they explictly want to tell the grader that there answer should be positive. This option just tells the system to ignore at + sign this if entered.+([E,e])[Interpretation]: allows an answer in exponent form with a positive exponent using either capital or lower case for the exponent.8((.)([012]): [Interpretation]: This is the really important bit, the answer !!. Entering any numbers or letters tells the system to match to these. The use of numbers in brackets [012] tells the systems that the next number can be a 0, 1 or 2. so this allows answers of 8.0, 8.1 or 8.2, effectively matching the solution a range rom 8.0-8.2
Armed with the above, you can just cut-and-paste these various forms into your answer to construct a robust solution that catches as many correct answers as possible. What is nice about the Fill in Multiple Blanks answer format is that it allows up to 20 DIFFERENT potential answers (and hence up to 20 diferrent patterns to match) for EACH paramater - that's up to 20 regular expression answers for a,up to 20 regular expression answers for b..etc.. . If a student emails you indicating they did not get graded correctly, you can look at their response and if it needs a new pattern match statement, simple create another one and add it to the list of patterns that will match (see Figure 4 below). This will then automatically be regraded for all students and next year the same problem will not occur. I have found after about 2 years of updating answers, I no longer have complaints from students over the answers that they entered.
Pattern matching is particularly usefull for adding a range to your answers as indicated in the table above. However if the number is say 8 and can be +0.2999 or -0.2 around that answer (I deliberately chose an asymetrical uncertainty range), then the last solution in the table would cover 8->8.2999, but would not capture the 7.7-8 range of values. However since multiple answers are allowed for Fill in Multiple Blanks this case can be covered by entering a second possible answer. This is illustrated in more detail through the example below.
Consider the Question entered below. Note I have used two variables [I] and [P] to represent the current and power, respectively. Ensure that you select the partial marks button before going on to the next screen, otherwise, if the student gets the current wrong, then power-answer will automatically be marked wrong.
At the next screen I show the various pattern matching forms I have used for the question. In this example, the pattern matching allows for a range of ranges 7.8->8.2.99 and MUST include units of either A or mA to be marked as correct. The same is not true for the power answer where I do not require units to be entered.
Importantly, note that each of the questions being asked is sharing the same question dataset (the voltage and the current) so that complex, multi-part questions can be asked based on a single system, figure or plot.
The table below shows some very useful codes that can be used when making Engineering/Science based questions. Just switch into HTML mode, enter the code starting with & ending with ; and the displayed page will show well formated (inline) Greek-symbols. This displays much better than inserting the same Greek-symbol using the equation editor.
To insert a symbol, use the process shown below. In the text field of your question, STEP 1: Insert your text, then STEP 2: click the HTML button which brings up a HTML editor. STEP 3: place your cursor whereever you want the symbol and type the code listed in the table above (in this case I want an Ω symbol so I enter Ω then complete the editing by STEP 4: clicking the UPDATE button. The desired symbol should now be entered in your question. If you need more of this type of symbol in the question, you don't need to repeat the process - just use cut-and-paste (ctrl-C then ctrl-V)



