This work offers a survey of computer science, covering many topics and equipping the reader with an understanding of the scope of the science as well as the terminology in the field. Topics include computer architecture, operating systems, algorithm development, programming languages and paradigms, software engineering, data structures, file computation and complexity theory. This edition contains new sections on: the growing importance of object-oriented methodologies in programming and database design; parallel programming; network protocols; and software engineering. Throughout, additional material is also included relating topics in computer science to ethical, social and legal issues.