Teaching Introductory Programming to IS Students: The Impact of Teaching Approaches on Learning Performance
xihui zhang,chi zhang,thomas f ord,ping zhang
2013-01-01
The Journal of Information and Systems in Education
Abstract:1. INTRODUCTION Undergraduate students majoring in information systems (IS) are typically required to complete an introductory programming course. In general, this course focuses on teaching students one of the several major high-level programming languages, including C, C++, Java, C#, and Visual Basic .NET. Students typically must pass this course with a letter grade of C or higher. Unfortunately, students often struggle with introductory programming courses. Anecdotal evidence suggests that students taking this course are stressed and afraid of learning the material (Woszczynski et al., 2005a; Woszczynski et al., 2005b). Results from empirical studies indicate that more than one-third of the students taking this course are characterized as DWF (earning letter grades of D, withdrawals, or failures), and do not complete the course with the A, B, or C grade required (Beise et al., 2003; Gill and Holton, 2006). Instructors of such courses use different approaches: some give lectures and assign programming exercises, as well, while others only assign programming exercises without giving lectures (Chou, 2001; Poindexter, 2003). Instructors using the former approach believe that lectures in addition to exercises help students better understand programming concepts and ultimately help improve their programming skills; instructors using the latter approach believe that actively engaged in coding to solve concrete business and computing problems best serves the understanding of programming concepts (Chou, 2001; Gill and Holton, 2006). A question arises: which approach actually is more effective? At one level, each teaching approach is a matter of personal preference based on belief, but we believe that the most effective approach to teaching introductory programming courses will be indicated by student learning performance, which can be assessed by objective measures. To that end, this study purposely compares the learning outcomes for the two teaching approaches to introductory programming. Specifically, we address three research questions: (1) is teaching introductory programming using exercises only as effective as using exercises combined with lectures, or (2) is one approach more effective than the other? Lastly, (3) what specific factors predict the student learning performance? Our search of the literature indicates that little research has been done in this area. Hence, empirically determining the answers to these questions is the purpose of this study. We think that determining the effectiveness of programming instruction combined with programming exercises as a teaching approach is critical to informing the effective instruction of introductory programming courses, and that identifying the most effective teaching approach for programming courses effectiveness will lead to increased learning outcomes among IS students. This paper proceeds as follows: first we present a review of the literature from which we develop hypotheses. Following this, the research methodology is discussed, including details on course background, data collection, and data analysis. Results of hypothesis testing are presented, followed by a discussion of the findings and their implications as well as a discussion of limitations and directions for future research. We conclude the paper with our recommendations and discussion of the issues related to effectiveness in teaching introductory programming. 2. LITERATURE REVIEW AND HYPOTHESES DEVELOPMENT 2.1 Traditional Teaching Approach The traditional approach to teaching is instructor-led and instructor-centered (Saulnier et al., 2008; Wilson, 1995). This approach suggests that instruction is the primary conduit through which knowledge is delivered in classrooms. Indeed, introductory programming courses are generally taught with lectures, only, or with lectures combined with experiential labs and discussion. In the typical programming classroom, this generally translates into teaching with PowerPoint-based lectures supplemented by audiovisual and other multimedia teaching materials (Schiller, 2009). …