100% found this document useful (7 votes)
38 views

Computing Handbook Computer Science and Software Engineering 3rd Edition Allen B. Tucker 2024 scribd download

Tucker

Uploaded by

armaisbekios
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (7 votes)
38 views

Computing Handbook Computer Science and Software Engineering 3rd Edition Allen B. Tucker 2024 scribd download

Tucker

Uploaded by

armaisbekios
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 82

Download the full version of the ebook now at ebookultra.

com

Computing Handbook Computer Science and


Software Engineering 3rd Edition Allen B.
Tucker

https://ebookultra.com/download/computing-
handbook-computer-science-and-software-
engineering-3rd-edition-allen-b-tucker/

Explore and download more ebook at https://ebookultra.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Programming Languages Principles and Paradigms 2nd Edition


Allen B. Tucker

https://ebookultra.com/download/programming-languages-principles-and-
paradigms-2nd-edition-allen-b-tucker/

ebookultra.com

Software Engineering and Computer Games 1st Edition Rucker

https://ebookultra.com/download/software-engineering-and-computer-
games-1st-edition-rucker/

ebookultra.com

Think Python How to Think Like a Computer Scientist 3rd


Edition 3rd Early release Allen B. Downey

https://ebookultra.com/download/think-python-how-to-think-like-a-
computer-scientist-3rd-edition-3rd-early-release-allen-b-downey/

ebookultra.com

Software Engineering Handbook 1st Edition Jessica Keyes

https://ebookultra.com/download/software-engineering-handbook-1st-
edition-jessica-keyes/

ebookultra.com
Computer Science Illuminated Revised Nell B. Dale

https://ebookultra.com/download/computer-science-illuminated-revised-
nell-b-dale/

ebookultra.com

ICSTE 2011 Proceedings of the 2011 3rd International


Conference on Software Technology and Engineering 3rd
Edition International Conference On Software Technology
And Engineering
https://ebookultra.com/download/icste-2011-proceedings-of-
the-2011-3rd-international-conference-on-software-technology-and-
engineering-3rd-edition-international-conference-on-software-
technology-and-engineering/
ebookultra.com

Essentials Of Software Engineering 3rd Edition Frank Tsui

https://ebookultra.com/download/essentials-of-software-
engineering-3rd-edition-frank-tsui/

ebookultra.com

Corporate Software Project Management Charles River Media


Computer Engineering Charles River Media Computer
Engineering Paperback 1st Edition Guy W. Lecky-Thompson
https://ebookultra.com/download/corporate-software-project-management-
charles-river-media-computer-engineering-charles-river-media-computer-
engineering-paperback-1st-edition-guy-w-lecky-thompson/
ebookultra.com

The Dark Side of Software Engineering Evil on Computing


Projects 1st Edition Johann Rost

https://ebookultra.com/download/the-dark-side-of-software-engineering-
evil-on-computing-projects-1st-edition-johann-rost/

ebookultra.com
Computing Handbook Computer Science and Software
Engineering 3rd Edition Allen B. Tucker Digital Instant
Download
Author(s): Allen B. Tucker, Teofilo Gonzalez, Jorge Diaz-Herrera
ISBN(s): 9781439898536, 1439898537
File Details: PDF, 24.39 MB
Year: 2014
Language: english
COMPUTING
HANDBOOK
THIRD EDITION
Computer Science and
Software Engineering
COMPUTING
HANDBOOK
THIRD EDITION
Computer Science and
Software Engineering

EDITED BY

Teofilo Gonzalez
University of California
Santa Barbara, California, USA

Jorge Díaz-Herrera
Keuka College
Keuka Park, New York, USA

EDITOR-IN-CHIEF

Allen Tucker
Bowdoin College
Brunswick, Maine, USA
MATLAB® is a trademark of The MathWorks, Inc. and is used with permission. The MathWorks does not warrant the accuracy
of the text or exercises in this book. This book’s use or discussion of MATLAB® software or related products does not consti-
tute endorsement or sponsorship by The MathWorks of a particular pedagogical approach or particular use of the MATLAB®
software.

CRC Press
Taylor & Francis Group
6000 Broken Sound Parkway NW, Suite 300
Boca Raton, FL 33487-2742

© 2014 by Taylor & Francis Group, LLC


CRC Press is an imprint of Taylor & Francis Group, an Informa business

No claim to original U.S. Government works


Version Date: 20140117

International Standard Book Number-13: 978-1-4398-9853-6 (eBook - PDF)

This book contains information obtained from authentic and highly regarded sources. Reasonable efforts have been made to
publish reliable data and information, but the author and publisher cannot assume responsibility for the validity of all materials
or the consequences of their use. The authors and publishers have attempted to trace the copyright holders of all material repro-
duced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained. If any
copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint.

Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized in any
form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming,
and recording, or in any information storage or retrieval system, without written permission from the publishers.

