Dipl. Math. Dr.rer.nat. Christian Maurer studied in Berlin and earned his doctorate in mathematics at the University of Bremen. He worked for a long time as a research assistant and assistant professor of mathematics at Freie Universität Berlin, then for a short time as head of computer science at a Berlin high school and finally, until his retirement, as head of teacher training at the Department of Mathematics and Computer Science at Freie Universität Berlin. During this time - and even after his retirement - he was a lecturer for computer science.
After a short chapter on basic aspects of software engineering and its realization in Go, this book introduces to nonsequential and distributed programming with Go. It systematically presents basic concepts for the synchronization and communication of concurrent processes. These include locks, semaphores, fairness and deadlocks, monitors, local and network-wide message exchange, networks as graphs, network exploration, distributed depth and breadth first search, and the selection of a leader in networks. In order to make readers familiar with the concepts, the author always takes up the same classic examples. This makes learning easier, because the concepts presented can be compared more easily with the language resources.
The algorithms are formulated in the Go programming language, which can be used to express numerous synchronization concepts. Due to its simple syntax, Go also offers the advantage that readers without prior knowledge can follow the basic concepts. The chapters on locks, semaphores, monitors and network-wide message exchange also present some basic approaches to programming in C and Java. All source texts are available online.
In the 4th edition of the textbook, which is aimed at students of computer science, some errors have been corrected, smaller extensions have been included and adjustments due to a change to Go have been made.
The author
Dipl. Math. Dr.rer.nat. Christian Maurer studied in Berlin and earned his doctorate in mathematics at the University of Bremen. He worked for a long time as a research assistant and assistant professor of mathematics at Freie Universität Berlin, then for a short time as head of computer science at a Berlin high school and finally, until his retirement, as head of teacher training at the Department of Mathematics and Computer Science at Freie Universität Berlin. During this time - and even after his retirement - he was a lecturer for computer science.
This book is a translation of the original German edition „Nichtsequentielle und Verteilte Programmierung mit Go“ by Christian Maurer, published by Springer Fachmedien Wiesbaden in 2019. The translation was done with the help of artificial intelligence (machine translation by the service DeepL.com). A subsequent human revision was done primarily in terms of content, so that the book will read stylistically different from a conventional translation. Springer Nature works continuously to further the development of tools for the production of books and on the related technologies to support the authors.