Deterministic and non deterministic robot programming