A groundbreaking, unifying theory of computer science for low-cost, high-quality softwareThe Cognitive Dynamics of Computer Science represents the culmination of more than thirty years of the author's hands-on experience in software development, which has resulted in a remarkable and sensible philosophy and practice of software development. It provides a groundbreaking ontology of computer science, while describing the processes, methodologies, and constructs needed to build high-quality, large-scale computer software systems on schedule and on budget.Based on his own experience in developing successful, low-cost software projects, the author makes a persuasive argument for developers to understand the philosophical underpinnings of software. He asserts that software in reality is an abstraction of the human thought system. The author draws from the seminal works of the great German philosophers--Kant, Hegel, and Schopenhauer--and recasts their theories of human mind and thought to create a unifying theory of computer science, cognitive dynamics, that opens the door to the next generation of computer science and forms the basic architecture for total autonomy.* Four detailed cases studies effectively demonstrate how philosophy and practice merge to meet the objective of high-quality, low-cost software.* The Autonomous Cognitive System chapter sets forth a model for a completely autonomous computer system, using the human thought system as the model for functional architecture and the human thought process as the model for the functional data process.* Although rooted in philosophy, this book is practical, addressing all the key areas that software professionals need to master in order to remain competitive and minimize costs, such as leadership, management, communication, and organization.This thought-provoking work will change the way students and professionals in computer science and software development conceptualize and perform their work. It provides them with both a philosophy and a set of practical tools to produce high-quality, low-cost software.