A Self-Paced Introductory Programming Course
Journal of Information Technology Education
Executive Summary In this paper, a required introductory programming course being taught to MIS undergraduates using the C++ programming language is described. Two factors make the objectives of the course-which are to provide students with an exposure to the logical organization of the computer in addition to teaching them basic programming logic-particularly challenging to achieve. First, students enter the course with widely varying backgrounds, with roughly equal numbers having no prior
... having no prior exposure to programming courses, having taken one previous course and having taken two or more previous courses. They also have different work aspirations, with about half believing it is unlikely that they will be employed as programmers within 10 years. This makes choosing an appropriate amount of material to cover problematic. Second, many of the students chose MIS as a major (as opposed to computer science) specifically to avoid the necessity of learning programming. This leads to motivational barriers. To address these challenges, the course utilizes a self-paced format. Making the self-paced format work required three systems: 1) Content delivery: extensive multimedia aids and web content to support textual materials and to substitute for classroom lectures, 2) Peer support: peer-tutoring and assignment validation, drawing from approaches used in nuclear submarine training that provide flexibility and enhance rigor, 3) Progress monitoring: an administrative information system, used to track student progress and provide students with weekly reports. Collectively, the three course systems have led to very positive learning outcomes. No pattern of significant differences on grades, course evaluations, satisfaction, self-assessments of learning, or career attractiveness was detected based on gender, ethnicity, employment status or prior programming coursework, among other factors tested, indicating the course effectively accommodates substantial student diversity. The failure rate dropped from 19% to 13% between the first and fifth semesters assessed for the evolving course (with no change in academic standards), and the withdrawal rate dropped from 31% to 19% in the same time frame, an important criterion in a time of dwindling enrollment. Students give high marks to the course's peer assistance, group activities, and its emphasis on non-exam elements, indicating the course design is working as intended. The course also outperforms all other required programming courses in the department on student evaluations.