Programming Aptitude Testing As A Prediction of Learning To Program
Programming Aptitude Testing As A Prediction of Learning To Program
14th Workshop of the Psychology of Programming Interest Group, Brunel University, June 2002 www.ppig.org
Tukiainen & Eero Mönkkönen ii
Subjects
The subjects in the experiment were students of the Business Information Degree programme at North
Karelia Polytechnic. All of them were first-year students and all volunteered for the experiment. They
received no pay for their participation nor was any other incentive used. Their background education
consisted of a normal Finnish elementary education with 12 years of public schooling, ending with a
matriculation examination.
Materials
The pre-test and the post-test materials are presented in appendices A and B respectively at the end of
this paper.
Data collected
Students’ mathematics and Finnish high school grades (MATH = mathematics grade, FINN = Finnish
language grade, scale 1-10), results of scholastic aptitude tests (LOG = logical aptitude, VERB =
verbal aptitude, LEARN = learning aptitude, scale 1-5) and results of the programming aptitude test
(scale 1-5) and results of the final exam (scale 1-5) of students’ first programming course at the
polytechnic were used in this study.
Design
All of the subjects participated at each of the tests. There were no differences made in the treatment of
the participants. Of the original 33 subjects, 7 were removed from the later analysis because they did
not for various reasons attend the final exam.
Procedure
The high school marks were collected from the students’ applications to the Polytechnic. The
scholastic aptitude tests were carried out by a professional company. In these tests the applicants’
verbal ability (VERB) was tested by having them follow a given set of instructions. Their logical
ability (LOG) was tested through tasks in which they had to handle relations between different words.
Their learning ability (LEARN) was tested through tasks where the applicants had to convert words
into numbers according to a given set of instructions as fast as possible. The scholastic aptitude tests
were carried out during the entrance exams to the polytechnic. The programming aptitude test was
carried out after the students had been admitted to the school and before the start of their first
programming course. The pre-test (a programming aptitude test) (Huoman, 1989) was one designed
by M.Sc. J. Huoman, a graduate from the Department of Computer Science, University of Joensuu.
The test consists of a collection of programming-like tasks that do not require previous programming
experience. The post test was the final exam of the students’ first programming course, which lasted
one semester with 6 hours a week lectures and exercises The tool used during the course was Ms
Visual Basic.
Results
We equated the students’ understanding of programming concepts in the final exam with the mastery
of their first course materials. The questions in the final exam concerned the mastery of Ms Visual
Basic concepts, control flow constructs, understanding of the data and control flow and two simple
programming tasks.
5 1 1
Total 9 12 5 26
Figure 1 shows the distribution of the final exam grades and the grades from the scholastic aptitude
tests. The attributes in the scholastic aptitude test (LOG, VERB, LEARN) have been unified in a
single variable entitled ABILITY (the average of the original attributes). The justification for the
unification was tested using Cronbach’s test (alpha = 0.8413).
There were no significant correlations between the grades from scholastic aptitude and the grades
from the final exams. Neither were there any significant correlations between the programming
aptitude test and the mathematics grade, the Finnish language grade and the attributes in the scholastic
aptitude test (See Table 1).
If we take a closer look at grades from the programming aptitude test and the grades from the final
test, we realize that there seems to be no interaction between them (See Figure 2).
Table 1 shows that there is either a significant or very significant correlation between the attributes of
scholastic aptitude tests. This seems quite natural. When the final exam grades are compared to the
attributes in the scholastic aptitude test, the other attributes, with the exception of the logical attribute,
have a negative correlation to the grades. So it seems that the final exam could emphasize the logic
ability of the students.
There is a very significant correlation between the Huoman programming aptitude test and the final
exam. So it seems that the Huoman test and the exam measure the same abilities of the students.
Because no other dependencies to the measured background variables were found, this made us
wonder if there are any other background variables that could better explain the interaction. We
decided to ask prior programming experience from the subjects. They all answered the email
questionnaire concerning their experience.
Thus the group was divided into two study groups. The first group (n = 11) had no background
knowledge of programming, whereas the second group (n = 15) had some experience of programming
(on an average they had experience on one programming language with 1 to 5 programs with a length
of 1-100 lines). Their background was controlled by their final mathematics and Finnish language
marks on their high school diploma and the scholastic aptitude test. There were no significant
differences between the groups.
When we take into consideration the background knowledge of the subjects, we see a difference in the
distribution of Huoman aptitude test results and the grades from the final exam (See Figures 3 and 4).
In Figure 3 (the group with no prior programming knowledge), it seems that the Huoman
programming aptitude test gives no evidence of success in the programming exam. The only
noticeable trend could be that if a student is very successful in the Huoman test (grades 4 to 5), then
she will be successful in the programming test as well.
In Figure 4 (the group with prior programming knowledge), there seems to be a more systematic
arrangement. The Huoman aptitude test seems to provide a floor limit to the success in the
programming test. This is not a very clear effect, but seems to be coherent.
6
Final exam grade
0
1 2 3 4 5 6
0
1 2 3 4 5
Task 2
Let i and j be integers.
List all values of i and j, that make the expression to be always true
a) (i>=1) and (i<=5)
The expression is true when i has values:
b) (j>=3) or (j<=7)
The expression is true when j has values:
Task 3
Write a letter sequence, that is next on the series. Try to determine the general form of the series:
a) bce , bbcde , bbbcdde , __________________________
The general form:
b) bcace , bcacacace , bcacacacacace , __________________________
The general form:
c) __________________ , abcccdd , abbccccdd , abbbcccccdd , …
The general form:
Task 4
Your job is to sum up 50 numbers and at the end reprt the sum and the count of numbers that were positive numbers (>0).
Describe how you would solve the problem or write in a pseudo-code.
Task 5
Your job is to deduce which of the given numbers is the smallest. How many comparisons you have to make if you have:
a) 3 numbers ___________________
b) 6 numbers ___________________
c) n numbers ___________________ (n>=1)
Task 2.
a) Write the following loop using For-statement
k=1
Do until k > 50
Number_table (k) = 0
print k
k=k+1
Loop
b) Write the following Case - statement using conditional statements (If – Then – Else):
Select Case intNumber
Case 1
Print ”Number is 1”
Case 6
Print ” Number is 6”
Case Else
Print ”All the other numbers”
End Select
Task 3.
What does the following program print?
Dim a,b,c,d,e As Integer
a= 2
if a = 1 then
a = a+1
end if
if a = 2 then
a = a+2
end if
if a = 3 then
a = a+3
end if
if a = 4 then
a = a+4
end if
Print ”a=”+a
b=2
Select Case b
case 1
b=b+1
case 2
b=b+2
case 3
b=b+3
case 4
b=b+4
Print ”b=”+b
c = 11 \ Int(8/3);
Print ”c=”+c
d = 20
for e = 1 to 4
d=d–e
Next e
Print ”d=”+d
a=1
e=1
while a < 8
a=a+1
if a < 4 then
e=e+a
else
e=e+2
end if
wend
Print ”e=”+e
Task 4.
Write a program that first sorts into ascending order and then prints out the numbers in the Credits –table. The Credits –table
has been declared:
Option Base 1
Dim Credits (15) As Integer
Task 5.
Write a program that reads numbers from the user, until the number 0 is encountered or 20 numbers have been inputted. The
numbers must be saved into the Information –table. After this the program should go through Information –table, and figure
out:
a) Is the number 50 in the table?
b) How many numbers are < 50?
c) What is the average of all the numbers?