Programming and algorithmic 1