|
|
Computer programming students have to
learn to
analyze problems critically, implement robust solutions in a
programming language, debug code, and make enhancements to
existing computer programs over time, and repeat this process several
times in several programming assignments over the duration of a
semester, while learning programming concepts, a programming language,
and principles of software design. It is little wonder
students often struggle with one or more concepts in a computer
programming course.
Research confirms students struggle
with computer programming courses. The most disturbing statistics are
from the introductory programming courses where failure and withdrawal
rates exceed fifty percent (Woszczynski, Guthrie, and Shade, 2005). For
example, one study found that the overall probability of passing a
first introductory programming course (CS1) the first time was 40%
across all majors, with an initial failure rate of 19.5%, and a
withdrawal rate of 40.5% (Beise, Myers, VanBrackle, and Chevli-Saroq,
2003).
To add to the complexity of
teaching computer programming, there is also the increased emphasis in
offering access to higher education at a distance across the nation.
Taking classes at a distance poses different challenges for
students who are used to taking on-campus classes in terms of studying,
time management and autonomy (Moore & Thompson,
1998). More troubling, educational research on distance
learning, for many years, suggests that drop out rates tend to be
significantly higher in distance classes (Carr, 2000; Garrison, 1987;
Zajkowski, 1997). These disturbing numbers, coupled with the
already lower than average distance learning course retention rates (as
compared to face-to-face), make a recipe for disaster without carefully
planned instruction.
This online resource is dedicated to
providing
three sound technology- enhanced instructional strategies to help
educators overcome the difficult instructional problem of teaching
computer programming concepts and skills at a distance.
|