Understanding concurrent programming through program animation. - M. Zimmermann; F. Perrenoud; André Schiper (SIGCSE, 1988)