4 research outputs found
Atomistic Calculations of the Mechanical Properties Cu-Sn Intermetallic Compounds
Ph.DDOCTOR OF PHILOSOPH
Steps Before Syntax: Helping Novice Programmers Solve Problems using the PCDIT Framework
Novice programmers often struggle with problem solving due to the high cognitive loads they face. Furthermore, many introductory programming courses do not explicitly teach it, assuming that problem solving skills are acquired along the way. In this paper, we present 'PCDIT', a non-linear problem solving framework that provides scaffolding to guide novice programmers through the process of transforming a problem specification into an implemented and tested solution for an imperative programming language. A key distinction of PCDIT is its focus on developing concrete cases for the problem early without actually writing test code: students are instead encouraged to think about the abstract steps from inputs to outputs before mapping anything down to syntax. We reflect on our experience of teaching an introductory programming course using PCDIT, and report the results of a survey that suggests it helped students to break down challenging problems, organise their thoughts, and reach working solutions
How helpful do novice programmers find the feedback of an automated repair tool?
Immediate feedback has been shown to improve student learning. In programming
courses, immediate, automated feedback is typically provided in the form of
pre-defined test cases run by a submission platform. While these are excellent
for highlighting the presence of logical errors, they do not provide novice
programmers enough scaffolding to help them identify where an error is or how
to fix it. To address this, several tools have been developed that provide
richer feedback in the form of program repairs. Studies of such tools, however,
tend to focus more on whether correct repairs can be generated, rather than how
novices are using them. In this paper, we describe our experience of using
CLARA, an automated repair tool, to provide feedback to novices. First, we
extended CLARA to support a larger subset of the Python language, before
integrating it with the Jupyter Notebooks used for our programming exercises.
Second, we devised a preliminary study in which students tackled programming
problems with and without support of the tool using the 'think aloud' protocol.
We found that novices often struggled to understand the proposed repairs,
echoing the well-known challenge to understand compiler/interpreter messages.
Furthermore, we found that students valued being told where a fix was needed -
without necessarily the fix itself - suggesting that 'less may be more' from a
pedagogical perspective.Comment: Experience report accepted by the International Conference on
Teaching, Assessment, and Learning for Engineering (TALE'23