Electronic Theses and Dissertations

Author

Priti Oli

Date

2024

Document Type

Dissertation

Degree Name

Doctor of Philosophy

Department

Computer Science

Committee Chair

Vasile Rus

Committee Member

Andrew M Olney

Committee Member

Deepak Venugopal

Committee Member

Scott Fleming

Abstract

This dissertation focuses on strategies and techniques to enhance code comprehension skills among students enrolled in introductory computer science courses (CS1 and CS2). We propose a novel tutoring system, \textit{DeepCodeTutor}, designed to improve the code comprehension abilities of novices. DeepCodeTutor employs scaffolded self-explanation to facilitate a deeper understanding of code. Our user study demonstrates the effectiveness of DeepCodeTutor, with detailed results reported in this dissertation. DeepCode Tutor incorporates various components such as expert-generated code explanations and scaffolding based on students' knowledge gaps. Although effective, expert-generated explanations and scaffolding are resource-intensive and difficult to scale. To address these challenges, we explore the use of Large Language Models (LLMs). First, we investigated the ability of LLMs to generate different types of code explanations under various settings. Our study revealed that while LLMs are capable of producing such explanations, they suffer from inconsistency in the quality of these explanations. We compared code explanations generated by students, experts, and LLMs and found that the explanations generated by LLMs are closely aligned with experts' explanations. Toward the goal of generating scaffolding, we evaluated LLMs for the assessment of student explanations of code. Our results indicate that LLMs outperform traditional semantic similarity-based approaches. We also highlight various strategies and approaches for leveraging LLMs in assessment. Additionally, we propose LLM-based feedback for code comprehension. Our results demonstrate that fine-tuned LLMs are effective in generating feedback that supports students' code comprehension. This dissertation presents solutions to key challenges in improving code comprehension among novices in introductory computer science courses.

Comments

Data is provided by the student.

Library Comment

Dissertation or thesis originally submitted to ProQuest.

Notes

Open Access

Share

COinS