For several years now I have been teaching courses in computer algebra at the Universitat Linz, the University of Delaware, and the Universidad de Alcala de Henares. In the summers of 1990 and 1992 I have organized and taught summer schools in computer algebra at the Universitat Linz. Gradually a set of course notes has emerged from these activities. People have asked me for copies of the course notes, and different versions of them have been circulating for a few years. Finally I decided that I should really take the time to write the material up in a coherent way and make a book out of it. Here, now, is the result of this work. Over the years many students have been helpful in improving the quality of the notes, and also several colleagues at Linz and elsewhere have contributed to it. I want to thank them all for their effort, in particular I want to thank B. Buchberger, who taught me the theory of Grabner bases nearly two decades ago, B. F. Caviness and B. D. Saunders, who first stimulated my interest in various problems in computer algebra, G. E. Collins, who showed me how to compute in algebraic domains, and J. R. Sendra, with whom I started to apply computer algebra methods to problems in algebraic geometry. Several colleagues have suggested improvements in earlier versions of this book. However, I want to make it clear that I am responsible for all remaining mistakes.