The Disc Shop
This textbook serves as an introduction to the subject of embedded systems design, with emphasis on integration of custom hardware components with software. The key problem addressed in the book is the following: how can an embedded systems designer strike a balance between flexibility and efficiency? The book describes how combining hardware design with software design leads to a solution to this important computer engineering problem. The book covers four topics in hardware/software codesign: fundamentals, the design space of custom architectures, the hardware/software interface and application examples. The book comes with an associated design environment that helps the reader to perform experiments in hardware/software codesign. Each chapter also includes exercises and further reading suggestions. Improvements in this second edition include labs and examples using modern FPGA environments from Xilinx and Altera, which will make the material in this book applicable to a greater number of courses where these tools are already in use. More examples and exercises have been added throughout the book. "If I were teaching a course on this subject, I would use this as a resource and text. If I were a student who wanted to learn codesign, I would look for a course that at least used a similar approach. If I were an engineer or engineering manager who wanted to learn more about codesign from a very practical perspective, I would read this book first before any other. When I first started learning about codesign as a practitioner, a book like this would have been the perfect introduction." --Grant Martin, Tensilica--
Both modern mathematical music theory and computer science are strongly influenced by the theory of categories and functors. One outcome of this research is the data format of denotators, which is based on set-valued presheaves over the category of modules and diaffine homomorphisms. The functorial approach of denotators deals with generalized points in the form of arrows and allows the construction of a universal concept architecture. This architecture is ideal for handling all aspects of music, especially for the analysis and composition of highly abstract musical works. This book presents an introduction to the theory of module categories and the theory of denotators, as well as the design of a software system, called Rubato Composer, which is an implementation of the category-theoretic concept framework. The application is written in portable Java and relies on plug-in components, so-called rubettes, which may be combined in data flow networks for the generation and manipulation of denotators. The Rubato Composer system is open to arbitrary extension and is freely available under the GPL license. It allows the developer to build specialized rubettes for tasks that are of interest to composers, who in turn combine them to create music. It equally serves music theorists, who use them to extract information from and manipulate musical structures. They may even develop new theories by experimenting with the many parameters that are at their disposal thanks to the increased flexibility of the functorial concept architecture. Two contributed chapters by Guerino Mazzola and Florian Thalmann illustrate the application of the theory as well as the software in the development of compositional tools and the creation of a musical work with the help of the Rubato framework.
Provides an innovative hands-on introduction to techniques for specifying the behaviour of software components. It is primarily intended for use as a text book for a course in the 2nd or 3rd year of Computer Science and Computer Engineering programs, but it is also suitable for self-study. Using this book will help the reader improve programming skills and gain a sound foundation and motivation for subsequent courses in advanced algorithms and data structures, software design, formal methods, compilers, programming languages, and theory. The presentation is based on numerous examples and case studies appropriate to the level of programming expertise of the intended readership. The main topics covered are techniques for using programmer-friendly assertional notations to specify, develop, and verify small but non-trivial algorithms and data representations, and the use of state diagrams, grammars, and regular expressions to specify and develop recognizers for formal languages.
Automatic Quantum Computer Programming provides an introduction to quantum computing for non-physicists, as well as an introduction to genetic programming for non-computer-scientists. The book explores several ways in which genetic programming can support automatic quantum computer programming and presents detailed descriptions of specific techniques, along with several examples of their human-competitive performance on specific problems. Source code for the author's QGAME quantum computer simulator is included as an appendix, and pointers to additional online resources furnish the reader with an array of tools for automatic quantum computer programming.
In clear, easy-to-grasp language, the author covers many of the topics that you will need to know in order to win your dream job and be the first in line for a promotion.
The Disc Shop Articles
The Disc Shop Books
The Disc Shop