Theory and practice of middle-out programming to support program understanding | IEEE Conference Publication | IEEE Xplore