Analysis of BABELnot MCQs for Level 1, 2 Exams

advertisement
Analysis of BABELnot MCQs for
Level 1, 2 Exams
Daryl D’Souza, James Harland, Margaret Hamilton
BABELnot Melbourne, 20 July 2012
Research Background
 Research aim: Analyse BABELnot MCQs in written
exams at Levels 1 and 3. These questions employed in
thinking-out-aloud experiments (ref: ??)
 Research questions: How do the students’ performance
on BABELnot questions correlate with the overall
performance on the exams?
Methodology
The exams
 Programming 1 (Level 1)
 Semester 1, 1st year, CS/SE
 No previous programming (strictly) necessary
 Java language
 20 MCQs, 5 SAQs, 1 3-part themed question
 All three BABELnot Qs used as MCQs
 Programming Techniques (Level 3)
 Typically 2nd year
 Prerequisite Programming 2
 C language
 Two BABELnot Qs used
 one as one part of a seven-part SAQ
 one SAQ on its own
Question 5 P1
boolean testArray(int [] x, int arrayLength)
{
for (int i = 0; i < arrayLength-1; i++)
{
if (x[i] > x[i+1]) return false;
}
return true;
}
If testArray returns true after this code is executed, which of the following is the strongest
statement we can make about the contents of the array x? Assume the subscripts p, p+1 and q
are legal indexes of x.
*A.
B.
C.
D.
x[p] <= x[q] for all p < q.
x[p] <= x[p+1]
x[p] <= x[p+1] where p is an even number (i.e. 0, 2, 4, etc).
No statement can be made, as the last iteration of the loop will attempt to index an element of
the array that does not exist.
E. x[0] < x[arrayLength-1]
Question 11 P1
How many times will the while loop body below be executed?
The code below in the right of the table moves all elements of the array x one place to the
right, with the rightmost element being moved to the leftmost position. The variable length
contains the number of elements in the array x:
Line
number
Left
right
1
int temp = ???
int temp = x[length-1];
2
for (int i ???
for (int i=length-2; i>=0; i--)
3
4
x[i-1] = x[i];
??? = temp;
x[i+1] = x[i];
x[0] = temp;
Consider the partial code provided in the above table, on the left. When the occurrences of
??? are replaced with appropriate code, that code can undo the effect of the code on the right.
That is, when the ??? are replaced appropriately, the code can move all elements of the array
x one place to the left, with the leftmost element being moved to the rightmost position.
The table already shows that line 3 is different in the code on left to the code on the right.
When the ??? on lines 1, 2 and 4 are replaced with appropriate code, which of these lines of
code must be different between the left and the right
A. None of the lines 1, 2 and 4 must be different.
B. Only lines 1 and 4 must be different.
C. Only line 2 must be different.
*D. All of the lines 1, 2 and 4 must be different.
Question 12 P1
Below is incomplete code for a function which returns the minimum
value in the array x. When an appropriate line of code is selected from each box,
the completed code will scan across the array, using the variable minsofar to
remember the best candidate for minimum so far.
int min(int x[], int arrayLength)
{
int minsofar = A) 0
;
B) x[0]
for (int i = 1 ; i < arrayLength; i++)
{
C) minsofar
if ( x[i] < D) x[minsofar]
)
{
minsofar = E) i
;
F) x[i]
}
}
G) minsofar
return H) x[minsofar] ;
}
Which of the following choices of lines from the boxes will produce a correct
version of the function min?
A) Lines ACFG only.
B) Lines ADEH only.
C) Lines BCFG only.
*D) Both lines ADEH and lines BCFG.
Question 1g PT
In one sentence, explain in plain English the purpose of the following piece of code
int fn(int *array, size_t n)
{
size_t i;
for (i = 0; i < n - 1; i++) {
if (array[i] > array[i + 1])
return -1;
}
return 1;
}
.
Question 4 PT
The purpose of the block of code below is to take an array of integers and move all elements of the
array one place to the right, with the rightmost element moving around to the leftmost position.
void shift_right(int *array, int n)
{
int temp = array[n - 1];
int i;
for (i = n - 2; i >= 0; i--)
array[i + 1] = array[i];
array[0] = temp;
}
Write a function shift_left that will move all elements of the array one place to the left, with the
leftmost element moving around to the rightmost position.
void shift_left(int *array, int n)
{
/* . . . */
}
Results—P1
60
50
40
Question 5
30
Question 11
Question 12
20
10
0
Correct %
Answer a %
Answer b %
Answer c %
Answer d %
Answer e %
Results—P1
120
100
80
BABELnot
60
Other MCQ
BABEL
40
20
0
HD
DI
CR
PA
NN
Flop
Results—PT
90
80
100
70
60
80
50
BABELnot
40
BABEL
30
60
1g
40
20
10
1a-f
20
0
HD
DI
CR
PA
NN
Flop
0
HD
DI
CR
PA
NN
Flop
Chi-squared: p = 0.20
90
120
80
100
70
60
80
50
BABELnot 60
Overall
40
40
30
4
2,3,5
20
20
10
0
HD
DI
CR
PA
NN
Chi-squared: p = 0.228
Flop
0
HD
DI
CR
PA
NN
Flop
Discussion
 The only significant correlation was between the
BABELnot questions and BABEL ones on the PT exam
 No significant correlations on P1, possibly due to being
only 3 MCQs and less overall marks than on PT.
 BABELnot questions tended to ‘spread’ the students
out more than other questions (high mode & median,
lower mean)
BABELnot Deliverables
 If Mercy's work contributes to BABELnot, then it must be contributing
(perhaps indirectly) to one of the projects' deliverables ...
•
A formalism for describing learning outcomes, exam
assessment, and the method for mapping between the two, for the
first three programming subjects
•
The learning outcomes of the first three programming subjects,
from at least the six participating universities, re-expressed in the
formalism
•
An archive of exam questions, with meta-tags mapping the
questions to the formalism, serving as examples to other academics
•
Performance data from real students for a subset of the archived
exam questions
Mercy’s work
 Briefly Mercy’s work involves the creation of Facebook sites with
the BABELnot questions posted there. We aim to find out:
 Why students make the errors they do
 What mental models students have about these questions
 What words they are using to explain their answers and/or
difficulties
 Find out in their own words how most students perform while
answering these exam questions
Contribution to BABELnot
 Performance data from real students for a subset of the
archived exam questions
 These are real students enrolled in the programming courses
 They must solve the actual subset of BABELnot questions
 They must explain their steps somehow – to the group, and not to
the instructor alone, as in a pencast.
 A formalism for describing learning outcomes, exam
assessment as in their discussions, students will need to
identify where they are struggling, and this discussion can:
 improve our formalism and language
 identify the problematic learning outcomes eg: can we simply say
one outcome would be to compute a ‘sort’ if we are discussing
objects?
Download