bevilacquaAssessingUnderstandingExpressions2024

2024

Assessing the Understanding of Expressions: A Qualitative Study of Notional-Machine-Based Exam Questions

Proceedings of the 24th Koli Calling International Conference on Computing Education Research

Background and Context. Notional machines are widespread in computing education. While they often are used to explain programming concepts, prior work on visual program simulation demonstrated their use for assessment. This paper presents a qualitative study of the use of a notional machine identified in prior literature—“expression as tree”—as an instrument to assess the understanding of expressions.

Authors:
Joey Bevilacqua
Luca Chiodini
Igor Moreno Santos
Matthias Hauswirth

Study Information
Manually extracted from the paper by the Progmiscon.org team

Programming Languages

Java

Method

Qualitative and quantitative systematic research

Subjects

542 hand-drawn expression trees from 12 exams in 6 university courses

Artifact

https://zenodo.org/records/13898595

Related Misconceptions
Referenced by 30 Misconceptions

Misconception
ArithmeticPlusPrecedes
Addition has higher precedence than string concatenation
Misconception
ArrayAllocationWithoutNew
Arrays are created without the new keyword
Misconception
ArrayAllocationWithoutNew
Arrays are created without the new keyword
Misconception
ArrayHasLengthMethod
To get the length of an array, one needs to call its length method
Misconception
CallRequiresVariable
One needs a variable to invoke a method
Misconception
CallRequiresVariable
One needs a variable to invoke a method
Misconception
ConstructorWithoutNew
One can write the constructor name, without new, to instantiate a class
Misconception
ConstructorWithoutNew
One can write the constructor name, without new, to instantiate a class
Misconception
ElseAlwaysExecutes
The else branch of an if-else statement always executes
Misconception
InlineCallInExpressionTree
The expression tree of an expression involving a call inlines the call's computation of the returned value
Misconception
InlineVariableInExpressionTree
The expression tree of an expression involving a variable inlines the variable's definition
Misconception
LiteralString
When passing a literal string as argument to a method, no quotes are needed
Misconception
LiteralNoExpression
A literal is not an expression
Misconception
LiteralNoExpression
A literal is not an expression
Misconception
NoAtomicExpression
Expressions must consist of more than one piece
Misconception
NoAtomicExpression
Expressions must consist of more than one piece
Misconception
NoAtomicExpression
Expressions must consist of more than one piece
Misconception
NoAtomicExpression
Expressions must consist of more than one piece
Misconception
NoAtomicExpression
Expressions must consist of more than one piece
Misconception
NoAtomicExpression
Expressions must consist of more than one piece
Misconception
NoAtomicExpression
Expressions must consist of more than one piece
Misconception
NoAtomicExpression
Expressions must consist of more than one piece
Misconception
ObjectsMustBeNamed
A variable is needed to instantiate an object
Misconception
ObjectsMustBeNamed
A variable is needed to instantiate an object
Misconception
ParenthesesOnlyIfArgument
() are optional for method calls without arguments
Misconception
RightToLeftChaining
Chained accesses are invoked from right to left
Misconception
SingleQuoteString
String literals can be in single quotes
Misconception
TargetTyping
The type of a numerical expression depends on the type expected by the surrounding context
Misconception
ThisChildInCallExpression
Instance method or constructor call nodes in expression trees have a child labeled "this"
Misconception
VariablesHoldExpressions
= stores an expression in a variable

Stay up-to-date

Follow us on  twitter to hear about new misconceptions.