Many students struggle to learn introductory programming, especially computing non-majors. Teaching designs where all students are expected to keep the same pace, will be too demanding for some students, who are left without any sense of mastery – and at the same time boring for other students who are quick learners or have previous knowledge of programming. Hence, self-pacing could be an interesting paradigm for programming courses. The current paper reports on the transition of the introductory programming course for first-year STEM teacher students at the NTNU, from a traditional lecture/exercise/exam design to a learning design inspired by mastery learning, with a series of automated tests in parallel with an individual programming project. The course design showed some positive and promising results in terms of a very low failure rate and good student satisfaction across a wide range of progress paces and ambition levels. At the same time, there were also some negative issues. While most students started early with the tests, many struggled to get started with the project, and the grade average was poor.