Identifying and correcting Java programming errors for introductory computer science studentsMaria HristovaAnanya MisraMegan RutterRebecca Mercuri
Maria Hristova
Ananya Misra
Megan Rutter
Rebecca Mercuri
2003
Proceedings of the 34th SIGCSE technical symposium on Computer science education
Programming in Java can be a daunting task for introductory students, one that is only compounded by the cryptic compiler error messages they see when they first start to write actual code. This article details a project conducted by faculty and advanced students in the creation of an educational tool for Java programming, called Expresso. This paper discusses some existing programming tools, explains their drawbacks, and describes why Expresso is different. We also include a detailed list of typical errors made by novice programmers, used in the construction of the Expresso tool.
Study InformationManually extracted from the paper by the Progmiscon.org team
Programming Languages
Java
Method
Qualitative (survey of instructors and students)
Subjects
Unknown number of undergraduate students, professors, SIGCSE members
Phenomena Studied
Errors
Common syntax, semantic, and logic errors in JavaArtifact
We are not aware of an artifact supporting this paper.Related MisconceptionsReferenced by 10 Misconceptions
AssignCompares — Java
= compares two valuesAssignCompares — Python
= compares two valuesEqualsComparesReferences — Java
o.equals(p) compares the references stored in the variables o and pNoReservedWords — Java
Every sequence of letters and digits starting with a letter can be used as an identifierNoReservedWords — Python
Every sequence of letters and digits starting with a letter or an underscore can be used as an identifierNoShortCircuit — Java
&& and || always evaluate both operandsNoShortCircuit — Python
and/or always evaluate both operandsNoSingleLogicAnd — Java
& is only a bitwise ANDParenthesesOnlyIfArgument — Java
() are optional for method calls without argumentsParenthesesOnlyIfArgument — Python
() are optional for function calls without arguments