3rd Edition
Computing Handbook Computer Science and Software Engineering
Computing Handbook, Third Edition: Computer Science and Software Engineering mirrors the modern taxonomy of computer science and software engineering as described by the Association for Computing Machinery (ACM) and the IEEE Computer Society (IEEE-CS). Written by established leading experts and influential young researchers, the first volume of this popular handbook examines the elements involved in designing and implementing software, new areas in which computers are being used, and ways to solve computing problems. The book also explores our current understanding of software engineering and its effect on the practice of software development and the education of software professionals.
Like the second volume, this first volume describes what occurs in research laboratories, educational institutions, and public and private organizations to advance the effective development and use of computers and computing in today’s world. Research-level survey articles provide deep insights into the computing discipline, enabling readers to understand the principles and practices that drive computing education, research, and development in the twenty-first century.
Overview of Computer Science
Structure and Organization of Computing Peter J. Denning
Computational Thinking Valerie Barr
Algorithms and Complexity
Data Structures Mark Weiss
Basic Techniques for Design and Analysis of Algorithms Edward Reingold
Graph and Network Algorithms Samir Khuller and Balaji Raghavachari
Computational Geometry Marc van Kreveld
Complexity Theory Eric Allender, Michael Loui, and Kenneth Regan
Formal Models and Computability Tao Jiang, Ming Li, and Bala Ravikumar
Cryptography Jonathan Katz
Algebraic Algorithms Ioannis Z. Emiris, Victor Y. Pan, and Elias P. Tsigaridas
Some Practical Randomized Algorithms and Data Structures Micheal Mitzenbacher and Eli Upfal
Approximation Algorithms and Metaheuristics Teo Gonzalez
Combinatorial Optimization Vijay Chandru and M.R. Rao
Graph Drawing Ioannis G. Tollis and Konstantinos G. Kakoulis
Pattern Matching and Text Compression Algorithms Maxime Crochemore and Thierry Lecroq
Distributed Algorithms Dan Alistarh and Rachid Guerraoui
Architecture and Organization
Digital Logic Miriam Leeser and James Brock
Memory Systems Yoongu Kim and Onur Mutlu
Storage Systems Alexander Thomasian
High-Speed Computer Arithmetic Earl E. Swartzlander, Jr.
Input/Output Devices and Interaction Techniques Ken Hinckley, Robert J.K. Jacob, Colin Ware, Jacob O. Wobbrock, and Daniel Wigdor
Performance Enhancements Joseph Dumas
Parallel Architectures Michael J. Flynn and Kevin W. Rudd
Multicore Architectures and Their Software Landscape Raphael Poss
DNA Computing Hieu Bui, Harish Chandranm, Sudhanshu Garg, Nikhil Gopalkrishnan, Reem Mokhtar, John Reif, and Tianqi Song
Computational Science and Graphics
Computational Electromagnetics J.S. Shang
Computational Fluid Dynamics David Caughey
Computational Astrophysics Jon Hakkila, Derek Buzasi, and Robert Thacker
Computational Chemistry J. Phillip Bowen, Frederick J. Heldrich, Clyde R. Metz, Shawn C. Sendlinger, Neal E. Tonks, and Robert M. Panoff
Computational Biology: The Fundamentals of Sequence-Based Techniques Steven Thompson
Terrain Modeling for the Geosciences Herman Haverkort and Laura Toma
Geometric Primitives Lee Staff, Gustavo Chávez, and Alyn Rockwood
Computer Animation Nadia Magnenat Thalmann and Daniel Thalmann
Intelligent Systems
Paraconsistent Logic-Based Reasoning for Intelligent Systems Kazumi Nakamatsu
Qualitative Reasoning Kenneth Forbus
Machine Learning Stephen Marsland
Explanation-Based Learning Gerald DeJong
Search Danny Kopec, James L. Cox, and Stephen Lucci
Planning and Scheduling Roman Bartak
Natural Language Processing Nitin Indurkhya
Understanding Spoken Language Gokhan Tur, Ye-Yi Wang, and Dilek Hakkani-Tür
Neural Networks Michael I. Jordan and Christopher M. Bishop
Cognitive Modeling Eric Chown
Graphical Models for Probabilistic and Causal Reasoning Judea Pearl
Networking and Communication
Network Organization and Topologies William Stallings
Routing Protocols Radia Perlman
Access Control Sabrina De Capitani di Vimercati, Pierangela Samarati, and Ravi Sandhu
Data Compression O. Ufuk Nalbantoglu and K. Sayood
Localization in Underwater Acoustic Sensor Networks (UW-ASNs) Baozhi Chen and Dario Pompili
Semantic Web Pascal Hitzler and Krzysztof Janowicz
Web Search Engines: Practice and Experience Tao Yang and Apostolos Gerasoulis
Operating Systems
Process Synchronization and Interprocess Communication Craig E. Wills
Thread Management for Shared-Memory Multiprocessors Thomas E. Anderson, Brian N. Bershad, Edward Lazowska, and Henry Levy
Virtual Memory Peter J. Denning
Secondary Storage and File Systems Marshall Kirk McKusick
Performance Evaluation of Computer Systems Alexander Thomasian
Taxonomy of Contention Management in Interconnected Distributed Systems Mohsen Amini Salehi, Jemal Abawajy, and Rajkumar Buyya
Real-Time Computing Sanjoy Baruah
Scheduling for Large-Scale Systems Anne Benoit, Loris Marchal, Yves Robert, Bora Uçar, and Frédéric Vivien
Distributed File Systems Thomas W. Doeppner, Jr.
Mobile Operating Systems Ralph Morelli and Trishan de Lanerolle
Service-Oriented Operating Systems Stefan Wesner, Lutz Schubert, and Daniel Rubio Bonilla
Programming Languages
Imperative Language Paradigm Michael Jipping and Kim Bruce
Object-Oriented Language Paradigm Raimund Ege
Logic Programming and Constraint Logic Programming Jacques Cohen
Multiparadigm Languages Michael Hanus
Scripting Languages Robert E. Noonan
Compilers and Interpreters Kenneth Louden and Ronald Mak
Programming Language Semantics David Schmidt
Type Systems Stephanie Wierich
Formal Methods Jonathan Bowen and Michael Hinchey
Discipline of Software Engineering
Discipline of Software Engineering: An Overview Jorge Diaz-Herrera and Peter Freeman
Professionalism and Certification Stephen B. Seidman
Software Engineering Code of Ethics and Professional Practice Don Gotterbarn
Software Business and Economics Christof Ebert
Open Source and Governance: COTS Brian M. Gaff, Gregory J. Ploussios, and Brian R. Landry
Software Quality and Measurement
Evidence-Informed Software Engineering and Systematic Literature Review David Budgen and Pearl Brereton
Empirical Software Engineering David Budgen and Barbara Kitchenham
Software Quality and Model-Based Software Improvement Baris Özkan, Özlem Albayrak, and Onur Demirors
Software Metrics and Measurements David Zubrow
Software Development Management: Processes and Paradigms
Software Development: Management and Business Concepts Michael Cusumano
Project Personnel and Organization Paul McMahon and Tom McBride
Project and Process Control James McDonald
Agile John Favaro
Service-Oriented Development Andy Wang and Guangzhi Zheng
Software Product Lines Jorge L. Díaz-Herrera and Melvin Pérez-Cedano
Software Modeling, Analysis, and Design
Requirements Elicitation Daniel M. Berry
Specification Andrew McGettrick
Software Model Checking Alistair Donaldson
Software Design Strategies Len Bass
Software Architecture Bedir Tekinerdogan
Human-Computer Interfaces for Speech Applications Shelby S. Darnell, Naja Mack, France Jackson, Hanan Alnizami, Melva James, Josh Ekandem, Ignacio Alvarez, Marvin Andujar, Dekita Moon, and Juan E. Gilbert
Software Assurance Nancy R. Mead, Dan Shoemaker, and Carol Woody
Index
Biography
Gonzalez, Teofilo; Diaz-Herrera, Jorge; Tucker, Allen
"The survey papers in the handbook, which are written by international experts, offer a profound understanding of computer science and software engineering. They have been organized so that they may be read independently. The handbook is up to date and reflects the current Computing Curricula. The previous editions of the handbook were well received. The third edition … will be an invaluable reference for professionals, researchers, and students."
—Computing Reviews, April 2015