Identifying student misconceptions of programmingLisa C. KaczmarczykElizabeth R. PetrickJ. Philip EastGeoffrey L. Herman
Lisa C. Kaczmarczyk
Elizabeth R. Petrick
J. Philip East
Geoffrey L. Herman
2010
Proceedings of the 41st ACM technical symposium on Computer science education - SIGCSE '10
Computing educators are often baffled by the misconceptions that their CS1 students hold. We need to understand these misconceptions more clearly in order to help students form correct conceptions. This paper describes one stage in the development of a concept inventory for Computing Fundamentals: investigation of student misconceptions in a series of core CS1 topics previously identified as both important and difficult. Formal interviews with students revealed four distinct themes, each containing many interesting misconceptions. Three of those misconceptions are detailed in this paper: two misconceptions about memory models, and data assignment when primitives are declared. Individual misconceptions are related, but vary widely, thus providing excellent material to use in the development of the CI. In addition, CS1 instructors are provided immediate usable material for helping their students understand some difficult introductory concepts.
Study InformationManually extracted from the paper by the Progmiscon.org team
Programming Languages
Java
Method
Qualitative (interviews)
Subjects
10 undergraduate students
Phenomena Studied
Misconceptions
Misconceptions related to memoryArtifact
We are not aware of an artifact supporting this paper.Related MisconceptionsReferenced by 5 Misconceptions
LocalVariablesAutoInitialized — Java
Local variables are automatically initializedMustInitializeFieldInConstructor — Java
Constructors must assign values to all fieldsNullIsObject — Java
null is an objectVariablesHoldObjects — Java
A variable of a reference type contains a whole objectVariablesHoldObjects — Python
A variable contains a whole object