This text has one simple objective, which is to show how Modula-2 can be used to engineer programs that are elegant, clear and efficient. As such in addressing itself to the details of the language it tries to place its various feature into a broader context, so as to guide the user towards a style of programming that is well organized and well disciplined.