|
|
Given that online learning is gaining
momentum in institutions of higher education, computing educators are
forced to develop novel ways to deliver computer programming
instruction at a distance. Since few best practices exist to
improve the instruction, many of the online structured programming
courses lack adequate student-to-student and instructor-to-student
interaction as the courses are designed to be self-paced
(student-to-content). Consequently, students lack the
immediacy of feedback that traditional face-to-face courses offer when
problems such as syntax,
runtime, or errors are encountered. Many of the
students lack motivation and have a feeling of disconnect from the
alterative online courses. Structured programming skills are an
essential skill for many majors (engineering, computer science, etc.),
and thus, there is a dire need for the improved delivery of instruction.
Traditional face-to-face computer
programming courses currently use project-based learning techniques in
which the programming assignments are the primary educational
experience. Each programming assignment embraces active
learning in which the student must be energetically involved and the
material is designed to recall previous knowledge for integration,
organization, and elaboration of new information during classroom
instruction. However, the traditional approach views the
assignments as a solitary activity. Online computer programming
instruction should view these programming assignments as collaborative
learning activities, in which students are required to submit the
programming assignments individually, but are allowed to share ideas
and synthesize the concepts to engender student-to-student interaction.
Further, the strategy must emulate the integration, organization, and
elaboration process and provide immediate feedback to help students
visualize and master the material.
Online programming courses should make
use of 1) discussion boards for students to collaborate and share ideas
on each assignment, 2) online synchronous software emulate the
integration, organization, and elaboration process and provide
immediate feedback during virtual office hours, and 3) voice-over
animations to help students visualize the complex programming
constructs and connect the ideas with prior knowledge. These
combined technologies should have a synergistic effect to improve the
delivery of instruction.
|