For permission to photocopy or use material electronically from this work, please access www.copyright.com (http://www.copy-
right.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400.
CCC is a not-for-profit organization that provides licenses and registration for a variety of users. For organizations that have been
granted a photocopy license by the CCC, a separate system of payment has been arranged.

Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identifica-
tion and explanation without intent to infringe.
Visit the Taylor & Francis Web site at
http://www.taylorandfrancis.com

and the CRC Press Web site at


http://www.crcpress.com
Contents

Preface to the Computing Handbook Set�������������������������������������������������������������� xiii


Preface to Volume I: Computer Science and Software Engineering���������������������� xv
Acknowledgments�����������������������������������������������������������������������������������������������xxvii
Editors������������������������������������������������������������������������������������������������������������������� xxix
Contributors���������������������������������������������������������������������������������������������������������xxxi

Part I Overview of Computer Science


1 Structure and Organization of Computing��������������������������������������������������� 1-1
Peter J. Denning
2 Computational Thinking������������������������������������������������������������������������������� 2-1
Valerie Barr

Part II Algorithms and Complexity


3 Data Structures����������������������������������������������������������������������������������������������� 3-1
Mark Allen Weiss
4 Basic Techniques for Design and Analysis of Algorithms���������������������������� 4-1
Edward M. Reingold
5 Graph and Network Algorithms�������������������������������������������������������������������� 5-1
Samir Khuller and Balaji Raghavachari
6 Computational Geometry������������������������������������������������������������������������������ 6-1
Marc van Kreveld
7 Complexity Theory......................................................................................... 7-1
Eric W. Allender, Michael C. Loui, and Kenneth W. Regan
8 Formal Models and Computability���������������������������������������������������������������� 8-1
Tao Jiang, Ming Li, and Bala Ravikumar

v
vi Contents

9 Cryptography������������������������������������������������������������������������������������������������� 9-1
Jonathan Katz
10 Algebraic Algorithms����������������������������������������������������������������������������������� 10-1
Ioannis Z. Emiris, Victor Y. Pan, and Elias P. Tsigaridas
11 Some Practical Randomized Algorithms and Data Structures������������������� 11-1
Michael Mitzenmacher and Eli Upfal
12 Approximation Algorithms and Metaheuristics����������������������������������������� 12-1
Teofilo F. Gonzalez
13 Combinatorial Optimization����������������������������������������������������������������������� 13-1
Vijay Chandru and M.R. Rao
14 Graph Drawing��������������������������������������������������������������������������������������������� 14-1
Ioannis G. Tollis and Konstantinos G. Kakoulis
15 Pattern Matching and Text Compression Algorithms�������������������������������� 15-1
Maxime Crochemore and Thierry Lecroq
16 Distributed Algorithms�������������������������������������������������������������������������������� 16-1
Dan Alistarh and Rachid Guerraoui

Part III Architecture and Organization


17 Digital Logic�������������������������������������������������������������������������������������������������� 17-1
Miriam Leeser and James Brock
18 Memory Systems������������������������������������������������������������������������������������������� 18-1
Yoongu Kim and Onur Mutlu
19 Storage Systems�������������������������������������������������������������������������������������������� 19-1
Alexander Thomasian
20 High-Speed Computer Arithmetic�������������������������������������������������������������� 20-1
Earl E. Swartzlander, Jr.
21 Input/Output Devices and Interaction Techniques������������������������������������ 21-1
Ken Hinckley, Robert J.K. Jacob, Colin Ware, Jacob O. Wobbrock,
and Daniel Wigdor
22 Performance Enhancements������������������������������������������������������������������������22-1
Joseph Dumas
23 Parallel Architectures����������������������������������������������������������������������������������23-1
Michael J. Flynn and Kevin W. Rudd
24 Multicore Architectures and Their Software Landscape����������������������������24-1
Raphael Poss
25 DNA Computing������������������������������������������������������������������������������������������25-1
Hieu Bui, Harish Chandranm, Sudhanshu Garg, Nikhil Gopalkrishnan,
Reem Mokhtar, John Reif, and Tianqi Song
Contents vii

Part IV Computational Science and Graphics


26 Computational Electromagnetics����������������������������������������������������������������26-1
J.S. Shang
27 Computational Fluid Dynamics������������������������������������������������������������������ 27-1
David A. Caughey
28 Computational Astrophysics������������������������������������������������������������������������28-1
Jon Hakkila, Derek Buzasi, and Robert J. Thacker
29 Computational Chemistry��������������������������������������������������������������������������� 29-1
J. Phillip Bowen, Frederick J. Heldrich, Clyde R. Metz, Shawn C. Sendlinger, Neal E.
Tonks, and Robert M. Panoff
30 Computational Biology: The Fundamentals of Sequence-Based
Techniques���������������������������������������������������������������������������������������������������� 30-1
Steven M. Thompson
31 Terrain Modeling for the Geosciences��������������������������������������������������������� 31-1
Herman Haverkort and Laura Toma
32 Geometric Primitives����������������������������������������������������������������������������������� 32-1
Lee Staff, Gustavo Chávez, and Alyn Rockwood
33 Computer Animation����������������������������������������������������������������������������������� 33-1
Nadia Magnenat Thalmann and Daniel Thalmann

Part V Intelligent Systems


34 Paraconsistent Logic-Based Reasoning for Intelligent Systems����������������� 34-1
Kazumi Nakamatsu
35 Qualitative Reasoning���������������������������������������������������������������������������������� 35-1
Kenneth Forbus
36 Machine Learning���������������������������������������������������������������������������������������� 36-1
Stephen Marsland
37 Explanation-Based Learning������������������������������������������������������������������������ 37-1
Gerald DeJong
38 Search����������������������������������������������������������������������������������������������������������� 38-1
Danny Kopec, James L. Cox, and Stephen Lucci
39 Planning and Scheduling����������������������������������������������������������������������������� 39-1
Roman Barták
40 Natural Language Processing���������������������������������������������������������������������� 40-1
Nitin Indurkhya
41 Understanding Spoken Language����������������������������������������������������������������� 41-1
Gokhan Tur, Ye-Yi Wang, and Dilek Hakkani-Tür
viii Contents

42 Neural Networks������������������������������������������������������������������������������������������ 42-1


Michael I. Jordan and Christopher M. Bishop
43 Cognitive Modeling�������������������������������������������������������������������������������������� 43-1
Eric Chown
44 Graphical Models for Probabilistic and Causal Reasoning������������������������ 44-1
Judea Pearl

Part VI Networking and Communication


45 Network Organization and Topologies������������������������������������������������������� 45-1
William Stallings
46 Routing Protocols����������������������������������������������������������������������������������������� 46-1
Radia Perlman
47 Access Control����������������������������������������������������������������������������������������������� 47-1
Sabrina De Capitani di Vimercati, Pierangela Samarati, and Ravi Sandhu
48 Data Compression���������������������������������������������������������������������������������������� 48-1
 . Ufuk Nalbantog lu and K. Sayood
O
49 Localization in Underwater Acoustic Sensor Networks����������������������������� 49-1
Baozhi Chen and Dario Pompili
50 Semantic Web����������������������������������������������������������������������������������������������� 50-1
Pascal Hitzler and Krzysztof Janowicz
51 Web Search Engines: Practice and Experience�������������������������������������������� 51-1
Tao Yang and Apostolos Gerasoulis

Part VII Operating Systems


52 Process Synchronization and Interprocess Communication���������������������� 52-1
Craig E. Wills
53 Thread Management for Shared-Memory Multiprocessors������������������������ 53-1
Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska, and Henry M. Levy
54 Virtual Memory������������������������������������������������������������������������������������������� 54-1
Peter J. Denning
55 Secondary Storage and Filesystems������������������������������������������������������������� 55-1
Marshall Kirk McKusick
56 Performance Evaluation of Computer Systems������������������������������������������� 56-1
Alexander Thomasian
57 Taxonomy of Contention Management in Interconnected Distributed
Systems���������������������������������������������������������������������������������������������������������� 57-1
Mohsen Amini Salehi, Jemal Abawajy, and Rajkumar Buyya
Contents ix

58 Real-Time Computing���������������������������������������������������������������������������������� 58-1


Sanjoy Baruah
59 Scheduling for Large-Scale Systems������������������������������������������������������������ 59-1
Anne Benoit, Loris Marchal, Yves Robert, Bora Uçar, and Frédéric Vivien
60 Distributed File Systems������������������������������������������������������������������������������ 60-1
Thomas W. Doeppner
61 Mobile Operating Systems���������������������������������������������������������������������������� 61-1
Ralph Morelli and Trishan de Lanerolle
62 Service-Oriented Operating Systems���������������������������������������������������������� 62-1
Stefan Wesner, Lutz Schubert, and Daniel Rubio Bonilla

Part VIII Programming Languages


63 Imperative Language Paradigm������������������������������������������������������������������� 63-1
Michael J. Jipping and Kim Bruce
64 Object-Oriented Language Paradigm���������������������������������������������������������� 64-1
Raimund K. Ege
65 Logic Programming and Constraint Logic Programming������������������������� 65-1
Jacques Cohen
66 Multiparadigm Languages��������������������������������������������������������������������������� 66-1
Michael Hanus
67 Scripting Languages�������������������������������������������������������������������������������������� 67-1
Robert E. Noonan
68 Compilers and Interpreters�������������������������������������������������������������������������� 68-1
Kenneth C. Louden and Ronald Mak
69 Programming Language Semantics������������������������������������������������������������� 69-1
David A. Schmidt
70 Type Systems������������������������������������������������������������������������������������������������ 70-1
Stephanie Weirich
71 Formal Methods�������������������������������������������������������������������������������������������� 71-1
Jonathan P. Bowen and Michael G. Hinchey

Part IX Discipline of Software Engineering


72 Discipline of Software Engineering: An Overview������������������������������������� 72-1
Jorge L. Díaz-Herrera and Peter A. Freeman
73 Professionalism and Certification��������������������������������������������������������������� 73-1
Stephen B. Seidman
74 Software Engineering Code of Ethics and Professional Practice��������������� 74-1
Don Gotterbarn
x Contents

75 Software Business and Economics��������������������������������������������������������������� 75-1


Christof Ebert
76 Open Source and Governance: COTS��������������������������������������������������������� 76-1
Brian M. Gaff, Gregory J. Ploussios, and Brian R. Landry

Part X Software Quality and Measurement


77 Evidence-Informed Software Engineering and the Systematic Literature
Review������������������������������������������������������������������������������������������������������������ 77-1
David Budgen and Pearl Brereton
78 Empirical Software Engineering������������������������������������������������������������������ 78-1
David Budgen and Barbara Kitchenham
79 Software Quality and Model-Based Process Improvement������������������������ 79-1
Bariş Özkan, Özlem Albayrak, and Onur DemirÖrs
80 Software Metrics and Measurements���������������������������������������������������������� 80-1
David Zubrow

Part XI Software Development Management: Processes


and Paradigms
81 Software Development: Management and Business Concepts�������������������� 81-1
Michael A. Cusumano
82 Project Personnel and Organization������������������������������������������������������������ 82-1
Paul McMahon and Tom McBride
83 Project and Process Control������������������������������������������������������������������������ 83-1
James McDonald
84 Agile�������������������������������������������������������������������������������������������������������������� 84-1
John Favaro
85 Service-Oriented Development�������������������������������������������������������������������� 85-1
Andy Wang and Guangzhi Zheng
86 Software Product Lines�������������������������������������������������������������������������������� 86-1
Jorge L. Díaz-Herrera and Melvin Pérez-Cedano

Part XII Software Modeling, Analysis, and Design


87 Requirements Elicitation������������������������������������������������������������������������������ 87-1
Daniel M. Berry
88 Specification������������������������������������������������������������������������������������������������� 88-1
Andrew McGettrick
89 Software Model Checking���������������������������������������������������������������������������� 89-1
Alastair Donaldson
Contents xi

90 Software Design Strategies�������������������������������������������������������������������������� 90-1


Len Bass
91 Software Architecture����������������������������������������������������������������������������������� 91-1
Bedir Tekinerdogan
92 Human–Computer Interfaces for Speech Applications������������������������������ 92-1
Shelby S. Darnell, Naja Mack, France Jackson, Hanan Alnizami, Melva James, Josh
Ekandem, Ignacio Alvarez, Marvin Andujar, Dekita Moon, and Juan E. Gilbert
93 Software Assurance�������������������������������������������������������������������������������������� 93-1
Nancy R. Mead, Dan Shoemaker, and Carol Woody
Preface to the Computing
Handbook Set

The purpose of the Computing Handbook Set is to provide a single, comprehensive reference for spe-
cialists in computer science, information systems, information technology, software engineering, and
other fields who wish to broaden or deepen their understanding in a particular subfield of the comput-
ing discipline. Our goal is to provide up-to-date information on a wide range of topics in a form that is
accessible to students, faculty, and professionals.
The discipline of computing has developed rapidly since CRC Press published the second edition of
the Computer Science Handbook in 2004 (Tucker, 2004). Indeed, it has developed so much that this third
edition requires repartitioning and expanding the topic coverage into a two-volume set.
The need for two volumes recognizes not only the dramatic growth of computing as a discipline but
also the relatively new delineation of computing as a family of five separate disciplines, as described by
their professional societies—The Association for Computing Machinery (ACM), The IEEE Computer
Society (IEEE-CS), and The Association for Information Systems (AIS) (Shackelford et al., 2005).
These separate disciplines are known today as computer engineering, computer science, information
systems, information technology, and software engineering. These names more or less fully encom-
pass the variety of undergraduate and graduate degree programs that have evolved around the world,
with the exception of countries where the term informatics is used for a subset of these disciplines. The
document “Computing curricula 2005: The overview report” describes computing this way (Shackelford
et al., 2005, p. 9):

In a general way, we can define computing to mean any goal-oriented activity requiring, benefit-
ing from, or creating computers. Thus, computing includes designing and building hardware and
software systems for a wide range of purposes; processing, structuring, and managing various
kinds of information; doing scientific studies using computers; making computer systems behave
intelligently; creating and using communications and entertainment media; finding and gathering
information relevant to any particular purpose, and so on.

To add much flesh to the bones of this very broad definition, this handbook set describes in some
depth what goes on in research laboratories, educational institutions, and public and private organiza-
tions to advance the effective development and utilization of computers and computing in today’s world.
The two volumes in this set cover four of the five disciplines in the following way:*
1. Volume I: Computer Science and Software Engineering
2. Volume II: Information Systems and Information Technology

* The fifth discipline, computer engineering, is the subject of a separate handbook published by CRC Press in 2008.

xiii
xiv Preface to the Computing Handbook Set

This set is not designed to be an easy read, as would be gained by browsing a collection of encyclope-
dia entries on computing and its various subtopics. On the contrary, it provides deep insights into the
subject matter through research-level survey articles. Readers who will benefit most from these articles
may be undergraduate or graduate students in computing or a related discipline, researchers in one area
of computing aiming to expand their knowledge of another area, or other professionals interested in
understanding the principles and practices that drive computing education, research, and development
in the twenty-first century.
This set is designed as a professional reference that serves the interests of readers who wish to explore
the subject matter by moving directly to a particular part and chapter of the appropriate volume. The
chapters are organized with minimal interdependence, so that they can be read in any order. To facili-
tate rapid inquiry, each volume also contains a table of contents and a subject index, thus providing
access to specific topics at various levels of detail.
The Preface to Volume I provides a more detailed overview of the organization and content of this
volume. A similar overview of the coverage of information systems and information technology appears
in the Preface to Volume II.
Preface to Volume I:
Computer Science and
Software Engineering

This volume is organized to mirror the modern taxonomy of computer science and software engineering
as described by the ACM and IEEE-CS (Joint Task Force, 2012):
Algorithms and Complexity
Architecture and Organization
Computational Science
Discrete Structures
Graphics and Visual Computing
*Human–Computer Interaction
*Security and Information Assurance
*Information Management
Intelligent Systems
Networking and Communication
Operating Systems
Platform-Based Development
Parallel and Distributed Computing
Programming Languages
Software Development Fundamentals
Software Engineering
Systems Fundamentals
Social and Professional Issues
To avoid redundancy, the three starred (*) topics in this list (Human–Computer Interaction, Security
and Information Assurance, and Information Management) are covered in Volume II, while the remain-
ing topics are covered in this volume.
The first eight parts of this volume cover the discipline of computer science (edited by Teofilo Gonzalez),
while the last four parts cover software engineering (edited by Jorge Díaz-Herrrera). Allen Tucker is the
editor in chief of the two volumes.

Computer Science
Implicit in the aforementioned taxonomy (and, indeed, in all current thinking about the nature of com-
puter science) is the idea of a dynamic discipline with an increasingly broad reach. For example, the
computational science area noted earlier emphasizes the necessity of interaction among computer scien-
tists and natural scientists in the many research and educational areas where their work now overlaps.

xv
xvi Preface to Volume I: Computer Science and Software Engineering

A more elaborate description of this idea is expressed in the following definition of computer science,
taken from the 2005 Joint Task Force Report (Shackelford, 2005, p. 13):

Computer science spans a wide range, from its theoretical and algorithmic foundations to cutting-
edge developments in robotics, computer vision, intelligent systems, bioinformatics, and other
exciting areas. We can think of the work of computer scientists as falling into three categories.
1. They design and implement software. Computer scientists take on challenging program-
ming jobs. They also supervise other programmers, keeping them aware of new approaches.
2. They devise new ways to use computers. Progress in the CS areas of networking, database,
and human-computer-interface enabled the development of the World Wide Web. Now CS
researchers are working with scientists from other fields to make robots become practical
and intelligent aides, to use databases to create new knowledge, and to use computers to help
decipher the secrets of our DNA.
3. They develop effective ways to solve computing problems. For example, computer scien-
tists develop the best possible ways to store information in databases, send data over net-
works, and display complex images. Their theoretical background allows them to determine
the best performance possible, and their study of algorithms helps them to develop new
approaches that provide better performance.
The computer science chapters are organized into eight parts: (I) Overview of Computer Science;
(II) Algorithms and Complexity; (III) Architecture and Organization; (IV) Computational Science and
Graphics; (V) Intelligent Systems; (VI) Networking and Communication; (VII) Operating Systems; and
(VIII) Programming Languages. A brief summary of what you can expect to find in each part is pro-
vided in the following.

Overview of Computer Science


Part I consists of two very important chapters. In Chapter 1, Peter Denning discusses the 50-year evolu-
tion of computer science as a discipline distinct from the fields from which it emerged: mathematics,
science, and engineering. In Chapter 2, Valerie Barr introduces the idea of “computational thinking,” a
relatively new term that is helping to shape modern thinking about the expanding presence of computer
science, especially in the K-12 and undergraduate college curricula.

Algorithms and Complexity


This part discusses the algorithmic and computational complexity issues that underlie all of computer
science. Chapter 3 covers important ways of organizing data inside computers to facilitate their retrieval.
It discusses the time and space trade-offs for implementing the most important algorithms used in almost
every application. The different design paradigms behind these algorithms are discussed in Chapter 4.
The chapter covers greedy methods, divide-and-conquer, and dynamic programming, as well as other
techniques that have been applied successfully in the design of efficient algorithms. Graphs and networks
have been used to model a wide range of computer science problems as well as problems in different disci-
plines. Chapter 5 discusses graph and network techniques that have been devised to efficiently solve these
problems. In some applications, computational problems can be simplified by formulating them as prob-
lems in two-dimensional space. Computational geometry problems include those that have intrinsic geo-
metric properties. Chapter 6 discusses the techniques that have been applied successfully in this domain.
Chapter 7 discusses computational complexity classes. This is a grouping of problems according to the
time and space required to solve them. The major classes are called P and NP, and they help characterize
most of the computational challenges that arise in practice. A fundamental problem in computer science
is to prove or disprove whether P = NP. In fact, it is so important that a so-called “Millennium Prize”
Preface to Volume I: Computer Science and Software Engineering xvii

consisting of $1,000,000 has been offered by the Clay Institute to anyone who solves this problem. At
a more abstract level, Chapter 8 reviews formal methods and computability. This chapter explores the
limits of what is computable within the most basic computing models that are equivalent to current
computer architectures. One of the most complex areas of research is cryptography. Chapter 9 provides
a comprehensive overview of this very important area. Since millions of private transactions take place
on the Internet every second, we need ways to keep them secure and guarantee their integrity. Solutions
in this area require sophisticated mathematical analysis techniques. Chapter 10 addresses the area of
algebraic algorithms. The basic applications in this area are in science and engineering.
As the input size of most computationally complex problems continues to grow (sometimes referred to as
the phenomenon of big data), the study of randomized algorithms has grown considerably in recent years.
Chapter 11 discusses techniques to design such algorithms by presenting algorithms to solve some specific
problems. Another way of dealing with computational complexity is to aim for approximations rather than
optimal solutions. Chapter 12 discusses approximation algorithms and metaheuristics. The different meth-
odologies used in these two areas are surveyed and applied to problems from different disciplines. Algorithms
that take advantage of the combinatorial structure of the feasible solution space are discussed in Chapter 13.
Another important algorithmic challenge is how to visualize data and their structure. Chapter 14 covers the
area of graph drawing, which tries to design algorithms that display information in a clear way according
to given objective functions. In this era of big data, we also need to discover ways of storing, retrieving, and
transmitting it efficiently. Chapter 15 covers strategies for data compression and finding patterns in data
quickly. Chapter 16 studies computing in a landscape where the computations are distributed among many
computers. In this scenario, we need to address the issue of fault-tolerant computing; as the number of inde-
pendent devices grows, the likely failure of at least one of the components increases substantially.

Architecture and Organization


Part III takes us closer to computing machines themselves by examining their architecture and organi-
zation. Starting at the most basic organizational level, Chapter 17 covers digital logic, how it is imple-
mented, and how logical components are designed to carry out basic computations. Chapter 18 covers
the organization of memory and its implementation, including the different levels of memory, access
speeds, and implementation costs. Chapter 19 extends this discussion to the treatment of secondary
storage. A main issue here is how to store files in disks, solid state devices, and flash memories to ensure
reliability. Chapter 20 covers computer arithmetic, including the efficient implementation of the basic
arithmetic and logical operations that are fundamental to all computing activities. Modern input and
output devices are discussed in Chapter 21. As the way we interact with computers has changed over the
years, input and output design remains at the forefront of research and development.
Chapter 22 discusses performance enhancements for instruction processing, such as the use of over-
lap and low-level concurrency. Focusing on the theme of design for efficiency, Chapter 23 surveys the
different ways of organizing parallel computers. It begins with the standard types introduced several
decades ago and concludes with the highly successful GP-GPUs as well as cloud computing. To cir-
cumvent the memory access and sequential performance walls, modern architectures include multiple
processors on a single chip. Chapter 24 discusses the hardware and software challenges for the design
and use of multicore architectures. Chapter 25 explains how DNA can be used to compute some logical
functions and perform biological tests. Currently, performing these tests takes some time because it
requires several computational facilities and involves human intervention.

Computational Science and Graphics


Some aspects of computational science have been part of computing since its beginning. Computational
electromagnetics (Chapter 26) basically studies the computational solution of Maxwell equations. Analytical
solutions to Maxwell equations are usually unavailable, and the few closed-form results that exist have very
xviii Preface to Volume I: Computer Science and Software Engineering

restrictive solutions. The use of computer-based methods for the prediction of fluid flows has seen tremen-
dous growth in the past half century. Fluid dynamics (Chapter 27) has been one of the earliest, and most
active, fields for the application of numerical techniques. Computational astrophysics (Chapter 28) cov-
ers astrophysics, a computationally intensive discipline. Physics and astronomy make heavy use of online
access and data retrieval. Databases, data analysis, and theoretical modeling go hand in hand in this area.
The gravitational n-body problem and its modeling form the basis for cosmology. Chapter 29 discusses the
rich set of computational applications in chemistry. Computational biology/bioinformatics is an area that
has grown tremendously over the last decade. Chapter 30 discusses the interplay between the genetic analy-
sis provided by computational algorithms and the underlying biological processes. Chapter 31 on terrain
modeling examines the computational problems and new insights arising from the analysis of GIS data.
Computer graphics provides the underlying tools for scientific visualization and animation of a wide
variety of real and imaginary phenomena. Chapter 32 discusses the basic geometric primitives manipu-
lated by typical graphics systems. These primitives allow for the efficient representation and manipula-
tion of visual objects in a computer. Chapter 33 covers computer animation, which has become widely
used in the production of movies and videos.

Intelligent Systems
Mathematical logic and declarative programming provide theoretical foundations for artificial intel-
ligence applications, which are called intelligent systems. Chapter 34 explores the use of logic to allow a
system to work in spite of contradictions, dilemmas, and conflicts. Chapter 35 discusses qualitative rea-
soning, which supports reasoning with very little information. This is the first approach that one uses to
understand a problem before developing a more formal or quantitative strategy. Machine learning, dis-
cussed in Chapter 36, is concerned with identifying and exploiting patterns in data to simulate human
learning. Applications of machine learning to real-world problems are widely used on the Internet,
for example, in marketing. Chapter 37 introduces explanation-based learning, which adds inferential
domain theory to expand the reach of statistical machine learning. This theory adds expressiveness to
statistical methods such as Bayesian or Markov models.
Chapter 38 describes searching, which is a basic operation in most computing areas and is par-
ticularly important in intelligent systems where the search domain is often complex. This chapter
explores both blind exhaustive search methods using informed heuristics and optimal heuristics.
Chapter 39 covers planning (the process of creating an organized set of actions) and scheduling
(the process of assigning a set of actions to resources over time). These are basic operations arising
in all sorts of environments and have been studied over the years in several disciplines. Chapter 40
explores natural language processing, or developing systems to understand human languages. In
2011, IBM’s Watson program ­convincingly won the popular Jeopardy game over the most highly
skilled human competitors. This was a major accomplishment for natural language processing.
Spoken language understanding, covered in Chapter 41, is an emerging field between the areas of
speech processing and natural language ­processing. This area leverages technologies from machine
learning to create systems that would facilitate communication with users. Chapter 42 covers neural
networks, which have been used to solve a wide range of problems in modeling intelligent behavior.
Chapter 43 deals with cognitive modeling and surveys the methods and models used to understand
human cognition. The semantic basis and properties of graphic models (Bayesian Networks) are
explored in Chapter 44. Applications to reasoning and planning are discussed in this chapter.

Networking and Communication


In the last 20 years, the use of computer networks for communication has become an integral part of our
daily life. An incredible volume of information is transferred constantly worldwide through computer net-
works, and these must operate efficiently and reliably so that modern business and commerce can function
Preface to Volume I: Computer Science and Software Engineering xix

effectively. Chapter 45 examines the communications software needed to interconnect computers, serv-
ers, and all sort of devices across networks. The unique aspects of wireless networks are discussed in
Chapter 61 in Part VII. Chapter 46 discusses the routing algorithms that manage information flow across
networks, including the trade-offs that exist among different alternatives. Chapter 47 discusses access
control, which is fundamental for protecting information against improper disclosure or modification.
Compression of images and videos needed for the efficient storage and transmission of these types
of data is covered in Chapter 48. Chapter 49 introduces underwater sensor networks, whose challenges
and techniques are very different from those in other types of networks. Chapter 50 surveys ideas for
transforming the World Wide Web to facilitate interoperability and integration of multiauthored, mul-
tithematic, and multiperspective information services seamlessly. Chapter 51 deals with search engines,
which have become indispensable in almost all aspects of our daily life. It discusses the fundamental
issues involved in designing and constructing search engines that interact with enormous amounts of
information and digest it for users.

Operating Systems
An operating system is the fundamental software that controls all aspects of a computer, its applications,
and its user interface. Chapter 52 discusses processes, the basic software activities that an operating
system manages, and the mechanisms needed for communication and synchronization. Chapter 53
covers thread management, where threads are basic sequences of code that comprise a program running
in a system. Breaking programs and systems into threads is particularly useful in multicore machines,
the modern organization of computers. Virtual memory, discussed in Chapter 54, explains the way in
which computer memory is organized for efficient access in computers. This chapter also discusses how
these techniques apply to other levels of storage and systems. The organization of file systems and sec-
ondary storage is discussed in Chapter 55. The main concern is the use of secondary storage space for
its use as long storage media.
Chapter 56 covers performance modeling of computer systems. Different computer architectures
have different performance limits. The chapter discusses different ways to analyze computer system
performance. Chapter 57 deals with a similar topic but for interconnected distributed computer systems
such as clusters, grids, and clouds. An important issue here is maintaining quality of service during
contention management. The architecture and special applications of real-time systems are discussed
in Chapter 58. In these systems, response must occur within specific deadlines; it is a challenge for the
operating system to schedule processes so that these deadlines are met. The design of distributed operat-
ing systems faces two main challenges: scheduling, covered in Chapter 59, and file systems, covered in
Chapter 60. Mobile devices pose new challenges for operating system design, and these are addressed
in Chapter 61. The proliferation of smart phones and tablets has brought this area to the forefront of
research and development. Chapter 62 provides an introduction to service-oriented operating systems
and concludes this part.

Programming Languages
Programming language research has a rich history, and it has remained vibrant with the development
of modern architectures, networks, and applications. Chapter 63 covers imperative programming lan-
guages, the oldest and probably the most prolific style of programming. These types of languages are in
widespread use and are familiar to software developers in all areas of computing. The object-oriented
programming paradigm discussed in Chapter 64 has become popular as it facilitates modeling real-
world software systems using object decomposition. Another form of programming, logic program-
ming discussed in Chapter 65, has major applications in artificial intelligence and natural language
processing research. Recent developments have been especially active in the areas of multiparadigm
programming languages and scripting languages described in Chapter 66 and Chapter 67, respectively.
xx Preface to Volume I: Computer Science and Software Engineering

Chapter 68 deals with compilers and interpreters, which provide the interface between programs
written in higher-level programming languages and an equivalent encoding that a computer can under-
stand and carry out. Many aspects of this process have been automated, and the techniques and limita-
tions of these processes are also discussed. Every programming language has syntax and semantics.
Syntax refers to the valid strings of characters that define valid programs in the language, and semantics
refers to the meaning of such strings. Chapter 69 covers formal semantics for programming languages.
Chapter 70 describes type systems, which are used in modern programming languages to guarantee
that programs are free of type-related errors. This chapter discusses the formal underpinnings of type
systems as well as their implementations. Chapter 71 covers formal methods, a set of notations and tools
that provide a mathematical basis for proving the correctness of a program with regard to its formal
specification.

Software Engineering
As an academic field of study, software engineering was introduced in the early 1970s as a specialization of
computer science and engineering, first as master-level programs. In the 1990s, the field proliferated in North
America, Europe, and Australia, first in the form of BS programs and, more recently, programs at the PhD
level; that is, software engineering programs separate from computer science programs (Lethbridge et al.,
2006). What is the difference and why do we care?
Software is of critical importance in today’s world and of increasingly serious public significance in
our daily lives for our safety and security. Although the voicing of concerns about the critical conse-
quences of not considering software development as a more rigorous profession dates back to the late
1960s (Naur, 1969), today software engineering is still not a fully formed, mature professional discipline.
This seems more of an elusive goal than a concrete reality or even a future possibility. Some wonder if
trying to retrofit software engineering with the traditional engineering paradigm has hindered its accep-
tance as a professional discipline. Particularly lacking is a widespread recognition of software develop-
ers as professionals in the full sense of the word.*
Over the past decades, we have identified scientific and engineering body of knowledge needed to
solve technical software problems that meet user requirements (functional and otherwise) and deliver
software within budget, on time, as well as within its economic, legal, and social considerations. The
study of engineering requires a strong background in mathematics and the physical sciences. Although
this is not different for software engineers, the kind of mathematics and the specific science may be dif-
ferent from more traditional engineering disciplines. However, a legitimate research question remains
on whether there could be a scientific basis for understanding the complexity of software such that it can
be engineered to have predictable quality and behavior.
Ian Sommerville (1999) introduced the idea that software engineering is perhaps something else: “In
essence, the type of systems which we are interested in are socio-technical software-intensive systems.…
Systems, therefore, always include computer hardware, software which may be specially designed or
bought-in as off-the-shelf packages, policies and procedures, and people who may be end-users and pro-
ducers/consumers of information used by the system.” Furthermore, Sommerville and his colleagues
claim that “there is no technical solution to software complexity” (Sommerville, 2012).
The fact that computing has become a distinct branch of knowledge, that is, a discipline in its own
right different from science and engineering—an idea first formally introduced by Denning (1998) and
further developed by Denning and Freeman (Denning, 2009)—fits this notion as has been demonstrated
by the creation of a unifying and enclosing academic entity that embraces the science, engineering, and
technology of computing: the computing college, “standing alone, headed by its own dean, with the

* It is a fact of life that many of the software industry professionals are graduates from computer science and related fields.
This is of no surprise since in most advertisements for such positions, the educational requirements often listed are
degrees in computer science. However, once hired, employers give them the title of software engineer.
Preface to Volume I: Computer Science and Software Engineering xxi

same stature as traditional colleges” [op. cit.]. In this way, computer science is a different kind of science
and software engineering a different kind of engineering.
The chapters in the last four parts consolidate our current understanding of the discipline of software engi-
neering and its effect on the practice of software development and the education of software professionals.
There are four main parts. (1) Discipline of Software Engineering; (2) Software Quality and Measurement;
(3) Software Development Management: Processes and Paradigms; and (4) Software Modeling, Analysis,
and Design (notice that programming topics were amply covered in Part VIII, programming languages).

Discipline of Software Engineering


This part includes five chapters. It starts with Chapter 72, which provides an overview of software engi-
neering. The chapter delineates the historical development of the discipline and provides an analysis of
accepted definitions and an outline of the elements of the field. It looks at generally accepted definitions
of engineering and shows the relation of certain elements to software development. It also points out
important differences and demonstrates through a detailed analysis how prominent features that cut
across all engineering disciplines can reasonably be mapped to software development. In this regard,
the two most fundamental aspects are problem solving and engineering design. Mastery of problem
solving involves a combination of proper judgment, experience, common sense, and know-how that
must be used to reduce a real-world problem to such a form that science can be applied to find its solu-
tion. Engineering design, on the other hand, is the process of devising a system, component, or process
to meet desired needs by finding technical solutions to specific practical problems, while taking into
account economic, legal, and ecological considerations. Among the fundamental elements of this pro-
cess are the establishment of objectives and criteria, synthesis, analysis, construction, testing, and evalu-
ation, all of which have a counterpart in software engineering.
Chapters 73 and 74 deal with professionalism and certification issues and the code of ethics and profes-
sional conduct, respectively. Chapter 73 addresses software engineering as a profession from the point of
view of the body of knowledge, accreditation of academic programs, and issues on licensure and certifi-
cation of software engineering professionals. It provides a good account of the political realities of mak-
ing software development a professional discipline and concludes that “it seems clear that the future of
software engineering professionalism will be driven by industry and government,” although the uptake
of credentials has been driven by practitioners’ interest (e.g., IEEE-CS CSDP).
Concomitant with the development of software engineering as a professional discipline is the intro-
duction of a code of ethics, and in late 1999 the Association for Computing Machinery and the IEEE
Computer Society approved the Software Engineering Code of Ethics and Professional Practice. In
Chapter 74, Gotterbarn, a principal architect of the code, provides a rich historical account of its devel-
opment and a thorough description of its purpose and principles, together with simple cases as examples
and practical guidance for public accountability and educational purposes.
Chapters 75 and 76 address software IT business and economics and open source and governance.
Chapter 75 provides an overview of the business of software from an IT and economics point of view,
with a focus on the success rate of projects in terms of schedule predictability and quality, while empha-
sizing available solutions and best practices to practically implement this framework. It concludes with
a look at business trends, naturally influenced and determined by external factors such as demand for
value, fashion, individualism, ever-changing expectations, demand for ubiquitous services, global com-
petition, economic and ecologic behaviors, and the need for security and stability, which in turn influ-
ence trends for software and IT business.
Chapter 76 on open source and governance is an authoritative manifesto in the subject, providing a
comprehensive set of underlying principles regarding copyright law and license terms, including the
peculiarities of COTS (commercial off-the-shelf). It also contains numerous examples of best practices
covering a myriad of situations in which companies “desiring to supplement and expand the capabilities
of their existing software” can find themselves.
xxii Preface to Volume I: Computer Science and Software Engineering

Software Quality and Measurement


This part highlights an important aspect that makes software engineering a distinct computing dis-
cipline and that lends it much scientific credibility. The first two chapters focus on evidence-informed
software engineering and empirical software engineering. Chapter 77 introduces the evidence-based par-
adigm, which originally emerged in medicine, together with a systematic literature review of its appli-
cation in software engineering. The idea, first advocated by Kitchenham et al. in 2004, suggests that
with some adaptation to fit the nature of software engineering studies, this could be a valuable way of
consolidating our empirical knowledge about what works, when, and where. Chapter 78 provides an
overview of how the ideas and practices associated with empirical software engineering have evolved.
It represents an invaluable aid for identifying suitable forms of study for a particular need and to pro-
vide enough background for software engineers to appreciate the strengths and limitations of empirical
knowledge and practice. This is particularly relevant if software engineering is to become a professional
discipline; in this way, its practices, methods, and tools would need to be informed by evidence from
well-conducted empirical studies.
Chapter 79 looks at quality in general and provides a comprehensive survey and analysis of qual-
ity under the umbrella of software process improvement. It differentiates software quality attributes
from the point of view of the end user to IT operations, through marketing and projects and technical
concerns. It also describes five perspective approaches to quality, that is, transcendental, product, user,
manufacturing, and value based, with corresponding mappings to ISO quality standards. The chapter
then juxtaposes process and quality and cost and quality. It provides an overview of best practices cover-
ing the various approaches to software process maturity such as CMM and SPICE together with practi-
cal implementation implications. It also identifies issues associated with small organizations and Agile
development, as well as measurement and the use of statistical process control.
Chapter 80 focuses on software metrics and measurements and hence follows naturally here. This
is an important component of software engineering as a professional discipline. The chapter dem-
onstrates the value of software measurement and the role of international standards. These stan-
dards embody principles and best practices as defined and codified by experts in the field. Several
approaches to implement measurement are discussed, including CMMI measurement and analysis
(M&A), measurement and analysis infrastructure diagnostic (MAID), and goal–question–metric
(GQM) among others. The chapter also covers predictive models and indicators, developing bench-
marks and heuristics and improving data quality, concluding that “software measurement is required
to quantify quality and performance and to provide an empirical and objective foundation for deci-
sion making—a foundation that is a necessary element if software engineering is truly to be a disci-
plined field of engineering.”

Software Development Management: Processes and Paradigms


The chapters in this part address the development of software from a higher-level managerial, rather
than code development point of view. The first three chapters deal with management and organiza-
tional issues. Chapter 81 argues that there is no one best way to develop software and manage projects
for all kinds of applications but that there are some basic principles that can be applied to a variety of
projects within their contexts. It takes us through a series of high-level process concepts, innovation
and design, and architecture strategies and how they are used in different situations. It concludes with
a brief analysis of the results of a survey on global differences in practices and performance metrics in
different regions of the world.
Chapter 82 covers issues related to project personnel and organization such as how to put together a
team and how to decide on the types of personnel that you will need in your team based on the differ-
ent types of roles and responsibilities. The chapter also explains the different ways you can organize
Preface to Volume I: Computer Science and Software Engineering xxiii

your personnel along with the advantages and disadvantages of each approach, as well as underlying
principles and best practices.
Chapter 83 discusses project and process control. It makes a distinction between the project manager’s
control activities in executing a project, that is, project control, and the control of the underlying soft-
ware development processes, or process control. Controlling a project and controlling the underlying
processes are very different activities and, consequently, they require very different techniques to make
them effective. The chapter describes the underlying mathematical and engineering foundations of two
well-known control methods that can be applied to controlling software development projects and to
their underlying software development processes. The first is closely related to traditional engineering
methods for controlling manufacturing and communications systems using feedback. The second is
known as statistical process control (SPC). The chapter concludes with a brief discussion of the extensive
literature describing the application of SPC methods to software projects and the successes and failures
that they have reported.
The last three chapters in this part address more recent development frameworks. Chapter 84 pro-
vides a thorough introduction to Agile methods, an umbrella term popularized with the publication of
the Agile manifesto, reflecting an intention to differentiate Agile approaches from a trend in software
development methodologies that had gained dominance in previous decades. It describes the set of 12
principles underlying the Agile approach as provided by the Agile manifesto. Specific implementations
of the approach are described as best practices, including extreme programming, scrum, etc., together
with an analysis of their specific incorporation, or not, of the 12 principles. The chapter concludes with a
discussion of plan-driven approaches’ compatibility, such as CMMIs, with Agile methods and thorough
analyses of important research directions.
Chapter 85 presents a process for developing software based on service-oriented architectures. The
fundamental building blocks of the approach are services, commonly viewed as self-contained software
application modules exposed through interfaces over a distributed environment. The chapter intro-
duces related elements such as component-based development, distributed components, and web ser-
vices. The underlying principles of the approach are described together with the service infrastructure
needed. In terms of best practices, the chapter outlines reference models and reference architectures and
standards as well as the enterprise service bus idea and compares the specific implementations of the
web services SOAP and REST.
Chapter 86 on software product lines (SPL) provides an introduction to the topic and a thorough anal-
ysis of its research challenges. SPL is one of the most active research areas of software engineering, and
despite remarkable contributions, which are briefly highlighted, important technical problems remain.
The chapter reports quantitative information, based on a secondary study and literature review, on these
remaining problems, which slow down widespread adoption of SPL. The results provided are supported
by a survey among longtime and active SPL researchers and practitioners. The top two reported research
problems were variability management and evolution.

Software Modeling, Analysis, and Design


The last part of this section focuses on specific software development activities starting with require-
ments elicitation and specification, followed by model checking, design strategies, and software archi-
tecture and finally dealing with more overarching topics such human–computer interfaces and software
assurance.
Chapter 87 covers requirements elicitation, a subprocess of requirements engineering concerned with
gathering information about a computer-based system to be built. This is generally the first step in the
software development life cycle regardless of the process model, whether it be waterfall, spiral, or even
Agile. The chapter considers the different scenarios, reviews all available techniques with their pros and
cons, and provides sound advice on what could go wrong during requirements elicitation.
xxiv Preface to Volume I: Computer Science and Software Engineering

Chapter 88 focuses on specifications for software systems and the software requirements specification
document (SRS) document capturing them. Software requirement specifications are discussed at dif-
ferent stages from a very informal description to inform users, to descriptions in unambiguous terms,
written in a rather formal (i.e., precise and unambiguous) manner. The chapter provides an overview of
best practices for producing an SRS possessing all the desirable quality attributes and characteristics. It
also provides a survey of the various specification languages and lists outstanding research issues such
as completeness, nonfunctional requirements, cost, program construction and proof, and correctness-
preserving program transformations.
Chapter 89 provides an overview of techniques and tools for analyzing the correctness of software
systems using model checking. Two classes of techniques are covered, namely, counterexample-guided
abstraction refinement (CEGAR) using predicate abstraction, and bounded model checking; other key
model checking techniques that are geared toward software verification analysis are also covered. The
chapter concludes with a brief survey of tools.
The next two chapters are about software design. Chapter 90 on design strategies leads us directly
from requirements as “one assumption underlying any design is that the design will satisfy some set of
requirements.” A set of underlying principles is discussed, including the notion of views, architectural
patterns and tactics, decomposition and refinements, and code generation and testing. Design best prac-
tices are presented together with an analysis of important research concerns such as automatic/semiau-
tomatic design, the accuracy of models, and the use and appropriate place for tools.
Chapter 91 on software architecture focuses exclusively on the main product of design: an archi-
tectural design of the software system to solve a specified problem. Various architectural frameworks
are contrasted from their specific viewpoints, as well as a survey of design methods. A metaprocess is
described, starting with concern analysis and domain analysis and concluding with architecture design,
evaluation, and realization. Research topics in software architectures presented include modeling qual-
ity and issues related to model-driven design.
Chapter 92 on human–computer interfaces in software engineering uses speech applications (both
input and synthesis) from requirements to design and implementation to illustrate principles and best
practices and describe difficult research issues that lie ahead on the implication of human–computer
interaction on software development. The latter discusses inherent current limits in speech applications
design.
Chapter 93 deals with software assurance. It discusses the impact of the risks associated with software
vulnerabilities and introduces basic definitions of software assurance. It also presents modern principles
of software assurance and identifies a number of relevant process models, frameworks, and best prac-
tices. The chapter concludes with a research framework to support and identify gaps for future research
and includes a description of the knowledge areas for a Master of Software Assurance as mapped to
maturity levels for building assured systems.

MATLAB® is a registered trademark of The MathWorks, Inc. For product information, please contact:

The MathWorks, Inc.


3 Apple Hill Drive
Natick, MA 01760-2098 USA
Tel: 508-647-7000
Fax: 508-647-7001
E-mail: [email protected]
Web: www.mathworks.com
Preface to Volume I: Computer Science and Software Engineering xxv

References
Denning, P., Computing the profession: An invitation for computer scientists to cross the chasm. Educom
Review, 33(6), 1998:26–30;46–59.
Denning, P. and P. Freeman. Computing’s paradigm. Communications of the ACM, December 2009.
Joint Task Force on Computing Curricula, Computer Science Curricula 2013, Association for Computing
Machinery (ACM) and the IEEE-Computer Society (IEEE-CS), December 2013. See http://www.
acm.org/education/curricula-recommendations.
Lethbridge, T.C., R.J. LeBlanc Jr., A.E. Kelley Sobel, T.B. Hilburn, and J.L. Díaz-Herrera. SE2004:
Curriculum recommendations for undergraduate software engineering programs. IEEE Software,
Nov/Dec 2006, 19–25.
Lunt, B.M., J.J. Ekstrom, S. Gorka, G. Hislop, R. Kamali, E. Lawson, R. LeBlanc, J. Miller, and H. Reichgelt.
IT 2008: Curriculum Guidelines for Undergraduate Degree Programs in Information Technology.
ACM and IEEE Computer Society, 2008.
Naur, P. and B. Randell (eds.). Software Engineering, Report on a Conference Sponsored by the NATO
Science Committee, October 1968.
Shackelford, R., J. Cross, G. Davies, J. Impagliazzo, R. Kamali, R. LeBlanc, B. Lunt, A. McGettrick, R.
Sloan, and H. Topi. Computing Curricula 2005: The Overview Report, A cooperative project of the
ACM, AIS, and IEEE Computer Society, 30 September, 2005. See http://www.acm.org/education/
curricula-recommendations.
Sommerville, I. Systems engineering for software engineers. Annals of Software Engineering, 6(1–4), April
1999: 111–129.
Sommerville, I., D. Cliff, R. Calinescu, J. Keen, T. Kelly, M. Kwiatkowska, J. Mcdermid, and R. Paige.
Large-scale complex IT systems. Communications of the ACM, 55(7), July 2012: 71–77.
Topi, H., J. Valacich, R. Wright, K. Kaiser, J. Nunamaker, J. Sipior, and G. Jan de Vreede. IS 2010: Curriculum
guidelines for undergraduate degree programs in information systems. Communications of the
Association for Information Systems, 26(18). http://aisel.aisnet.org/cais/vol26/iss1/18.
Tucker, A. (ed.). Computer Science Handbook, 2nd edn., Chapman & Hall/CRC Press, in cooperation with
the Association for Computing Machinery (ACM), Boca Raton, FL, 2004.
Acknowledgments

This volume would not have been possible without the tireless and dedicated work of all the authors and
reviewers. We appreciate the willingness of both established experts and influential younger research-
ers to join this effort and contribute to this work. Even though we have been working for decades in the
computing field, our work on this volume has enriched substantially our knowledge and understanding
of computing.
We would also like to thank the editorial staff at Chapman & Hall/CRC Press, particularly the per-
sistent and gentle leadership of Randi Cohen, computer science acquisitions editor, whose role has
extended beyond any reasonable call of duty. Bob Stern, as the original computer science editor who
helped create this handbook in its original and second editions, also deserves recognition for his con-
tinued support over the years.
Teo acknowledges the support of the University of California, Santa Barbara (UCSB). Without his
sabbatical leave, this project would not have been possible. He also wants to thank his wife, Dorothy,
and children, Jeanmarie, Alexis, Julia, Teofilo, and Paolo, for their love, encouragement, understanding,
patience, and support throughout the project and his tenure at UCSB.
Jorge acknowledges the support of Dr. Özlem Albayrak during the entire project. He is grateful to
his team at Keuka College, particularly Lori Haines and Sandra Wilmott, for their moral support and
encouragement as he took the helm of the College concomitant with the start of this project.
Allen acknowledges Bowdoin College for providing him the time and support needed to develop the
first, second, and third editions of this handbook set over the last 15 years. He also thanks the many
colleagues who have contributed to earlier editions of this handbook, without which the current edition
would not have been possible. Finally, he thanks his wife, Meg, and children, Jenny and Brian, for their
constant love and support over a lifetime of teaching and learning.
We hope that this volume will be actively and frequently used both by academics who want to explore
the current status and new opportunities within specific research areas and by advanced practitioners
who want to understand how they can benefit from the latest thinking within the disciplines of com-
puter science and software engineering. We also warmly welcome your feedback.

Teofilo Gonzalez
University of California, Santa Barbara

Jorge Díaz-Herrera
Keuka College

Allen B. Tucker
Bowdoin College

xxvii
Editors

Allen B. Tucker is the Anne T. and Robert M. Bass Professor Emeritus in the Department of Computer
Science at Bowdoin College, Brunswick, Maine, where he served on the faculty from 1988 to 2008. Prior
to that, he held similar positions at Colgate and Georgetown Universities. Overall, he served for 18 years
as a department chair and two years as an associate dean of the faculty. While at Colgate, he held the
John D. and Catherine T. MacArthur Chair in Computer Science.
Professor Tucker earned a BA in mathematics from Wesleyan University in 1963 and an MS and
PhD in computer science from Northwestern University in 1970. He is the author or coauthor of several
books and articles in the areas of programming languages, natural language processing, and software
engineering. He has given many talks, panel discussions, and workshop presentations in these areas
and has served as a reviewer for various journals, NSF programs, and curriculum projects. He has also
served as a consultant to colleges, universities, and other institutions in the areas of computer science
curriculum, software development, programming languages, and natural language processing applica-
tions. Since retiring from his full-time academic position, Professor Tucker continues to write, teach,
and develop open source software for nonprofit organizations.
A fellow of the ACM, Professor Tucker coauthored the 1986 Liberal Arts Model Curriculum in
Computer Science and cochaired the ACM/IEEE-CS Joint Curriculum Task Force that developed
Computing Curricula 1991. For these and related efforts, he received the ACM’s 1991 Outstanding
Contribution Award, shared the IEEE’s 1991 Meritorious Service Award, and received the ACM SIGCSE’s
2001 Award for Outstanding Contributions to Computer Science Education. In 2001, he was a Fulbright
Lecturer at the Ternopil Academy of National Economy in Ukraine, and in 2005, he was an Erskine
Lecturer at the University of Canterbury in New Zealand. Professor Tucker has been a member of the
ACM, the NSF CISE Advisory Committee, the IEEE Computer Society, Computer Professionals for
Social Responsibility, the Liberal Arts Computer Science (LACS) Consortium, and the Humanitarian
Free and Open Source Software (HFOSS) Project.

Dr. Jorge L. Díaz-Herrera became the 19th president of Keuka College on July 1, 2011. He was profes-
sor and founding dean of the B. Thomas Golisano College of Computing and Information Sciences at
Rochester Institute of Technology in Rochester, New York, since July 2002. Prior to this appointment,
he was professor of computer science and department head at SPSU in Atlanta and Yamacraw project
coordinator with Georgia Tech. He became the chair of the first Software Engineering Department in
the United States at Monmouth University in New Jersey. He has had other academic appointments with
Carnegie Mellon’s Software Engineering Institute, George Mason University in Virginia, and at SUNY
Binghamton in New York.
Dr. Díaz-Herrera has conducted extensive consulting services with a number of firms and govern-
ment agencies, including New York Stock Exchange (SIAC), MITRE Corp., the Institute for Defense
Analysis, General Electric, Singer-Link, TRW, EG&G, and IBM among others. He has participated in
technical meetings and provided professional expertise to international organizations, including the

xxix
xxx Editors

European Software Institute, Australian Defense Science and Technology Office, Kyoto Computing
Gaikum, Kuwait University, Cairo University, Instituto Politecnico Santo Domingo (INTEC), Bilkent
University in Turkey, and Malaysia University of Technology among others. He has chaired several
national and international conferences and has been a technical reviewer for the National Science
Foundation, the American Society for Engineering Education, and several conferences and journals. He
has more than 90 publications.
Dr. Díaz-Herrera is a senior member of the IEEE, and was a member of IEEE-CS Distinguished
Visitor Program for nine consecutive years, a leading writer of the Software Engineering Professional
Examination, and coeditor of the Software Engineering volume of the Computing Curricula project. He
was an active member of the CRA-Deans Group of the Computer Research Association in Washington,
DC and serves, and has served, on various technical advisory committees and governing boards, includ-
ing the Technical Advisory Group, SEI, Carnegie Mellon University, Pittsburgh, Pennsylvania; Advisory
Committee for CISE, National Science Foundation, Washington, DC; Advisory Committee for GPRA/
PA, National Science Foundation, Washington, DC; Board of Trustees, Strong National Museum of Play,
Rochester, New York; Board of Trustees, Gallaudet University, Washington, DC; NY State Universal
Broadband Council, Action Team on Digital Literacy, Albany, New York; and Research Board, Instituto
Technológico de las Américas (ITLA), Dominican Republic.
Dr. Díaz-Herrera completed his undergraduate education in Venezuela and holds both a master’s
degree and a PhD in computing studies from Lancaster University in the United Kingdom. He completed
two graduate certificates in management leadership in education from Harvard University’s Graduate
School of Education. He recently received a doctor honoris causa from his alma mater, Universidad
Centro Occidental Lisandaro Alvarado, in Barquisimeto, Venezuela.

Professor Teofilo F. Gonzalez was one of the first ten students who received a computer science under-
graduate degree in Mexico (ITESM 1972). He received his PhD from the University of Minnesota in
1975. He has been member of the faculty at OU, Penn State, and UT Dallas and has spent sabbatical
leave at the ITESM (Monterrey, Mexico) and U. Utrecht (the Netherlands). Since 1984, he has served as
professor of computer science at the University of California, Santa Barbara.
Professor Gonzalez’s main research contributions include the development of exact and approxima-
tion algorithms as well as establishing complexity results for problems in several research areas, includ-
ing message dissemination (multicasting), scheduling, VLSI placement and routing, computational
geometry, graph problems, clustering, etc.
Professor Gonzalez edited the Handbook on Approximation Algorithms and Metaheuristics (Chapman &
Hall/CRC, 2007). This handbook was the first one in the area and included contributions from top research-
ers worldwide. His work has been published in top journals in computer science, operations research and
computer engineering, as well as in research books and conference proceedings. Professor Gonzalez has
served as editor and guest editor of several publications. Currently, he serves as associate editor of IEEE
Transactions on Computers and ACM Computing Surveys. He has been program committee chair and gen-
eral chair for many conferences. He has received the Outstanding Computer Science Professor of the Year
Award three times. He also received the Outstanding Performance as PC Chair for PDCS several times.
Professor Gonzalez is a IASTED fellow. Since 2002, he has participated in the ABET accreditation process
as a CAC program evaluator and commissioner.
Contributors

Jemal Abawajy Marvin Andujar Daniel M. Berry


School of Information School of Computing David R. Cheriton School of
Technology Clemson University Computer Science
Deakin University Clemson, South Carolina University of Waterloo
Melbourne, Victoria, Australia Waterloo, Ontario, Canada
Valerie Barr
Özlem Albayrak Department of Computer Brian N. Bershad
School of Applied Technology Science Google
and Management Union College Seattle, Washington
Bilkent University Schenectady, New York
Ankara, Turkey
Christopher M. Bishop
Eric W. Allender Roman Barták Microsoft Research
Department of Computer Faculty of Mathematics and Cambridge, United Kingdom
Science Physics
Rutgers University Charles University in Prague Daniel Rubio Bonilla
New Brunswick, New Jersey Prague, Czech Republic High Performance Computing
Centre
Dan Alistarh Stuttgart, Germany
Sanjoy Baruah
Computer Science and Artificial
Department of Computer
Intelligence Lab J. Phillip Bowen
Science
Massachusetts Institute of Department of Pharmaceutical
The University of North
Technology Sciences
Carolina, Chapel Hill
Cambridge, Massachusetts College of Pharmacy
Chapel Hill, North Carolina
Mercer University
Hanan Alnizami
Atlanta, Georgia
School of Computing Len Bass
Clemson University National ICT Australia Ltd
Clemson, South Carolina Sydney, New South Wales, Jonathan P. Bowen
Australia Museophile Limited
Ignacio Alvarez London, United Kingdom
School of Computing
Clemson University Anne Benoit
Clemson, South Carolina Laboratoire d'Informatique de Pearl Brereton
Paris School of Computing and
Thomas E. Anderson Ecole Normale Supérieure de Mathematics
University of Washington Lyon Keele University
Seattle, Washington Lyon, France Staffordshire, United Kingdom

xxxi
xxxii Contributors

James Brock Gustavo Chávez Sabrina De Capitani di


Cognitive Electronics Strategic Initiative in Extreme Vimercati
Boston, Massachusetts Computing Dipartimento di Informatica
King Abdullah University of Università degli Studi di Milano
Kim Bruce Science and Technology Milan, Italy
Department of Computer Thuwal, Saudi Arabia
Science Gerald DeJong
Pomona College Baozhi Chen Department of Computer
Claremont, California Department of Electrical and Science
Computer Engineering University of Illinois at Urbana
David Budgen Rutgers University Champaign
School of Engineering and New Brunswick, New Jersey Champaign, Illinois
Computing Sciences
Durham University Eric Chown
Durham, United Kingdom Onur DemirÖrs
Bowdoin College Informatics Institute
Brunswick, Maine Middle East Technical University
Hieu Bui
Department of Computer Ankara, Turkey
Science Jacques Cohen
Duke University Brandeis University
Peter J. Denning
Durham, North Carolina Waltham, Massachusetts
Naval Postgraduate School in
Monterey
Rajkumar Buyya James L. Cox
Cebrowski Institute for
Cloud Computing and Brooklyn College
Innovation and Information
Distributed Systems and
Superiority
Laboratory Graduate Center
Monterey, California
Department of Computing and The City University of
Information Systems New York
The University of Melbourne Brooklyn, New York Jorge L. Díaz-Herrera
Melbourne, Victoria, Australia Office of the President
Maxime Crochemore Keuka College
Derek Buzasi King’s College London Keuka Park, New York
Department of Physics and London, United Kingdom
Astronomy Thomas W. Doeppner
Florida Gulf Coast University and
Department of Computer
Fort Myers, Florida Université Paris-Est Science
Marne-la-Vallée Brown University
David A. Caughey Providence, Rhode Island
Paris, France
Sibley School of Mechanical and
Aerospace Engineering
Michael A. Cusumano Alastair Donaldson
Cornell University
Engineering Systems Division Department of Computing
Ithaca, New York
Sloan School of Management Imperial College London
Harish Chandran Massachusetts Institute London, United Kingdom
Google Corporation of Technology
Mountain View, California Cambridge, Massachusetts Joseph Dumas
Department of Computer
Vijay Chandru Shelby S. Darnell Science and Engineering
National Institute of Advanced School of Computing University of Tennessee,
Studies Clemson University Chattanooga
Bangalore, India Clemson, South Carolina Chattanooga, Tennessee
Contributors xxxiii

Christof Ebert Apostolos Gerasoulis Herman Haverkort


Vector Consulting Services Rutgers University Technische Universiteit
GmbH New Brunswick, New Jersey Eindhoven
Stuttgart, Germany Eindhoven, the Netherlands
Juan E. Gilbert
Raimund K. Ege School of Computing Frederick J. Heldrich
Northern Illinois University Clemson University Department of Chemistry and
DeKalb, Illinois Clemson, South Carolina Biochemistry
College of Charleston
Josh Ekandem Teofilo F. Gonzalez Charleston, South Carolina
School of Computing Department of Computer
Clemson University Science
Clemson, South Carolina Michael G. Hinchey
University of California, Santa
Lero
Barbara
University of Limerick
Ioannis Z. Emiris Santa Barbara, California
Limerick, Ireland
Department of Informatics and
Telecommunications Nikhil Gopalkrishnan
University of Athens Department of Computer Ken Hinckley
Athens, Greece Science Microsoft Research
Duke University Redmond, Washington
John Favaro Durham, North Carolina
Consulenza Informatica Pascal Hitzler
Pisa, Italy Don Gotterbarn Department of Computer
Department of Computing Science and Engineering
Michael J. Flynn East Tennessee State University Wright State University
Department of Electrical Johnson City, Tennessee Dayton, Ohio
Engineering
Stanford University Rachid Guerraoui Nitin Indurkhya
Stanford, California Distributed Programming Lab School of Computer Science
École Polytechnique Fédérale de and Engineering
Kenneth Forbus Lausanne The University of New
Northwestern University Lausanne, Switzerland South Wales
Evanston, Illinois Sydney, New South Wales,
Dilek Hakkani-Tür Australia
Peter A. Freeman Conversational Systems
College of Computing Research Center France Jackson
Georgia Institute of Technology Microsoft Research School of Computing
Atlanta, Georgia Mountain View, California Clemson University
Clemson, South Carolina
Brian M. Gaff Jon Hakkila
McDermott Will and Emery, LLP College of Charleston Robert J.K. Jacob
Boston, Massachusetts Charleston, South Carolina Tufts University
Medford, Massachusetts
Sudhanshu Garg Michael Hanus
Department of Computer Institute of Informatics Melva James
Science Christian-Albrechts-University School of Computing
Duke University of Kiel Clemson University
Durham, North Carolina Kiel, Germany Clemson, South Carolina
xxxiv Contributors

Krzysztof Janowicz Danny Kopec Michael C. Loui


Department of Geography Brooklyn College Department of Electrical and
University of California, Santa and Computer Engineering
Barbara Graduate Center University of Illinois at Urbana
Santa Barbara, California The City University of New York Champaign
Brooklyn, New York Champaign, Illinois
Tao Jiang
University of California,
Marc van Kreveld Stephen Lucci
Riverside
Department of Information and The City College of New York
Riverside, California
Computing Sciences The City University of New York
Utrecht University Brooklyn, New York
Michael J. Jipping
Utrecht, the Netherlands
Department of Computer
Science Naja Mack
Hope College Brian R. Landry School of Computing
Holland, Michigan Saul Ewing, LLP Clemson University
Boston, Massachusetts Clemson, South Carolina
Michael I. Jordan
University of California, Trishan de Lanerolle Ronald Mak
Berkeley Trinity College Department of Computer
Berkeley, California Hartford, Connecticut Science
Konstantinos G. Kakoulis San Jose State University
Edward D. Lazowska San Jose, California
Department of Industrial
University of Washington
Design Engineering
Seattle, Washington
Technological Educational Loris Marchal
Institute of West Macedonia Laboratoire d'Informatique de
Thierry Lecroq
Kozani, Greece Paris
University of Rouen
Ecole Normale Supérieure de
Mont-Saint-Aignan, France
Jonathan Katz Lyon
Department of Computer Lyon, France
Miriam Leeser
Science
Department of Electrical and
University of Maryland Stephen Marsland
Computer Engineering
College Park, Maryland School of Engineering and
Northeastern University
Boston, Massachusetts Advanced Technology
Samir Khuller Massey University
University of Maryland Palmerston North, New Zealand
Henry M. Levy
College Park, Maryland
University of Washington
Yoongu Kim Seattle, Washington Tom McBride
Department of Electrical and University of Technology,
Computer Engineering Ming Li Sydney
Carnegie Mellon University University of Waterloo Sydney, Australia
Pittsburgh, Pennsylvania Waterloo, Ontario, Canada
James McDonald
Barbara Kitchenham Kenneth C. Louden Department of Computer
School of Computing and Department of Computer Science and Software
Mathematics Science Engineering
Keele University San Jose State University Monmouth University
Staffordshire, United Kingdom San Jose, California West Long Branch, New Jersey
Contributors xxxv

Andrew McGettrick Onur Mutlu Melvin Pérez-Cedano


Department of Computer and Department of Electrical and Construx Software
Information Sciences Computer Engineering Seattle, Washington
University of Strathclyde and
Glasgow, Scotland Department of Computer
Science Radia Perlman
Carnegie Mellon University Intel Laboratories
Marshall Kirk McKusick
Pittsburgh, Pennsylvania Pittsburgh, Pennsylvania
Marshall Kirk McKusick
Consultancy
Kazumi Nakamatsu
Berkeley, California
School of Human Science and Gregory J. Ploussios
Environment Edwards Wildman Palmer,
Paul McMahon University of Hyogo LLP
PEM Systems Himeji, Japan Boston, Massachusetts
Binghamton, New York
Ö. Ufuk Nalbantoğlu
Occult Information Laboratory Dario Pompili
Nancy R. Mead Department of Electrical Department of Electrical and
Software Engineering Institute Engineering Computer Engineering
Carnegie Mellon University University of Nebraska-Lincoln Rutgers University
Pittsburgh, Pennsylvania Lincoln, Nebraska New Brunswick, New Jersey

Robert E. Noonan
Clyde R. Metz
College of William and Mary Raphael Poss
Department of Chemistry and
Williamsburg, Virginia Institute for Informatics
Biochemistry
University of Amsterdam
College of Charleston Bariş Özkan Amsterdam, the Netherlands
Charleston, South Carolina Informatics Institute
Middle East Technical University
Michael Mitzenmacher Ankara, Turkey Balaji Raghavachari
School of Engineering and The University of Texas,
Victor Y. Pan Dallas
Applied Sciences
Department of Mathematics Richardson, Texas
Harvard University
and Computer Science
Cambridge, Massachusetts
Lehman College
The City University of New York M.R. Rao
Reem Mokhtar New York, New York Indian School of Business
Department of Computer Hyderabad, India
Science Robert M. Panoff
Duke University Shodor and the National
Durham, North Carolina Computational Science Bala Ravikumar
Institute University of Rhode Island
Durham, North Carolina Kingston, Rhode Island
Dekita Moon
School of Computing Judea Pearl
Clemson University Cognitive Systems Laboratory Kenneth W. Regan
Clemson, South Carolina Department of Computer Department of Computer
Science Science and Engineering
Ralph Morelli University of California, University at Buffalo
Trinity College Los Angeles State University of New York
Hartford, Connecticut Los Angeles, California Buffalo, New York
xxxvi Contributors

John Reif Pierangela Samarati Dan Shoemaker


Duke University Dipartimento di Informatica Center for Cyber Security and
Durham, North Carolina Università degli Studi di Intelligence Studies
Milano University of Detroit Mercy
and
Milan, Italy Detroit, Michigan
King Abdulaziz University
and
Jeddah, Saudi Arabia
Ravi Sandhu
International Cyber Security
Institute for Cyber Security
Edward M. Reingold Education Coalition
The University of Texas, San
Department of Computer Ann Arbor, Michigan
Antonio
Science
San Antonio, Texas
Illinois Institute of
Technology Tianqi Song
Chicago, Illinois K. Sayood Department of Computer
Occult Information Laboratory Science
Department of Electrical Duke University
Yves Robert
Engineering Durham, North Carolina
Laboratoire d'Informatique de
University of
Paris
Nebraska-Lincoln
Ecole Normale Supérieure de Lee Staff
Lincoln, Nebraska
Lyon Geometric Modeling and
Lyon, France Scientific Visualization
David A. Schmidt
and Center
Department of Computing and
King Abdullah University of
University of Tennessee Information Sciences
Science and Technology
Knoxville, Tennessee Kansas State University
Thuwal, Saudi Arabia
Manhattan, Kansas
Alyn Rockwood
Geometric Modeling and Lutz Schubert William Stallings
Scientific Visualization Institute for Organisation Independent Consultant
Center and Management of
King Abdullah University of Information Systems
Science and Technology University Ulm Earl E. Swartzlander, Jr.
Thuwal, Saudi Arabia Ulm, Germany Department of Electrical and
Computer Engineering
The University of Texas,
Kevin W. Rudd Stephen B. Seidman Austin
Department of Electrical and Texas State University Austin, Texas
Computer Engineering San Marcos, Texas
United States Naval Academy
Annapolis, Maryland
Shawn C. Sendlinger Bedir Tekinerdogan
Department of Chemistry Department of Computer
Mohsen Amini Salehi Engineering
North Carolina Central
Cloud Computing and Bilkent University
University
Distributed Systems Ankara, Turkey
Durham, North Carolina
Laboratory
Department of Computing and
Information Systems J.S. Shang Robert J. Thacker
The University of Melbourne Wright State University St. Mary’s University
Melbourne, Victoria, Australia Dayton, Ohio Halifax, Nova Scotia, Canada
Contributors xxxvii

Daniel Thalmann Elias P. Tsigaridas Stephanie Weirich


Institute for Media Innovation Laboratoire d’ Informatique de University of Pennsylvania
Nanyang Technological Paris Philadelphia, Pennsylvania
University Université Pierre and Marie
Singapore, Singapore Curie Mark Allen Weiss
and School of Computing and
and
Institut National de Information Sciences
École Polytechnique Fédérale Recherche en Informatique Florida International University
de Lausanne et en Automatique Miami, Florida
Lausanne, Switzerland Paris-Rocquencourt
Paris, France Stefan Wesner
Nadia Magnenat Thalmann Institute for Organisation and
Gokhan Tur
Institute for Media Innovation Management of Information
Conversational Systems
Nanyang Technological Systems
Research Center
University University Ulm
Microsoft Research
Singapore, Singapore Ulm, Germany
Mountain View, California
and Daniel Wigdor
Bora Uçar
MIRALab Laboratoire d'Informatique de University of Toronto
University of Geneva Paris Toronto, Ontario, Canada
Geneva, Switzerland Ecole Normale Supérieure de
Lyon Craig E. Wills
Lyon, France Worcester Polytechnic Institute
Alexander Thomasian Worcester, Massachusetts
Thomasian & Associates Eli Upfal
Pleasantville, New York Department of Computer Jacob O. Wobbrock
Science University of Washington
Steven M. Thompson Brown University Seattle, Washington
BioInfo 4U Providence, Rhode Island
Valdosta, Georgia Frédéric Vivien Carol Woody
Laboratoire d'Informatique de Software Engineering Institute
Paris Carnegie Mellon University
Ioannis G. Tollis
Ecole Normale Supérieure de Pittsburgh, Pennsylvania
Department of Computer
Science Lyon
Lyon, France Tao Yang
University of Crete and
University of California,
ICS-FORTH
Andy Wang Santa Barbara
Crete, Greece
Southern Illinois University Santa Barbara, California
Carbondale
Laura Toma Carbondale, Illinois Guangzhi Zheng
Bowdoin College Southern Polytechnic State
Brunswick, Maine Ye-Yi Wang
University
Online Services Division
Marietta, Georgia
Microsoft
Neal E. Tonks Bellevue, Washington
Department of Chemistry and David Zubrow
Biochemistry Colin Ware Software Engineering Institute
College of Charleston University of New Hampshire Carnegie Mellon University
Charleston, South Carolina Durham, New Hampshire Pittsburgh, Pennsylvania
I
Overview of
Computer
Science
1 Structure and Organization of Computing Peter J. Denning........................................ 1-1
Computing Paradigm • Two Views of Computing • View 1: Technologies of
Computing • View 2: Great Principles of Computing • Relation between the
Views • What Are Information Processes? • Where Computing Stands • References
2 Computational Thinking Valerie Barr............................................................................ 2-1
Introduction • Definitions of Computational Thinking • College
and University • K-12 • Changes to Computer
Science • Summary • Acknowledgments • References

I-1
1
Structure and
Organization of
Computing*
1.1 Computing Paradigm....................................................................... 1-2
1.2 Two Views of Computing................................................................. 1-5
1.3 View 1: Technologies of Computing............................................... 1-5
First Milestone: Curriculum 68 • Second Milestone: Computing
as a Discipline • Third Milestone: Information Technology
Profession • Fourth Milestone: Computing Curriculum
2001 • Fifth Milestone: Computing Curriculum 2013
1.4 View 2: Great Principles of Computing......................................... 1-9
1.5 Relation between the Views............................................................1-10
Peter J. Denning 1.6 What Are Information Processes?................................................ 1-12
Naval Postgraduate 1.7 Where Computing Stands.............................................................. 1-13
School in Monterey References..................................................................................................... 1-13

Computing is integral to science—not just as a tool for analyzing data but also as an agent of thought
and discovery.
It has not always been this way. Computing is a relatively young discipline. It started as an academic
field of study in the 1930s with a cluster of remarkable papers by Kurt Gödel, Alonzo Church, Emil Post,
and Alan Turing. The papers laid the mathematical foundations that would answer the question, “what
is computation?” and discussed schemes for its implementation. These men saw the importance of auto-
matic computation and sought its precise mathematical foundation. The various schemes they each pro-
posed for implementing computation were quickly found to be equivalent, as a computation in any one
could be realized in any other. It is all the more remarkable that their models all led to the same conclu-
sion that certain functions of practical interest—such as whether a computational algorithm (a method
of evaluating a function) will ever come to completion instead of being stuck in an infinite loop—cannot
be answered computationally.
In the time that these men wrote, the terms “computation” and “computers” were already in com-
mon use but with different connotations from today. Computation was taken to be the mechanical steps
followed to evaluate mathematical functions. Computers were people who did computations. In recog-
nition of the social changes they were ushering in, the designers of the first digital computer projects

* An earlier version of this chapter, without the section on technology view of the field, was published in American
Scientist 98 (September–October 2010), pp. 198–202. It was reprinted in Best Writings on Mathematics 2011 (M. Pitici,
ed.), Princeton University Press (2011). Copyright is held by the author.

1-1
1-2 Overview of Computer Science

all named their systems with acronyms ending in “-AC,” meaning automatic computer or something
similar—resulting in names such as ENIAC, UNIVAC, and EDSAC.
At the start of World War II, the militaries of the United States and the United Kingdom became
interested in applying computation to the calculation of ballistic and navigation tables and the cracking
of ciphers. They commissioned projects to design and build electronic digital computers. Only one of the
projects completed before the war was over. That was the top-secret project at Bletchley Park in England,
which cracked the German Enigma cipher using methods designed by Alan Turing.
Many people involved in those projects went on to start computer companies in the early 1950s.
The universities began offering programs of study in the new field in the late 1950s. The field and the
industry have grown steadily into a modern behemoth whose Internet data centers are said to consume
almost 3% of the world’s electricity.
During its youth, computing was an enigma to the established fields of science and engineering.
At first, it looked like only the technology applications of math, electrical engineering, or science,
depending on the observer. However, over the years, computing seemed to provide an unending
stream of new insights, and it defied many early predictions by resisting absorption back into the
fields of its roots. By 1980, computing had mastered algorithms, data structures, numerical methods,
programming languages, operating systems, networks, databases, graphics, artificial intelligence, and
software engineering. Its great technology achievements—the chip, the personal computer, and the
Internet—brought it into many lives. These advances stimulated more new subfields, including net-
work science, web science, mobile computing, enterprise computing, cooperative work, cyberspace
protection, user-interface design, and information visualization. The resulting commercial appli-
cations have spawned new research challenges in social networks, endlessly evolving computation,
music, video, digital photography, vision, massive multiplayer online games, user-generated content,
and much more.
The name of the field changed several times to keep up with the flux. In the 1940s, it was called
automatic computation, and in the 1950s, information processing. In the 1960s, as it moved into aca-
demia, it acquired the name computer science in the United States and informatics in Europe. By the
1980s, the computing field comprised a complex of related fields including computer science, infor-
matics, computational science, computer engineering, software engineering, information systems,
and information technology. By 1990, the term computing became the standard for referring to this
core group.

1.1 Computing Paradigm


Traditional scientists frequently questioned the name computer science. They could easily see an engi-
neering paradigm (design and implementation of systems) and a mathematics paradigm (proofs of
theorems) but they could not see much of a science paradigm (experimental verification of hypotheses).
Moreover, they understood science as a way of dealing with the natural world, and computers looked
suspiciously artificial.
The word “paradigm” for our purposes means a belief system and its associated practices, defining
how a field sees the world and approaches the solutions of problems. This is the sense that Thomas Kuhn
used in his famous book, The Structure of Scientific Revolutions (1962). Paradigms can contain subpara-
digms: thus, engineering divides into electrical, mechanical, chemical, civil, etc., and science divides
into physical, life, and social sciences, which further divide into separate fields of science. Table 1.1
outlines the three paradigms that combined to make the early computing field.
The founders of the field came from all three paradigms. Some thought computing was a branch of
applied mathematics, some a branch of electrical engineering, and some a branch of computational-
oriented science. During its first four decades, the field focused primarily on engineering: The chal-
lenges of building reliable computers, networks, and complex software were daunting and occupied
almost everyone’s attention. By the 1980s, these challenges largely had been met and computing was
Structure and Organization of Computing 1-3

TABLE 1.1 Subparadigms Embedded in Computing


Math Science Engineering
1. Initiation Characterize objects Observe a possible Create statements about
of study (definition). recurrence or pattern of desired system actions
phenomena and responses
(hypothesis). (requirements).
2. Conceptualization Hypothesize possible Construct a model that Create formal statements
relationships among explains the of system functions and
objects (theorem). observation and enables interactions
predictions (model). (specifications).
3. Realization Deduce which Perform experiments Design and implement
relationships are and collect data prototypes (design).
true (proof). (validate).
4. Evaluation Interpret results. Interpret results. Test the prototypes.
5. Action Act on results (apply). Act on results (predict). Act on results (build).

spreading rapidly into all fields, with the help of networks, supercomputers, and personal computers.
During the 1980s, computers had become powerful enough that science visionaries could see how to
use them to tackle the hardest, “grand challenge” problems in science and engineering. The resulting
“computational science” movement involved scientists from all countries and culminated in the US
Congress’s adopting the High Performance Computing and Communications (HPCC) act of 1991 to
support research on a host of large computational problems.
Today, there is agreement that computing exemplifies science and engineering and that neither sci-
ence nor engineering characterizes computing. Then what does? What is computing’s paradigm?
The leaders of the field struggled with the paradigm question ever since the beginning. Along the
way, there were three waves of attempts to unify views. Newell et al. (1967) led the first one. They argued
that computing was unique among all the sciences in its study of information processes. Simon (1996),
a Nobel laureate in Economics, went so far as to call computing a science of the artificial. Amarel (1971)
endorsed this basic idea and added an emphasis on interactions with other fields. A catchphrase of this
wave was that “computing is the study of phenomena surrounding computers.”
The second wave focused on programming, the art of designing algorithms that produced information
processes. In the early 1970s, computing pioneers Edsger Dijkstra and Donald Knuth took strong stands
favoring algorithm analysis as the unifying theme. A catchphrase of this wave was “computer science
equals programming.” In recent times, this view has foundered because the field has expanded well beyond
programming, whereas public understanding of a programmer has narrowed to just those who write code.
The third wave came as a result of the NSF-funded Computer Science and Engineering Research
Study (COSERS), led by Bruce Arden in the late 1970s. Its catchphrase was “computing is the automation
of information processes.” Although its final report successfully exposed the science of computing and
explained many esoteric aspects to the layperson, its central view did not catch on.
An important aspect of all three definitions was the positioning of the computer as the object of atten-
tion. The computational science movement of the 1980s began to step away from that notion, adopting
the view that computing is not only a tool for science but also a new method of thought and discovery in
science. The process of dissociating from the computer as the focal center came to completion in the late
1990s when leaders of the field of biology—epitomized by Nobel laureate David Baltimore (2001) and
echoing cognitive scientist Douglas Hofstadter (1985)—said that biology had become an information
science and DNA translation is a natural information process. Many computer scientists have joined
biologists in research to understand the nature of DNA information processes and to discover what
algorithms might govern them.
Take a moment to savor this distinction that biology makes. First, some information processes are
natural. Second, we do not know whether all natural information processes are produced by algorithms.
Other documents randomly have
different content
The Project Gutenberg eBook of Mysteries of
the missing
This ebook is for the use of anyone anywhere in the United
States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it away
or re-use it under the terms of the Project Gutenberg License
included with this ebook or online at www.gutenberg.org. If you
are not located in the United States, you will have to check the
laws of the country where you are located before using this
eBook.

Title: Mysteries of the missing

Author: Edward H. Smith

Release date: May 26, 2024 [eBook #73706]

Language: English

Original publication: New York: The Dial Press, 1927

Credits: Demian Katz and the Online Distributed Proofreading


Team at https://www.pgdp.net (Images courtesy of the
Digital Library@Villanova University.)

*** START OF THE PROJECT GUTENBERG EBOOK MYSTERIES OF


THE MISSING ***
MYSTERIES OF THE MISSING
~~ SCENE OF THE ABDUCTION OF CHARLIE ROSS ~~
The Ross house, Washington Lane, Germantown, Pa.
From a sketch by W. P. Snyder
MYSTERIES OF THE
MISSING

By EDWARD H. SMITH

Author of “Famous Poison Mysteries,” etc.

LINCOLN MAC VEAGH


THE DIAL PRESS
NEW YORK · MCMXXVII
Copyright, 1924, by
Street and Smith Corporation

Copyright, 1927, by
The Dial Press, Inc.

MANUFACTURED IN THE UNITED STATES OF AMERICA


BY THE VAIL-BALLOU PRESS, INC., BINGHAMTON, N. Y.
To

JOSEPH A. FAUROT

A GREAT FINDER OF WANTED MEN


CONTENTS
CHAPTER PAGE
A Note on Disappearing xi
I. The Charlie Ross Enigma 1
II. “Severed from the Race” 23
III. The Vanished Archduke 40
IV. The Stolen Conway Boy 65
V. The Lost Heir of Tichborne 82
VI. The Kidnappers of Central Park 101
VII. Dorothy Arnold 120
VIII. Eddie Cudahy and Pat Crowe 133
IX. The Whitla Kidnapping 153
X. The Mystery at Highbridge 171
XI. A Nun in Vivisepulture 187
XII. The Return of Jimmie Glass 203
XIII. The Fates and Joe Varotta 219
XIV. The Lost Millionaire 237
XV. The Ambrose Bierce Irony 257
XVI. The Adventure of the Century 273
XVII. Spectral Ships 292
Bibliography 313
LIST OF ILLUSTRATIONS
Scene of the Abduction of Charlie Ross Frontispiece
TO FACE PAGE
Charlie Ross 10
Theodosia Burr 32
Millie Stübel 44
Archduke Johann Salvator 56
Arthur Orton 94
Marion Clarke 110
Dorothy Arnold 126
Pat Crowe 146
Jimmie Glass 204
Joe Varotta 220
Ambrose J. Small 240
Ambrose Bierce 260
Doctor Andrée 280
U. S. S. Cyclops 304
And lo, between the sundawn and the sun,
His day’s work and his night’s work are undone;
And lo, between the nightfall and the light,
He is not, and none knoweth of such an one.

—Laus Veneris.
A NOTE ON DISAPPEARING
“... but whosoever of them ate the lotus’ honeyed fruit
wished to bring tidings back no more and never to leave
the place; there with the lotus eaters they desired to stay,
to feed on lotus and forget the homeward way.”
The Odyssey, Book IX.
The Lotophagi are gone from the Libyan strand and the Sirens from
their Campanian isle, but still the sons of men go forth to
strangeness and forgetfulness. What fruit or song it is that calls
them out and binds them in absence, we must try to read from their
history, their psyche and the chemistry of their wandering souls.
Some urgent whip of that divine vice, our curiosity, drives us to the
exploration and will not relent until we discover whether they have
been devoured by the Polyphemus of crime, bestialized by some
profane Circe or simply made drunk with the Lethe of change and
remoteness.
The unreturning adventurer—the man whose destiny is hid in doubt
—has tormented the imagination in every century. In life the lost
comrade wakes a more poignant curiosity than the returning
Odysseus. What of the true Smerdis and the false? Was it the great
Aeneas the Etruscans slew, and where does Merlin lie? Did Attila die
of apoplexy in the arms of Hilda or shall we believe the elder Eddas,
the Nibelungen and Volsunga sagas or the Teutonic legends of later
times? Was it the genuine Dmitri who was murdered in the Kremlin,
and what of the two other pseudo-Dmitris? What became of Dandhu
Panth after he fled into Nepal in 1859; did he perish soon or is there
truth in the tale of the finger burial of Nana Sahib? And was it
Quantrill who died at Louisville of his wounds after Captain Terrill’s
siege of the barn at Bloomfield?
These enigmas are more lasting and irritating than any other minor
facet of history, and the patient searching of scholars seems but to
add to the popular confusion and to the charm of our doubts. Even
where research seems to arrive at positive results, the general will
cling to their puzzlement, for a romantic mystery is always sweeter
than a sordid fact.
Even in the modern world, so closely organized, so completely
explored and so prodigiously policed, those enigmas continue to pile
up. In our day it is an axiom that nothing is harder to lose sight of
than a ship at sea or a man on land. This sounds, at first blush, like
a paradox. It ought, surely, to be easy to scrape the name from a
vessel, change her gear and peculiarities a little, paint a fresh word
upon her side and so conceal her. Simpler still, why can’t any man,
not too conspicuous or individual, step out of the crowd, alter the
cut of his hair and clothes, assume another name and immediately
be draped in a fresh ego? Does it not take a huge annual
expenditure for ship registry and all sorts of marine policing on the
one side, and an even greater sum for the land police, on the other,
to prevent such things? Truly enough, and it is the police power of
the earth, backed by certain plain or obscure motivations in
mankind, that makes it next to impossible for a ship or a man to
drop out of sight, as the phrase goes.
Leaving aside the ships, which are a small part of our argument, we
may note that, for all the difficulty, thousands of human beings try to
vanish every year. Plainly there are many circumstances, many crises
in the lives of men, women and children, that make a complete
detachment and forgottenness desirable, nay, imperative. Yet, of the
twenty-five thousand persons reported missing to the police of the
City of New York every year, to take an instance, only a few remain
permanently undiscovered. Most are mere stayouts or young
runaways and are returned to their inquiring relatives within a few
hours or days. Others are deserting spouses—husbands who have
wearied or wives who have found new loves. These sometimes lead
long chases before they are reported and identified, at which time
the police have no more to do with the matter unless there is action
from the domestic courts. A number are suicides, whose bodies soon
or late rise from the city-engirdling waters and are, almost without
fail, identified by the marvelously efficient police detectives in charge
of the morgues. Some are pretended amnesics and a few are true
ones. But in the end the police of the cities clear up nearly all these
cases. For instance, in the year 1924, the New York police
department had on its books only one male and one female
uncleared case originating in the year of 1918, or six years earlier. At
the same time there were four male and six female cases dating
from 1919, three male and one female cases that had originated in
1920, no male and three female cases that originated in 1921, three
male and two female cases of the date of 1922, but in 1924 there
were still pending, as the police say, twenty-eight male and sixty-
three female cases of the year preceding, 1923.
The point here is that only one man and one woman could stay hid
from the searching eyes of the law as long as six years. Evidently
the business of vanishing presents some formidable difficulties.
However, it is not even these solitary absentees that engage our
interest most sharply, for usually we know why they went and have
some indication that they are alive and merely skulking. There is
another and far rarer genus of the family of the missing, however,
that does strike hard upon that explosive chemical of human
curiosity. Here we have those few and detached inexplicable affairs
that neither astuteness nor diligence, time nor patience, frenzy nor
faith can penetrate—the true romances, the genuine mysteries of
vanishment. A man goes forth to his habitual labor and between
hours he is gone from all that knew him, all that was familiar. There
is a gap in the environment and many lives are affected, nearly or
remotely. No one knows the why or where or how of his going and
all the power of men and materials is hopelessly expended. Years
pass and these tales of puzzlement become legends. They are then
things to brood about before the fire, when the moving mind is
touched by the inner mysteriousness of life.
Again, there are those strange instances of the theft of human
beings by human beings—kidnappings, in the usual term. Nothing
except a natural cataclysm is so excitant of mass terror as the first
suggestion that there are child-stealers abroad. What fevers and
rages of the public temper may result from such crimes will be seen
from some of what follows. The most celebrated instance is, of
course, the affair of Charlie Ross of Philadelphia, which carries us
back more than half a century. We have here the classic American
kidnapping case, already a tradition, rich in all the elements that
make the perfect abduction tale.
This terror of the thief of children is, to be sure, as old as the races.
From the Phoenicians who stole babes to feed to their bloody
divinities, the Minoans who raped the youth of Greece for their bull-
fights, and the priests of many lands who demanded maidens to
satisfy the wrath of their gods and the lust of their flesh, down to
the European Gypsies, who sometimes steal, or are said to steal,
children for bridal gifts, we have this dread vein running through the
body of our history. We need, accordingly, no going back into our
phylogeny or biology, to understand the frenzy of the mother when
the shadow of the kidnapper passes over her cote. The women of
Normandy are said still to whisper with trembling the name of Gilles
de Rais (or Retz), that bold marshal of France and comrade in arms
of Jeanne d’Arc, who seems to have been a stealer and killer of
children, instead of the original of Perrault’s Bluebeard, as many
believe. What terror other kidnappers have sent into the hearts of
parents will be seen from the text.
This volume is not intended as a handbook of mysteries, for such
works exist in numbers. The author has limited himself to problems
of disappearance and cases of kidnapping, thereby excluding many
twice-told wonders—the wandering Ahasuerus, the Flying
Dutchman, Prince Charles Edward, the Dauphin, Gosselin’s Femme
sans nom, the changeling of Louis Philippe and the Crown Prince
Rudolf and the affair at Mayerling.
Neither have I attempted any technical exploration of the conduct
and motives of vanishers and kidnappers. It must be sufficiently
clear that a man unpursued who flees and hides is out of tune with
his environment, ill adjusted, nervously unwell. Nor need we accent
again the fact that all criminals, kidnappers included, are creatures
of disease or defect.
A general bibliography will be found at the end of the book. The
information to be had from these volumes has been liberally
supported and amplified from the files of contemporary newspapers
in the countries and cities where these dramas of doubt were
played. The records of legal trials have been consulted in instances
where trials took place and I have talked with the accessible officials
having knowledge of the cases or persons here treated.
E. H. S.
New York, August, 1927.
MYSTERIES OF THE MISSING
I
THE CHARLIE ROSS ENIGMA
Late on the afternoon of the twenty-seventh of June, 1874, two men
in a shabby-covered buggy stopped their horse under the venerable
elms of Washington Lane in Germantown, that sleepy suburb of
Philadelphia, with its grave-faced revolutionary houses and its air of
lavendered maturity. All about these intruders was historic ground.
Near at hand was the Chew House, where Lord Howe repulsed
Washington and his tattered command in their famous encounter.
Yonder stood the old Morris Mansion, where the British commander
stood cursing the fog, while his troops retreated from the surprise
attack. Here the impetuous Agnew fell before a backwoods rifleman,
and there Mad Anthony Wayne was forced to decamp by the fire of
his confused left. Not far away the first American Bible had been
printed, and that ruinous house on the ridge had once been the
American Capitol. The whole region was a hive of memories.
Strangely enough, the men in the buggy gave no sign of interest in
all these things. Instead, they devoted their attention to the two
young sons of a grocer who happened to be playing among the
bushes on their father’s property. The children were gradually
attracted to confidence by the strangers, who offered them sweets
and asked them who they were, where their parents were staying,
how old they might be, and how they might like to go riding.
The older boy, just past his sixth birth anniversary, tried to respond
manfully, as his parents had taught him. He said that he was Walter
Ross, and that his companion was his brother, Charlie, aged four. His
mother, he related, had gone to Atlantic City with her older
daughters, and his father was busy at the store in the business
section of the settlement. Yes, that big, white house on the knoll
behind them was where they lived. All this and a good deal more the
little boy prattled off to his inquisitors, but when it came to getting
into their buggy he demurred. The men got pieces of candy from
their pockets, filled the hands of both children, and drove away.
When the father of the boys came home a little later, he found his
sons busy with their candy, and he was told where they had got it.
He smiled and felt that the two men in the buggy must be very fond
of children. Not the least suspicion crossed his mind. Yet this
harmless incident of that forgotten summer afternoon was the
prelude to the most famous of American abduction cases and the
introduction to one of the abiding mysteries of disappearance. What
followed with fatal swiftness came soon to be a matter of almost
worldwide notoriousness—a case of kidnapping that stands firm in
popular memory after the confusions of fifty-odd years.
On the afternoon of July 1, the strangers came again. This time they
had no difficulty in getting the children into their wagon.[1] Saying
that they were going to buy fire crackers for the approaching Fourth
of July, they carried the little boys to the corner of Palmer and
Richmond Streets, Philadelphia, where Walter Ross was given a
silver quarter and told to go into a shop and buy what he wanted. At
the end of five or ten minutes the boy emerged to find his brother,
his benefactors and their buggy gone.
[1] Walter Ross, then 7 years old, testified at the Westervelt trial,
the following year, that he had seen the men twice before, but
this seems unlikely.
Little Walter Ross, abandoned eight miles from his home in the toils
of a strange city, stood on the curb and gave childish vent to his
feelings. The sight of the boy with his hands full of fireworks and his
eyes full of tears, soon attracted passers-by. A man named Peacock
finally took charge of the youngster and got from him the name and
address of his father. At about eight o’clock that evening he arrived
at the Ross dwelling and delivered the child, to find that the younger
boy had not been brought home, and that the father was out visiting
the police stations in quest of his sons.
In spite of the obvious facts, the idea of kidnapping was not
immediately conceived, and it even got a hostile reception when the
circumstances forced its entertainment. The father of the missing
Charlie was Christian K. Ross, a Philadelphia retail grocer who was
popularly supposed to be wealthy, and was in fact the owner of a
prosperous business at Third and Market streets, and master of a
competence. His flourishing trade, the big house in which he lived
with his wife and seven children, and the fine grounds about his
home naturally caused many to believe that he was a man of large
means. In view of these facts alone the theory of abduction should
have been considered at once. Again, Walter Ross recited the details
of his adventure with the men in a faithful and detailed way, telling
enough about the talk and manner of the men to indicate criminal
intent. Moreover, Mr. Ross was aware of the previous visit of the
strangers. Finally, the manœuver of deserting the older boy and
disappearing with his brother should have been sufficiently
suggestive for the most lethargic policeman. Nevertheless, the
Philadelphia officials took the skeptical position. Their early activities
expressed themselves in the following advertisement, which I take
from the Philadelphia Ledger of July 3:
“Lost, on July 1st, a small boy, about four years of age,
light complexion, and light curly hair. A suitable reward
will be paid on his return to E. L. Joyce, Central Station,
corner of Fifth and Chestnut streets.”
The advertisement was worded in this fashion to conceal the fact of
the child’s vanishment from his mother, who was not called from her
summer resort until some days later.
The police were, however, not long allowed to rest on their
comfortable assumption that the boy had been lost. On the fifth, Mr.
Ross received a letter which had been dated and posted on the day
before in Philadelphia. It stated that Charlie Ross was in the custody
of the writer, that he was well and safe, that it was useless to look
for him through the police, and that the father would hear more in a
few days. The note was scrawled by some one who was trying to
conceal his natural handwriting and any literate attainments he may
have possessed. Punctuation and capitals were almost absent, and
the commonest words were so crazily misspelled as to betray
purposiveness. The unfortunate father was addressed as “Mr. Ros,” a
formal appellation which was later contracted to “Ros.” This missive
and some of those that followed were signed “John.”
Even this communication did not mean much to the police, though
they had not, at that early stage of the mystery, the troublesome
flood of crank letters to plead as an excuse for their disbelief. As a
matter of fact, this first letter came before there had been anything
but the briefest and most conservative announcements in the
newspapers, and it should have been apparent to any one that there
was nothing fraudulent about it. Yet the police officials dawdled. A
second message from the mysterious John wakened them at last to
action.
On the morning of July 7, Mr. Ross received a longer communication,
unquestionably from the writer of the first, in which he was told that
his appeal to the detectives would be vain. He must meet the terms
of the ransom, twenty thousand dollars, or he would be the
murderer of his own child. The writer declared that no power in the
universe would discover the boy, or restore him to his father, without
payment of the money, and he added that if the father sent
detectives too near the hiding place of the boy he would thereby be
sealing the doom of his son. The letter closed with most terrifying
threats. The kidnappers were frankly out to get money, and they
would have it, either from Ross or from others. If he failed to yield,
his child would be slain as an example to others, so that they would
act more wisely when their children were taken. Ross would see his
child either alive or dead. If he paid, the boy would be brought back
alive; if not, his father would behold his corpse. Ross’ willingness to
come to terms must be signified by the insertion of these words into
the Ledger: “Ros, we be willing to negotiate.”
Such an epistle blew away all doubts, and the Charlie Ross terror
burst upon Philadelphia and surrounding communities the following
morning in full virulence. The police surrounded the city, guarded
every out-going road, searched the trains and boats, went through
all the craft lying in the rivers, spread the dragnet for all the known
criminals in town and immediately began a house-to-house search,
an almost unprecedented proceeding in a republic. The newspapers
grew more inflammatory with every fresh edition. At once the mad
pack of anonymous letter writers took up the cry, writing to the
police and to the unfortunate parents, who were forced to read with
an anxious eye whatever came to their door, a most insulting and
disheartening array of fulminations which caused the collapse of the
already overburdened mother.
In the fever which attacked the city any child was likely to be seized
and dragged, with its nurse or parent, to the nearest police station,
there to answer the suspicion of being Charlie Ross. Mothers with
golden-haired boys of the approximate age of Charlie resorted to
Christian Ross in an unending stream, demanding that he give them
written attestation of the fact that their children were not his, and
the poor beladen man actually wrote hundreds of such testimonials.
The madness of the public went to the absurdest lengths. Children
twice the age and size of the kidnapped boy were dragged before
the officials by unbalanced busybodies. Little boys with black hair
were apprehended by the score at the demand of citizens who
pleaded that they might be the missing boy, with his blond curls
dyed. Little girls were brought before the scornful police, and some
of the self-appointed seekers for the missing boy had to be driven
from the station houses with threats and blows.
Following the command of the child snatchers with literal fidelity, Mr.
Ross had published in the Ledger the words I have quoted. The
result was a third epistle from the robbers. It recognized his reply,
but made no definite proposition and gave no further orders, save
the command that he reply in the Ledger, stating whether or not he
was ready to pay the twenty thousand dollars. On the other hand,
the letter continued the ferocious threats of the earlier
communication, laughed at the police efforts as “children’s play,” and
asked whether “Ros” cared more for money or his son. In this letter
was the same labored effort to appear densely unlettered. One new
note was added. The writer asked whether Mr. Ross was “willen to
pay the four thousand pounds for the ransom of yu child.” Either the
writer was, or wanted to seem, a Briton, used to speaking of money
in British terms. This pretension was continued in some of the later
letters and led eventually to a search for the missing boy in England.
In his extremity and natural inexperience, Mr. Ross relied absolutely
on the police and put himself into their hands. He asked how he was
to reply to the third letter and was told that he should pretend to
acquiesce in the demand of the abductors, meantime actually
holding them off and relying on the detectives to find the boy. But
this subterfuge was quickly recognized by the abductors, with the
result that a warning letter came to Mr. Ross at the end of a few
days. He was told that he was pursuing the course of folly, that the
detectives could not help him, and that he must choose at once
between his money and the life of his child.
Ross was advised by some friends and neighbors to yield to the
demands of the extortioners, and several men of means offered him
loans or gifts of such funds as he was not able to raise himself.
Accordingly he signified his intention of arriving at a bargain, and the
mysterious John wrote him two or three well-veiled letters which
were intended to test his good faith. At this point the father and the
abductors seemed about to agree, when the officials again
intervened and caused the grocer to change his mood. He declared
in an advertisement that he would not compound a felony by paying
money for the return of his child. But this stand had hardly been
taken when Mrs. Ross’ pitiful anxiety caused another change of
front.
Unquestionably this vacillation had a harmful effect in more than one
direction. Its most serious consequence was that it gave the
abductors the impression that they were dealing with a man who did
not know his own mind, could not be relied upon to keep his
promises, and was obviously in the control of the officers.
Accordingly they moved with supercaution and began to impose
impossible conditions. By this time they had written the parents of
their prisoner at least a dozen letters, each containing more
terrifying threats than its antecedents. To look this correspondence
over at this late day is to see the nervousness of the abductors,
slowly mounting to the point of extreme danger to the child. But Mr.
Ross failed to see the peril, or was overpersuaded by official opinion.
At this crucial point in the negotiations the blunder of all blunders
was made. Philadelphia was tremulous with excitement. The police
of every American city were looking for the apparition of the boy or
his kidnappers. Officials in the chief British and Continental ports
were watching arriving ships for the fugitives, and millions of
newspaper readers were following the case in eager suspense.
Naturally the police and the other officials of Philadelphia felt that
the eyes of the world were upon them. They quite humanly decided
on a course calculated to bring them celebrity in case of success and
ample justification in case of failure. In other words, they made the
gesture typical of baffled officialdom, without respect to the safety of
the missing child or the real interests of its parents. At a meeting
presided over by the mayor, attended by leading citizens and advised
by the chiefs of the police, a reward of twenty thousand dollars, to
match the amount of ransom demanded, was subscribed and
advertised. The terms called for “evidence leading to the capture
and conviction of the abductors of Charlie Ross and the safe return
of the child,” conditions which may be cynically viewed as
incongruous. The following day the chief of police announced that
his men, should they participate in the successful coup, would claim
no part of the reward.
All this was intended, to be sure, as an inducement to informers, the
hope being, apparently, that some one inside the kidnapping
conspiracy would be bribed into revelations. But the actual result
was quite the opposite. A sudden hush fell upon the writer of the
letters. Also, there were no more communications in the Ledger. A
week passed without further word, and the parents of the boy were
thrown into utter hopelessness. Finally another letter came, this time
from New York, whereas all previous notes had been mailed in
Philadelphia. It was clear that the offer of a high reward had led the
abductors to leave the city, and their letter showed that they had
slipped away with their prisoner, in spite of the vaunted precautions.
The next note from the criminals warned Ross in terms of impressive
finality that he must at once abandon the detectives and come to
terms. He signified his intention of complying by inserting an
advertisement in the New York Herald, as directed by the abductors.
They wrote him that they would shortly inform him of the manner in
which the money was to be paid over. Finally the telling note came.
It commanded Mr. Ross to procure twenty thousand dollars in bank
notes of small denomination. These he was to place in a leather
traveling bag, which was to be painted white so that it might be
visible at night. With this bag of money, Ross was to board the
midnight train for New York on the night of July 30-31 and stand on
the rear platform, ready to toss the bag to the track. As soon as he
should see a bright light and a white flag being waved, he was to let
go the money, but the train was not to stop until the next station
was reached. In case these conditions were fully and faithfully met,
the child would be restored, safe and sound, within a few hours.
Ross, after consultation with the police, decided to temporize once
more. He got the white painted bag, as commanded, and took the
midnight train, prepared to change to a Hudson River train in New
York and continue his journey to Albany, as the abductors had
further instructed. But there was no money in the valise. Instead, it
contained a letter in which Ross said that he could not pay until he
saw the child before him. He insisted that the exchange be made
simultaneously and suggested that communication through the
newspapers was not satisfactory, since it was public and betrayed all
plans to the police. Some closer and secret way of communicating
must be devised, he wrote.
~~ CHARLIE ROSS ~~
So Mr. Ross set out with a police escort. He rode to New York on the
rear platform of one train and to Albany on another. But the agent of
the kidnappers did not appear, and Ross returned to Philadelphia
crestfallen, only to find that a false newspaper report had caused the
plan to miscarry. One of the papers had announced that Ross was
going West to follow up a clew. The kidnappers had seen this and
decided that their man was not going to make the trip to New York
and Albany. Consequently there was no one along the track to
receive the valise. Perhaps it was just as well. The abductors would
have laughed at the empty police dodge of suggesting a closer and
secret method of communication—for the purpose of betraying the
malefactors, of course.
From this point on, Ross and the abductors continued to argue,
through the New York Herald, the question of simultaneous
exchange of the boy and money. Ross naturally took the position
that he could not risk being imposed on by men who perhaps did not
have the child at all. The robbers, on their side, contended that they
could not see any safe way of making a synchronous exchange. So
the negotiations dragged along.
The New York police entered the case on August 2, when Chief
Walling sent to Philadelphia for the letters received by Mr. Ross from
the abductors. They were taken to New York by Captain Heins of the
Philadelphia police, and “Chief Walling’s informant identified the
writing as that of William Mosher, alias Johnson.”
In order to draw the line between fact and fable as clearly as
possible at this point, I quote from official police sources, namely,
“Celebrated Criminal Cases of America,” by Thomas S. Duke, captain
of police, San Francisco, published in 1910. Captain Duke says that
his facts have been “verified with the assistance of police officials
throughout the country.” He continues with respect to the Ross case:
“The informant then stated that in April, 1874—the year in question
—Mosher and Joseph Douglas, alias Clark, endeavored to persuade
him to participate in the kidnapping of one of the Vanderbilt
children, while the child was playing on the lawn surrounding the
family residence at Throgsneck, Long Island. (Evidently a confusion.)
The child was to be held until a ransom of fifty thousand dollars was
obtained, and the informant’s part of the plot would be to take the
child on a small launch and keep it in seclusion until the money was
received, but he declined to enter into the conspiracy.”
With all due respect to the police and to official versions, this report
smells strongly of fabrication after the fact, as we shall see. It is,
however, true that the New York police had some sort of information
early in August, and it may even be true that they had suspicions of
Mosher and were on the lookout for him. A history of subsequent
events will give the surest light on this disputed point.
The negotiations between Ross and the abductors continued in a
desultory fashion, without any attempt to deliver the child or get the
ransom, until toward the middle of November. At this time the
kidnappers arranged a meeting in the Fifth Avenue Hotel, New York.
Mr. Ross’ agents were to be there with the twenty thousand dollars
in a package. A messenger was to call for this some time during the
day. His approach and departure had been carefully planned. In case
he was watched or followed, he would not find the abductors on his
return, and the child would be killed. Only good faith could succeed.
Mr. Ross was to insert in the New York Herald a personal reading,
“Saul of Tarsus, Fifth Avenue Hotel—instant.” This would indicate his
decision to pay the money and signify the day he would be at the
hotel.
Accordingly the father of the missing boy had the advertisement
published, saying that he would be at the hotel with the money
“Wednesday, eighteenth, all day.” Ross’ brother and nephew kept the
tryst, but no messenger came for the money, and the last hope of
the family seemed broken.
The Rosses had long since given up the detectives and recognized
the futility of police promises. The father of the boy had, in his
distraction, even voiced some uncomplimentary sentiments
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookultra.com

You might also like