Graduate Thesis Or Dissertation
 

Exploratory Study to Uncover Student Mental Models of Singly Linked Lists in the C Programming Language

Public Deposited

Downloadable Content

Download PDF
https://ir.library.oregonstate.edu/concern/graduate_thesis_or_dissertations/n583z2659

Descriptions

Attribute NameValues
Creator
Abstract
  • In computer science, learning abstract fundamental programming concepts requiring students to understand memory management can be very difficult and lead to misunderstandings that carry on into advanced topics. This is especially true in data structures with abstract data types. Understanding how novice students think and reason about data structures is important for improving teaching and learning in computer science. Most studies focus on student misunderstandings of advanced algorithms and data structures related to topics such as heaps, binary search trees, hash tables, dynamic programming, and recursion. Whereas, fewer studies focus on more elementary data structures, such as arrays and linked lists. Since linked lists serve as a bridge to understanding more advanced data structures, we believe that it is critical to identify students’ conceptual and procedural misunderstandings earlier rather than later. Therefore, directly after learning about linked lists using the C language, we conduct semi-structured, think-aloud interviews with 11 undergraduate students to uncover their mental models about singly linked lists in C, and how they apply their knowledge about singly linked lists to understand other types of linked lists. To determine the factors that might contribute to their understanding about linked lists, at the end of the interview, we ask students about the difficulties they had while learning about linked lists, and we give students a 10-minute visual-spatial reasoning test. Using rubrics to code responses to the interview questions, we quantify the accuracy of their mental models and reveal common misunderstandings, such as confusion between the node containing a node pointer and being a node pointer, failure to create a node structure, lack of knowledge regarding typecasting malloc, and lack of attention to the importance of the NULL value. We find that none of the participants have an accurate mental model of a singly linked list in C, after learning about and implementing them in their data structures course. Even though students struggle with expressing their conceptual understanding with enough detail in their verbal responses to interview questions, their performance on the coding questions is much better. The majority of students have a good procedural understanding of how to create and use the pieces of a linked list, and they understand how to implement most operations on a singly linked list in C. However, many students continue to struggle with C syntax and the prerequisite knowledge needed to understand linked lists in C, such as pointer manipulation and memory management. While we do not find a relationship between students’ visual-spatial ability and their conceptual or procedural understanding of linked lists in C, students report that the abstract nature of pointers and relating linked lists to the real world and prior knowledge about dynamic arrays contribute the most to their difficulties with linked lists in C.
License
Resource Type
Date Issued
Degree Level
Degree Name
Degree Field
Degree Grantor
Commencement Year
Advisor
Committee Member
Academic Affiliation
Rights Statement
Publisher
Peer Reviewed
Language

Relationships

Parents:

This work has no parents.

In Collection:

Items