3rd Edition

Computing Handbook Computer Science and Software Engineering

Edited By Teofilo Gonzalez, Jorge Diaz-Herrera, Allen Tucker Copyright 2014
    2326 Pages 626 B/W Illustrations
    by Chapman & Hall

    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