Theses and Dissertations

Issuing Body

Mississippi State University


Mohammadi-Aragh, Jean M.

Committee Member

Bethel, Cindy

Committee Member

Jones, Bryan A.

Committee Member

Swan, J. Edward, II

Date of Degree


Document Type

Dissertation - Campus Access Only


Computer Science

Degree Name

Doctor of Philosophy (Ph.D)


James Worth Bagley College of Engineering


Department of Computer Science and Engineering


Providing a sufficient level of personalized feedback on students' current level of strategic knowledge within the context of the natural programming environment through IDE-based learning analytics would transform learning outcomes for introductory programming students. However, providing sufficient insight into the programming process was previously inaccessible due to the need for more complex and scalable data collection methods and metrics with a wider variety for understanding programming metacognition and the full programming process.

This research developed a custom-built web-based IDE and event compression system to investigate two of the five components of a five-dimensional model of cognition for programming skill estimation (1) Design Cohesion and (2) Development Path over Time. The IDE captured students' programming process data for 25 participants, where each participated in two programming sessions that required both a design and code phase. For Design Cohesion, the alignment between flowchart design and source code implementation was investigated and manually classified. The classification process produced three Design Cohesion metrics: Design Cohesion Level, Granularity Level, and Granularity Score. The relationship between programming skill and Design Cohesion was explored using the newly developed metrics and a

case-study approach. For the Development Path over Time, the compressed programming events were used to create a Timeline of Events for each participant, which was manually examined for distinct clusters of programming patterns and behavior such as execution behavior and debugging patterns. Custom visualizations were developed to display the timelines. Then, the timelines were used to compare programming behaviors for participants with different programming skill levels. The results of the investigation into Design Cohesion and Development Path Over Time contribute to the fundamental understanding of differences between beginner, intermediate, and advanced programmers and the context in which specific programming difficulties arise. This work produced insight into students' programming processes that can be used to advance the model of cognition for programming skill estimation and provide personalized feedback to support the development of programming skills and expertise. Additionally, this research produced tools and metrics that can be used in future studies examining programming metacognition.