This article presents an attempt to employ a programming approach to mathematical formalization. Six self-instructional units (120 instructional hours) have been developed for the Open University in Israel. This material was tried on three different types of populations: (a) bright high school students (11th–12th grade, A-level mathematics), (b) mathematics teachers with a programming background, and (c) university students studying mathematics, natural sciences and engineering. The results indicated that the programming approach is complementary to high school and university mathematics. The opportunity to explore, the algorithmic approach to mathematical operations and the visualization of mathematical objects and processes facilitates mathematical understanding and insights. It was most beneficial to the majority of the students who perform on a moderate level of abstraction. The course was less advantageous to those who have a very abstract way of perceiving mathematics or to those who are interested in mathematics only on a technical level. However, the vast majority of students gained new ways of understanding mathematical topics such as functions, curves, probability, game theory, recursive functions, envelopes, tiling, curve fitting, etc. They gained, as well, new strategies of using microcomputers to solve and further explore many mathematical problems which they could not solve before.