Programmed Learning in Perspective: A Guide to Program Writing