Teaching computer programming using distance education technology