Abstract
A role-based teaching approach was proposed in order to decrease the cognitive load placed by the case-based teaching method in the undergraduate novice programmer comprehension. The results are evaluated by using the SOLO (Structure of Observed Learning Outcomes) taxonomy. Data analysis suggested novice programmers with role-based teaching tended to experience better performances, including the SOLO level of program comprehension, program debugging scores, program explaining scores, except for programming language knowledge scores, compared with the classical case-based teaching method. Considering the SOLO category of program comprehension and performances, evidence that the roles of variables can provide scaffolding to understand case programs through combining its program structure with its related problem domain is discussed, and the SOLO categories for relational reasoning are proposed. Meanwhile, the roles of variables can assist the novice in learning programming language knowledge. These results indicate that combing case-based teaching with the role of variables is an effective way to improve novice program comprehension.
Highlights
As a novice, computer programming learning is a complex task [1,2]
TFQs and MCQs are related to the programming language knowledge of C language, which is the basis for program comprehension
Our findings demonstrate that the roles of variables can significantly improve the novice programmer’s comprehension of C language with the case-based teaching method
Summary
Computer programming learning is a complex task [1,2]. Approximately26.4% of computer science students from the Luoyang Institute of Science and Technology (LIT) did not pass the C language programming subject in the first semester from 2007 to 2014 [3]. Computer programming learning is a complex task [1,2]. One reason why students fail to learn programming might be that novice programmers struggle to perform relational reasoning [5] due to some misconceptions about variables [6]. As a result, they are usually either unable to accurately understand the fundamentals of programming [2] or combine the various statements and structures of the programming language into a valid program [7]. The engagement with relational reasoning explicitly through program comprehension, e.g., reading, explaining, and debugging, could significantly improve novice program skills [10,11]
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.