100% found this document useful (4 votes)
34 views

Instant download Discovering Computer Science Interdisciplinary Problems Principles and Python Programming 2nd Edition Jessen Havill pdf all chapter

Python

Uploaded by

yetnavishek
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (4 votes)
34 views

Instant download Discovering Computer Science Interdisciplinary Problems Principles and Python Programming 2nd Edition Jessen Havill pdf all chapter

Python

Uploaded by

yetnavishek
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

Download the Full Version of textbook for Fast Typing at textbookfull.

com

Discovering Computer Science Interdisciplinary


Problems Principles and Python Programming 2nd
Edition Jessen Havill

https://textbookfull.com/product/discovering-computer-
science-interdisciplinary-problems-principles-and-python-
programming-2nd-edition-jessen-havill-2/

OR CLICK BUTTON

DOWNLOAD NOW

Download More textbook Instantly Today - Get Yours Now at textbookfull.com


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

Discovering Computer Science Interdisciplinary Problems


Principles and Python Programming 2nd Edition Jessen
Havill
https://textbookfull.com/product/discovering-computer-science-
interdisciplinary-problems-principles-and-python-programming-2nd-
edition-jessen-havill-2/
textboxfull.com

Discovering Computer Science Interdisciplinary Problems


Principles and Python Programming 1st Edition Jessen
Havill
https://textbookfull.com/product/discovering-computer-science-
interdisciplinary-problems-principles-and-python-programming-1st-
edition-jessen-havill/
textboxfull.com

Discovering Computer Science Interdisciplinary Problems


Principles and Python Programming First Edition Jessen
Havill
https://textbookfull.com/product/discovering-computer-science-
interdisciplinary-problems-principles-and-python-programming-first-
edition-jessen-havill/
textboxfull.com

Python Programming An Introduction to Computer Science


John M. Zelle

https://textbookfull.com/product/python-programming-an-introduction-
to-computer-science-john-m-zelle/

textboxfull.com
Python Programming An Introduction to Computer Science 3rd
Edition John M. Zelle

https://textbookfull.com/product/python-programming-an-introduction-
to-computer-science-3rd-edition-john-m-zelle/

textboxfull.com

Data Science from Scratch First Principles with Python 2nd


Edition Joel Grus

https://textbookfull.com/product/data-science-from-scratch-first-
principles-with-python-2nd-edition-joel-grus/

textboxfull.com

Data Science from Scratch First Principles with Python 2nd


Edition Grus Joel

https://textbookfull.com/product/data-science-from-scratch-first-
principles-with-python-2nd-edition-grus-joel/

textboxfull.com

Practical Programming An Introduction to Computer Science


Using Python 3 6 3rd Edition Paul Gries

https://textbookfull.com/product/practical-programming-an-
introduction-to-computer-science-using-python-3-6-3rd-edition-paul-
gries/
textboxfull.com

Programming Interview Problems: Dynamic Programming (with


solutions in Python) 1st Edition Leonardo Rossi

https://textbookfull.com/product/programming-interview-problems-
dynamic-programming-with-solutions-in-python-1st-edition-leonardo-
rossi/
textboxfull.com
Discovering Computer Science
Chapman & Hall/CRC
Textbooks in Computing
Series Editors
John Impagliazzo
Andrew McGettrick

Pascal Hitzler, Markus Krötzsch, and Sebastian Rudolph, Foundations of Semantic Web Technologies
Henrik Bærbak Christensen, Flexible, Reliable Software: Using Patterns and Agile Development
John S. Conery, Explorations in Computing: An Introduction to Computer Science
Lisa C. Kaczmarczyk, Computers and Society: Computing for Good
Mark Johnson, A Concise Introduction to Programming in Python
Paul Anderson, Web 2.0 and Beyond: Principles and Technologies
Henry Walker, The Tao of Computing, Second Edition
Ted Herman, A Functional Start to Computing with Python
Mark Johnson, A Concise Introduction to Data Structures Using Java
David D. Riley and Kenny A. Hunt, Computational Thinking for the Modern Problem Solver
Bill Manaris and Andrew R. Brown, Making Music with Computers: Creative Programming in Python
John S. Conery, Explorations in Computing: An Introduction to Computer Science and Python Programming
Jessen Havill, Discovering Computer Science: Interdisciplinary Problems, Principles, and Python
Programming
Efrem G. Mallach, Information Systems: What Every Business Student Needs to Know
Iztok Fajfar, Start Programming Using HTML, CSS, and JavaScript
Mark C. Lewis and Lisa L. Lacher, Introduction to Programming and Problem-Solving Using Scala,
Second Edition
Aharon Yadin, Computer Systems Architecture
Mark C. Lewis and Lisa L. Lacher, Object-Orientation, Abstraction, and Data Structures Using Scala,
Second Edition
Henry M. Walker, Teaching Computing: A Practitioner’s Perspective
Efrem G. Mallach, Information Systems:What Every Business Student Needs to Know, Second Edition
Jessen Havill, Discovering Computer Science: Interdisciplinary Problems, Principles, and Python
Programming, Second Edition
For more information about this series please visit:
https://www.crcpress.com/Chapman--HallCRC-Textbooks-in-Computing/book-series/CANDHTEXCO
MSER?page=2&order=pubdate&size=12&view=list&status=published,forthcoming
Discovering Computer Science
Interdisciplinary Problems, Principles, and
Python Programming
Second Edition

Jessen Havill
Second edition published 2021
by CRC Press
2 Park Square, Milton Park, Abingdon, Oxon, OX14 4RN

and by CRC Press


6000 Broken Sound Parkway NW, Suite 300, Boca Raton, FL 33487-2742

© 2021 Jessen Havill

The right of Jessen Havill to be identified as author of this work has been asserted by him in accordance with sections
77 and 78 of the Copyright, Designs and Patents Act 1988.

All rights reserved. No part of this book may be reprinted or reproduced or utilised in any form or by any electronic,
mechanical, or other means, now known or hereafter invented, including photocopying and recording, or in any infor­
mation storage or retrieval system, without permission in writing from the publishers.

For permission to photocopy or use material electronically from this work, access www.copyright.com or contact the
Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. For works that are
not available on CCC please contact mpkbookspermissions@tandf.co.uk

Trademark notice: Product or corporate names may be trademarks or registered trademarks, and are used only for
identification and explanation without intent to infringe.

British Library Cataloguing-in-Publication Data


A catalogue record for this book is available from the British Library

Library of Congress Cataloging-in-Publication Data

Names: Havill, Jessen, author.


Title: Discovering computer science : interdisciplinary problems,
principles, and Python programming / Jessen Havill.
Description: Second edition. | Boca Raton : CRC Press, 2021. | Series:
Chapman & Hall/CRC press textbooks in computing | Includes
bibliographical references and index.
Identifiers: LCCN 2020030144 | ISBN 9780367472498 (paperback) | ISBN
9780367613358 (hardback) | ISBN 9781003037149 (ebook)
Subjects: LCSH: Computer science--Textbooks. | Python (Computer program
language)--Textbooks.
Classification: LCC QA76 .H3735 2021 | DDC 005.13/3--dc23
LC record available at https://lccn.loc.gov/2020030144

ISBN: 9780367613358 (hbk)


ISBN: 9780367472498 (pbk)
ISBN: 9781003037149 (ebk)

Typeset in Computer Modern font


by Cenveo Publisher Services
Contents

Preface xv

Acknowledgments xxiii

About the author xxv

Chapter 1 ∎ How to Solve It 1


1.1 UNDERSTAND THE PROBLEM 3
A first problem: computing reading level 4
Functional abstraction 5
1.2 DESIGN AN ALGORITHM 6
Take it from the top 7
Pseudocode 10
Implement from the bottom 14
1.3 WRITE A PROGRAM 23
Welcome to the circus 23
What’s in a name? 28
Interactive computing 31
Looking ahead 32
1.4 LOOK BACK 36
Testing 37
Algorithm efficiency 39
1.5 SUMMARY AND FURTHER DISCOVERY 45

Chapter 2 ∎ Visualizing Abstraction 49


2.1 DATA ABSTRACTION 51
Turtle graphics 53
2.2 DRAWING FLOWERS AND PLOTTING EARTHQUAKES 55
Iteration 57
Tangent 2.1 Defining colors 60

v
vi • Contents

Data visualization 62
2.3 FUNCTIONAL ABSTRACTION 66
Function parameters 69
2.4 PROGRAMMING IN STYLE 77
Program structure 78
Documentation 79
Tangent 2.2 Global variables 80
Self-documenting code 83
2.5 A RETURN TO FUNCTIONS 87
The math module 88
Writing functions with return values 89
Return vs. print 92
2.6 SCOPE AND NAMESPACES 97
Local namespaces 98
The global namespace 101
2.7 SUMMARY AND FURTHER DISCOVERY 105

Chapter 3 ∎ Inside a Computer 107


3.1 COMPUTERS ARE DUMB 108
Tangent 3.1 High performance computing 109
Machine language 111
Tangent 3.2 Byte code 112
3.2 EVERYTHING IS BITS 112
Bits are switches 112
Bits can represent anything 113
Tangent 3.3 Hexadecimal notation 114
Computing with bits 114
3.3 COMPUTER ARITHMETIC 118
Limited precision 118
Tangent 3.4 Floating point notation 120
Error propagation 120
Division 121
Complex numbers 122
*3.4 BINARY ARITHMETIC ***
More limited precision

*
Sections with *** in lieu of a page number are available on the book website.
Contents • vii

Negative integers
Designing an adder
Implementing an adder
3.5 THE UNIVERSAL MACHINE 124
3.6 SUMMARY AND FURTHER DISCOVERY 126

Chapter 4 ∎ Growth and Decay 129


4.1 ACCUMULATORS 130
Managing a fishing pond 130
Measuring network value 136
Organizing a concert 139
4.2 DATA VISUALIZATION 150
4.3 CONDITIONAL ITERATION 155
When will the fish disappear? 155
When will your nest egg double? 157
*4.4 CONTINUOUS MODELS ***
Difference equations
Radiocarbon dating
Tradeoffs between accuracy and time
Simulating an epidemic
*4.5 NUMERICAL ANALYSIS ***
The harmonic series
Approximating π
Approximating square roots
4.6 SUMMING UP 161
Tangent 4.1 Triangular numbers 163
4.7 FURTHER DISCOVERY 164
*4.8 PROJECTS ***
4.1 Parasitic relationships
4.2 Financial calculators
4.3 Market penetration
4.4 Wolves and moose

Chapter 5 ∎ Forks in the Road 165


5.1 RANDOM WALKS 166
Tangent 5.1 Interval notation 167
One small step 167
viii • Contents

Monte Carlo simulation 171


*5.2 PSEUDORANDOM NUMBER GENERATORS ***
Implementation
Testing randomness
*5.3 SIMULATING PROBABILITY DISTRIBUTIONS ***
The central limit theorem
5.4 BACK TO BOOLEANS 180
Predicate functions 182
Short circuit evaluation 183
DeMorgan’s laws 184
Thinking inside the box 187
Many happy returns 192
5.5 DEFENSIVE PROGRAMMING 199
Checking parameters 199
Assertions 202
Unit testing 204
Tangent 5.2 Unit testing frameworks 205
Testing floats 207
Catching exceptions 207
5.6 GUESS MY NUMBER 210
Ending the game nicely 212
Friendly hints 213
A proper win/lose message 214
5.7 SUMMARY AND FURTHER DISCOVERY 219
*5.8 PROJECTS ***
5.1 The magic of polling
5.2 Escape!

Chapter 6 ∎ Text, Documents, and DNA 221


6.1 FIRST STEPS 222
Normalization 223
Tangent 6.1 Natural language processing 224
Tokenization 228
Creating your own module 232
Testing your module 233
6.2 TEXT DOCUMENTS 238
Contents • ix

Reading from text files 239


Writing to text files 242
Reading from the web 243
6.3 ENCODING STRINGS 246
Computing checksums 246
Unicode 247
Tangent 6.2 Compressing text files 250
Indexing and slicing 251
6.4 A CONCORDANCE 256
Finding a word 257
A concordance entry 262
A complete concordance 263
6.5 WORD FREQUENCY TRENDS 266
Finding the frequency of a word 268
Getting the frequencies in slices 269
Plotting the frequencies 270
6.6 COMPARING TEXTS 272
Dot plots 274
*6.7 TIME COMPLEXITY ***
Best case vs. worst case
Asymptotic time complexity
*6.8 COMPUTATIONAL GENOMICS ***
A genomics primer
Basic DNA analysis
Transforming sequences
Comparing sequences
Reading sequence files
6.9 SUMMARY AND FURTHER DISCOVERY 281
*6.10 PROJECTS ***
6.1 Polarized politics
6.2 Finding genes

Chapter 7 ∎ Data Analysis 285


7.1 SUMMARY STATISTICS 286
Mean and variance 286
Minimum and maximum 288
x • Contents

7.2 WRANGLING DATA 293


Smoothing data 294
A more efficient algorithm 295
Modifying lists in place 297
List operators and methods 302
*List comprehensions 305
Tangent 7.1 NumPy arrays 306
7.3 TALLYING FREQUENCIES 310
Word frequencies 310
Dictionaries 311
Tangent 7.2 Hash tables 315
Finding the most frequent word 315
Bigram frequencies 317
Tangent 7.3 Sentiment analysis 318
7.4 READING TABULAR DATA 325
Earthquakes 326
*7.5 DESIGNING EFFICIENT ALGORITHMS ***
Removing duplicates
A first algorithm
A more elegant algorithm
A more efficient algorithm
*7.6 LINEAR REGRESSION ***
*7.7 DATA CLUSTERING ***
Defining similarity
A simple example
Implementing k-means clustering
Locating bicycle safety programs
7.8 SUMMARY AND FURTHER DISCOVERY 333
Tangent 7.4 Privacy in the age of big data 334
*7.9 PROJECTS ***
7.1 Climate change
7.2 Does education influence unemployment?
7.3 Maximizing profit
7.4 Admissions
7.5 Preparing for a 100-year flood
7.6 Voting methods
Contents • xi

7.7 Heuristics for traveling salespeople

Chapter 8 ∎ Flatland 335


8.1 TABULAR DATA 335
Reading a table of temperatures 336
Tangent 8.1 Pandas 339
8.2 THE GAME OF LIFE 342
Creating a grid 344
Initial configurations 345
Surveying the neighborhood 346
Performing one pass 347
Tangent 8.2 NumPy arrays in two dimensions 349
Updating the grid 349
8.3 DIGITAL IMAGES 353
Colors 353
Tangent 8.3 Additive vs. subtractive color models 354
Image filters 355
Tangent 8.4 Image storage and compression 356
Transforming images 358
8.4 SUMMARY AND FURTHER DISCOVERY 363
*8.5 PROJECTS ***
8.1 Modeling segregation
8.2 Modeling ferromagnetism
8.3 Growing dendrites
8.4 Simulating an epidemic

Chapter 9 ∎ Self-similarity and Recursion 365


9.1 FRACTALS 365
Trees 367
Snowflakes 369
9.2 RECURSION AND ITERATION 375
Solving a problem recursively 379
Palindromes 380
Guessing passwords 382
9.3 THE MYTHICAL TOWER OF HANOI 388
*Is the end of the world nigh? 390
9.4 RECURSIVE LINEAR SEARCH 392
xii • Contents

*Efficiency of recursive linear search 393


9.5 DIVIDE AND CONQUER 396
Buy low, sell high 397
Navigating a maze 400
*9.6 LINDENMAYER SYSTEMS ***
Formal grammars
L-systems
Implementing L-systems
9.7 SUMMARY AND FURTHER DISCOVERY 405
*9.8 PROJECTS ***
9.1 Lindenmayer’s beautiful plants
9.2 Gerrymandering
9.3 Percolation

Chapter 10 ∎ Organizing Data 407


10.1 BINARY SEARCH 408
Tangent 10.1 Databases 409
Efficiency of iterative binary search 412
A spelling checker 414
Recursive binary search 415
*Efficiency of recursive binary search 416
10.2 SELECTION SORT 418
Implementing selection sort 419
Efficiency of selection sort 422
Querying data 423
10.3 INSERTION SORT 427
Implementing insertion sort 428
Efficiency of insertion sort 430
10.4 EFFICIENT SORTING 433
Merge sort 433
Internal vs. external sorting 437
Efficiency of merge sort 437
*10.5 TRACTABLE AND INTRACTABLE ALGORITHMS ***
Hard problems
10.6 SUMMARY AND FURTHER DISCOVERY 441
*10.7 PROJECTS ***
Contents • xiii

10.1 Creating a searchable database


10.2 Binary search trees

Chapter 11 ∎ Networks 443


11.1 MODELING WITH GRAPHS 444
Making friends 446
11.2 SHORTEST PATHS 451
Breadth-first search 451
Finding the actual paths 455
11.3 IT’S A SMALL WORLD. . . 458
Small world networks 458
Clustering coefficients 459
Scale-free networks 461
11.4 RANDOM GRAPHS 464
11.5 SUMMARY AND FURTHER DISCOVERY 467
*11.6 PROJECTS ***
11.1 Diffusion of ideas and influence
11.2 Slowing an epidemic
11.3 The Oracle of Bacon

Chapter 12 ∎ Object-oriented Design 469


12.1 SIMULATING AN EPIDEMIC 470
Object design 471
Person class 472
Augmenting the Person class 477
World class 479
The simulation 481
12.2 OPERATORS AND POLYMORPHISM 486
Designing a Pair ADT 487
Pair class 488
Arithmetic methods 489
Special methods 491
Comparison operators 493
Indexing 494
*12.3 A FLOCKING SIMULATION ***
The World
Boids
xiv • Contents

*12.4 A STACK ADT ***


Stack class
Reversing a string
Converting numbers to other bases
*12.5 A DICTIONARY ADT ***
Hash tables
Implementing a hash table
Indexing
ADTs vs. data structures
12.6 SUMMARY AND FURTHER DISCOVERY 499
*12.7 PROJECTS ***
12.1 Tracking GPS coordinates
12.2 Economic mobility
12.3 Slime mold aggregation
12.4 Boids in space

Bibliography 501

Appendix A ∎ Python Library Reference ***

Appendix B ∎ Selected Exercise Solutions ***

Index 505
Preface

I nthree
my view, an introductory computer science course should strive to accomplish
things. First, it should demonstrate to students how computing has become
a powerful mode of inquiry, and a vehicle of discovery, in a wide variety of disciplines.
This orientation is also inviting to students of the natural and social sciences, and the
humanities, who increasingly benefit from an introduction to computational thinking,
beyond the limited “black box” recipes often found in manuals and “Computing
for X” books. Second, the course should engage students in computational problem
solving, and lead them to discover the power of abstraction, efficiency, and data
organization in the design of their solutions. Third, the course should teach students
how to implement their solutions as computer programs. In learning how to program,
students more deeply learn the core principles, and experience the thrill of seeing
their solutions come to life.
Unlike most introductory computer science textbooks, which are organized around
programming language constructs, I deliberately lead with interdisciplinary problems
and techniques. This orientation is more interesting to a more diverse audience, and
more accurately reflects the role of programming in problem solving and discovery.
A computational discovery does not, of course, originate in a programming language
feature in search of an application. Rather, it starts with a compelling problem which
is modeled and solved algorithmically, by leveraging abstraction and prior experience
with similar problems. Only then is the solution implemented as a program.
Like most introductory computer science textbooks, I introduce programming skills
in an incremental fashion, and include many opportunities for students to practice
them. The topics in this book are arranged to ease students into computational
thinking, and encourage them to incrementally build on prior knowledge. Each
chapter focuses on a general class of problems that is tackled by new algorithmic
techniques and programming language features. My hope is that students will leave
the course, not only with strong programming skills, but with a set of problem
solving strategies and simulation techniques that they can apply in their future work,
whether or not they take another computer science course.
I use Python to introduce computer programming for two reasons. First, Python’s
intuitive syntax allows students to focus on interesting problems and powerful
principles, without unnecessary distractions. Learning how to think algorithmically
is hard enough without also having to struggle with a non-intuitive syntax. Second,
the expressiveness of Python (in particular, low-overhead lists and dictionaries)
expands tremendously the range of accessible problems in the introductory course.

xv
xvi • Preface

Teaching with Python over the last fifteen years has been a revelation; introductory
computer science has become fun again.

Changes in the second edition


In this comprehensive, cover-to-cover update, some sections were entirely rewritten
while others saw only minor revisions. Here are the highlights:

Problem solving The new first chapter, How to Solve It, sets the stage by focusing on
Polya’s elegant four-step problem solving process, adapted to a computational frame­
work. I introduce informal pseudocode, functional decomposition, hand-execution
with informal trace tables, and testing, practices that are now carried on throughout
the book. The introduction to Python (formally Chapter 2) is integrated into this
framework. Chapter 7, Designing Programs, from the first edition has been elimi­
nated, with that material spread out more naturally among Chapters 1, 5, and 6 in
the second edition.
Chapter 2, Visualizing Abstraction (based on the previous Chapter 3), elaborates on
the themes in Chapter 1, and their implementations in Python, introducing turtle
graphics, functions, and loops. The new Chapter 3, Inside a Computer (based on
the previous Sections 1.4 and 2.5), takes students on a brief excursion into the simple
principles underlying how computers work.

Online materials To reduce the size of the printed book, we have moved some
sections and all of the projects online. These sections are marked in the table of
contents with ***. Online materials are still indexed in the main book for convenience.

Exercises I’ve added exercises to most sections, bringing the total to about 750.
Solutions to exercises marked with an asterisk are available online for both students
and self-learners.

Digital humanities The interdisciplinary problems in the first edition were focused
primarily in the natural and social sciences. In this edition, especially in Chapters 1,
6, and 7, we have added new material on text analysis techniques commonly used in
the “digital humanities.”

Object-oriented design Chapter 12 begins with a new section to introduce object-


oriented design in a more concrete way through the development of an agent-based
simulation of a viral epidemic. The following sections flesh out more details on how
to implement polymorphic operators and collection classes.
Preface • xvii

Book website
Online materials for this book are available at

https://www.discoveringCS.net.
Here you will find

• additional “optional” sections, marked with an asterisk in the main text,


• over thirty interdisciplinary programming projects,
• solutions to selected exercises,
• programs and data files referenced in the text, exercises, and projects, and
• pointers for further exploration and links to additional documentation.

To students
Active learning Learning how to solve computational problems and implement
them as computer programs requires daily practice. Like an athlete, you will get
out of shape and fall behind quickly if you skip it. There are no shortcuts. Your
instructor is there to help, but he or she cannot do the work for you.
With this in mind, it is important that you type in and try the examples throughout
the text, and then go beyond them. Be curious! There are numbered “Reflection”
questions throughout the book that ask you to stop and think about, or apply,
something that you just read. Often, the question is answered in the book immediately
thereafter, so that you can check your understanding, but peeking ahead will rob
you of an important opportunity.

Further discovery There are many opportunities to delve into topics more deeply.
“Tangent” boxes scattered throughout the text briefly introduce related, but more
technical or applied, topics. For the most part, these are not strictly required to
understand what comes next, but I encourage you to read them anyway. In the
“Summary and Further Discovery” section of each chapter, you can find both a
high-level summary of the chapter and additional pointers to explore chapter topics
in more depth.

Exercises and projects At the end of most sections are several programming exercises
that ask you to further apply concepts from that section. Often, the exercises assume
that you have already worked through all of the examples in that section. Solutions
to the starred exercises are available on the book website. There are also more
involved projects available on the book website that challenge you to solve a variety
of interdisciplinary problems.

No prerequisites The book assumes no prior knowledge of computer science. How­


ever, it does assume a modest comfort with high school algebra. In optional sections,
xviii • Preface

trigonometry is occasionally mentioned, as is the idea of convergence to a limit, but


these are not relevant to understanding the main topics in the book.

Have fun! Programming and problem solving should be a fun, creative activity. I
hope that this book sparks your curiosity and love of learning, and that you enjoy
the journey as much as I have enjoyed writing this book.

To instructors
This book is appropriate for a traditional CS1 course for majors, a CS0 course for
non-majors (at a slower pace and omitting more material), or a targeted introductory
computing course for students in the natural sciences, social sciences, or humanities.
The approach is gentle and holistic, introducing programming concepts in the context
of interdisciplinary problems. We start with problem-solving, featuring pseudocode
and hand-execution with trace tables, and carry these techniques forward, especially
in the first half of the book.

Problem focus Most chapters begin with an interesting problem, and new concepts
and programming techniques are introduced in the context of solving it. As new
techniques are introduced, students are frequently challenged to re-solve old problems
in different ways. They are also encouraged to reuse their previous functions as
components in later programs.

Reflection questions, exercises, and projects “Reflection” questions are embedded


in every section to encourage active reading. These may also be assigned as “reading
questions” before class. The end-of-section exercises are appropriate for regular home­
work, and some more complex ones may form the basis of longer-term assignments.
The book website also hosts a few dozen interdisciplinary projects that students may
work on independently or in pairs over a longer time frame. I believe that projects
like these are crucial for students to develop both problem solving skills and an
appreciation for the many fascinating applications of computer science.

Additional instructor resources All of the reflection questions and exercises are
available to instructors as Jupyter notebooks. Solutions to all exercises and projects
are also available. Please visit the publisher’s website to request access.

Python coverage This book is not intended to be a Python manual. Some features
of the language were intentionally omitted because they would have muddled the core
problem solving focus or are not commonly found in other languages that students
may see in future CS courses (e.g., simultaneous swap, chained comparisons, zip,
enumerate in for loops).

Topic coverage There is more in this book than can be covered in a single semester,
giving instructors the opportunity to tailor the content to their particular situation
Preface • xix

Chapter 2 Chapter 3 Chapter 4


Chapter 1
Visualizing Inside a Growth and
How to Solve It
Abstraction Computer Decay

Chapter 6
Chapter 7 Chapter 5
Text, Documents,
Data Analysis Forks in the Road
and DNA

Chapter 9
Chapter 8 Chapter 10
Self-similarity and
Flatland Organizing Data
Recursion

Chapter 12
Chapter 11
Object-oriented
Networks
Design

Figure 1 An overview of chapter dependencies.

and interests. As illustrated in Figure 1, Chapters 1–7 form the core of the book, and
should be covered sequentially. The remaining chapters can be covered, partially or
entirely, at your discretion, although I would expect that most instructors will cover
at least parts of Chapters 8–10, and 12 if the course covers object-oriented design.
Chapter 11 introduces social network graphs and small-world and scale-free networks
as additional powerful applications of dictionaries, and may come any time after
Chapter 7. Sections marked with an asterisk are optional, in the sense that they are
not assumed for future sections in that chapter. When exercises and projects depend
on optional sections, they are also marked with an asterisk, and the dependency is
stated at the beginning of the project.

Chapter outlines The following tables provide brief overviews of what is available
in each chapter. Each table’s three columns, reflecting the three parts of the book’s
subtitle, provide three lenses through which to view the chapter.

1 How to Solve It
Sample problems Principles Programming
● reading level ● problems, input/output ● int, float, str types
● counting syllables, words ● functional abstraction ● arithmetic
● sphere volume ● functional decomposition ● assignment

● digital music ● top-down design ● variable names

● search engines ● bottom-up implementation ● calling built-in functions

● GPS devices ● algorithms and programs ● using strings

● phone trees ● pseudocode ● string operators

● wind chill ● names as references ● print and input

● compounding interest ● trace tables


● Mad Libs ● constant- vs. linear-time
xx • Preface

2 Visualizing Abstraction

Sample problems Principles Programming


● visualizing earthquakes ● using abstract data types ● using classes and objects
● drawing flowers ● creating functional ● turtle module
● random walks abstractions ● for loops (range and lists)
● ideal gas ● functional decomposition ● using and writing functions
● groundwater flow ● bottom-up implementation ● return vs. print

● demand functions ● turtle graphics ● namespaces and scope


● reading level ● trace tables with loops ● docstrings and comments
● self-documenting code
● program structure

3 Inside a Computer

Principles Programming
● computer organization ● int and float types
● machine language ● arithmetic errors
● binary representations ● true vs. floor division
● computer arithmetic
● finite precision, error propagation
● Boolean logic, truth tables, logic gates

● Turing machines, finite state machines

4 Growth and Decay

Sample problems Principles Programming


● population models ● accumulators ● for loops, range
● network value ● list accumulators ● format strings
● demand and profit ● data visualization ● matplotlib.pyplot

● loans and investing ● conditional iteration ● appending to lists


● bacterial growth ● classes of growth ● while loops
● radiocarbon dating ● continuous models
● epidemics (SIR, SIS) ● accuracy vs. time
● diffusion models ● numerical approximation

5 Forks in the Road


Sample problems Principles Programming
● random walks ● random number generators ● random module
● Monte Carlo simulation ● simulating probabilities ● if/elif/else
● guessing games ● flag variables ● comparison operators
● polling and ● using distributions ● Boolean operators

sampling ● DeMorgan’s laws ● short circuit evaluation

● particle escape ● defensive programming ● predicate functions


● pre- and post-conditions ● assert, isinstance

● unit testing ● catching exceptions


● histograms
● while loops
Preface • xxi

6 Text, Documents, and DNA


Sample problems Principles Programming
● text analysis ● functional decomposition ● str class and methods
● word frequency trends ● unit testing ● iterating over strings, lists
● checksums ● ASCII, Unicode ● indexing and slicing

● concordances ● linear-time algorithms ● iterating over indices


● dot plots, plagiarism ● time complexity ● creating a module
● congressional votes ● linear search ● text files and the web
● genomics ● string accumulators ● break
● nested loops

7 Data Analysis

Sample problems Principles Programming


● word, bigram frequencies ● histograms ● list class
● smoothing data ● hash tables ● indexing and slicing
● 100-year floods ● tabular data files ● list operators and methods
● traveling salesman ● efficient algorithm design ● reading CSV files
● meteorite sites ● linear regression ● modifying lists in place
● zebra migration ● k-means clustering ● list parameters
● tumor diagnosis ● heuristics ● tuples
● supply and demand ● list comprehensions
● voting methods ● dictionaries

8 Flatland
Sample problems Principles Programming
● earthquake data ● 2-D data ● lists of lists
● Game of Life ● cellular automata ● nested loops
● image filters ● digital images ● 2-D data in a dictionary

● racial segregation ● color models


● ferromagnetism
● dendrites
● epidemics
● tumor growth

9 Self-similarity and Recursion

Sample problems Principles Programming


● fractals ● self-similarity ● writing recursive functions
● cracking passwords ● recursion ● divide and conquer
● Tower of Hanoi ● linear search ● backtracking
● maximizing profit ● recurrence relations
● navigating a maze ● divide and conquer

● Lindenmayer systems ● depth-first search


● gerrymandering ● grammars
● percolation
xxii • Preface

10 Organizing Data

Sample problems Principles Programming


● spell check ● binary search ● nested loops
● querying data sets ● quadratic-time sorting ● writing recursive functions
● parallel lists
● merge sort
● recurrence relations

● intractability, P=NP?

11 Networks
Sample problems Principles Programming
● social media, web graphs ● graphs ● dictionaries
● diffusion of ideas ● adjacency list, matrix
● epidemics ● breadth-first search

● Oracle of Bacon ● queues


● shortest paths
● depth-first search
● small-world networks
● scale-free networks

● uniform random graphs

12 Object-oriented Design

Sample problems Principles Programming


● epidemic simulation ● abstract data types ● object-oriented design
● data sets ● encapsulation ● writing classes
● genomic sequences ● polymorphism ● special methods

● rational numbers ● data structures ● overriding operators


● flocking behavior ● stacks ● modules
● slime mold aggregation ● hash tables
● agent-based simulation
● swarm intelligence

Software assumptions
To follow along in this book and complete the exercises, you will need to have
installed Python 3.6 or later on your computer, and have access to IDLE or another
programming environment. The book also assumes that you have installed the
matplotlib.pyplot and numpy modules. The easiest way to get this software is to
install the free open source Anaconda distribution from http://www.anaconda.com.

Errata
While I (and my students) have ferreted out many errors, readers will inevitably find
more. You can find an up-to-date list of errata on the book website. If you find an error
in the text or have another suggestion, please let me know at havill@denison.edu.
Acknowledgments

In addition to those who provided their support and expertise for the first edition,
I wish to thank Janet Davis (Whitman College), Jim Deverick (The College of
William and Mary), David Goodwin (Denison University), and Ashwin Lall (Denison
University) for their valuable feedback on drafts of the second edition.
I would also like to thank Dee Ghiloni, Mary Lucas-Miller, and Tony Silveira for
their steadfast support, Mike Brady and my Data Analytics colleagues for reminding
me how much fun it can be to learn new things, and the Book Group for reminding
me to not take life too seriously. A Bowen Fellowship awarded by Denison University
gave me the time needed to complete this project.
Finally, my family has once again provided me with seemingly infinite patience and
love during this intensive period of writing. I am an extraordinarily lucky husband
and father.

xxiii
About the author

Jessen Havill is a Professor of Computer Science at Denison University. He has


been teaching courses across the computer science curriculum for almost thirty years,
and was awarded the College’s highest teaching honor, the Charles A. Brickman
Teaching Excellence Award, in 2013. Although his primary expertise is in the
development and analysis of online algorithms, Dr. Havill has spent many years
collaborating with colleagues across the curriculum to develop interdisciplinary
academic opportunities for students. From 2016–2019, he became the founding
Director of Denison University’s interdisciplinary Data Analytics program. Dr. Havill
earned his bachelor’s degree from Bucknell University and his Ph.D. in computer
science from The College of William and Mary.

xxv
CHAPTER 1

How to Solve It

We need to do away with the myth that computer science is about computers. Computer
science is no more about computers than astronomy is about telescopes, biology is about
microscopes or chemistry is about beakers and test tubes. Science is not about tools, it is
about how we use them and what we find out when we do.

Michael R. Fellows and Ian Parberry


Computing Research News (1993)

It has often been said that a person does not really understand something until after teaching
it to someone else. Actually a person does not really understand something until after
teaching it to a computer, i.e., expressing it as an algorithm.

Donald E. Knuth
American Scientist (1973)

C consciously
omputers now touch almost every facet of our daily lives, whether we are
aware of them or not. Computers have changed the way we learn,
communicate, shop, travel, receive healthcare, and entertain ourselves. They are
embedded in virtually everything, from major feats of engineering like airplanes,
spaceships, and factories to everyday items like microwaves, cameras, and tooth­
brushes. In addition, all of our critical infrastructure—utilities, transportation,
finance, communication, healthcare, law enforcement—relies upon computers.
Since computers are the most versatile tools ever invented, it should come as
no surprise that they are also employed throughout academia in the pursuit of
new knowledge. Social scientists use computational models to better understand
social networks, epidemics, population dynamics, markets, and auctions. Humanists
use computational tools to gain insight into literary trends, authorship of ancient
texts, and the macroscopic significance of historical records. Artists are increasingly
incorporating digital technologies into their compositions and performances. Natural

1
2 • 1 How to Solve It

Look back at
Understand the Design an Write a
your algorithm
problem algorithm program
and results

Figure 1.1 A simplified view of the problem solving process.

scientists use computers to collect and analyze immense quantities of data to


make discoveries in environmental science, genomics, particle physics, neuroscience,
pharmacology, and medicine.
But computers are neither productive nor consequential on their own. All of the
computers now driving civilization, for good or ill, were taught by humans. Computers
are amplifiers of human ingenuity. Without us, they are just dumb machines.
The goal of this book is to empower you to teach computers to solve problems and
make discoveries. Computational problem solving is a process that you will find both
familiar and new. We all solve problems every day and employ a variety of strategies
in doing so. Some of these strategies, like breaking big problems into smaller, more
manageable ones, are also fundamental to solving problems with a computer. Where
computational problem solving is different stems from computers’ lack of intellect
and intuition. Computers will only do what you tell them to and nothing more.
They cannot tolerate ambiguity or intuit your intentions. Computational problem
solving, by necessity, must be more precise and intentional than you may be used to.
The payoff though, paraphrasing Donald Knuth1 , is that teaching a computer to do
something can also dramatically deepen our understanding of that thing.
The problem solving process that we will outline in this chapter is inspired by How to
Solve It, a short book written by mathematician George Polya [50] in 1945. Polya’s
problem solving framework, having withstood the test of time, consists of four steps:

1. First, understand the problem. What is the unknown? What are the data?
What is the condition?
2. Second, devise a plan to solve the problem.
3. Third, carry out your plan, checking each step.
4. Fourth, look back. Check the result. Can you derive the result differently?

These four steps, with some modifications, can be applied just as well to compu­
tational problem solving, as illustrated in Figure 1.1. In the first step, we make

1
You can learn more about Donald Knuth at the end of this chapter.
Random documents with unrelated
content Scribd suggests to you:
The Project Gutenberg eBook of Création d'un
répertoire bibliographique universel
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: Création d'un répertoire bibliographique universel


Conférence Bibliographique Internationale, 1895,
publication no. 1

Author: Henri la Fontaine


Paul Otlet

Release date: August 10, 2024 [eBook #74225]

Language: French

Original publication: Brussels: Imprimerie Veuve Ferdinand Larcier,


1895

Credits: Susan Skinner and the Online Distributed Proofreading Team


at https://www.pgdp.net (This file was produced from
images generously made available by the Mundaneum and
mediated by the artists of Algolit, a research project
initiated by Constant.)

*** START OF THE PROJECT GUTENBERG EBOOK CRÉATION D'UN


RÉPERTOIRE BIBLIOGRAPHIQUE UNIVERSEL ***
PUBLICATIONS
DE
L’OFFICE INTERNATIONAL DE BIBLIOGRAPHIE
No 1

CONFÉRENCE
Bibliographique Internationale

BRUXELLES 1895

DOCUMENTS
[01.06]

BRUXELLES
IMPRIMERIE VEUVE FERDINAND LARCIER
26-28, RUE DES MINIMES
1896
CRÉATION
D’UN

Répertoire Bibliographique
Universel

NOTE PRÉLIMINAIRE
PAR
MM. H. LA FONTAINE et P. OTLET

Qui scit ubi scientia


habenti est proximus.

La question bibliographique est à l’ordre du jour d’un grand nombre


de Congrès scientifiques. Elle a été inscrite cette année aux
programmes du Congrès géographique international de Londres, de
l’Association française pour l’avancement des sciences et de
l’Association artistique et littéraire internationale. La Société Royale
de Londres s’en est préoccupée l’an dernier. Elle a tout récemment
fait l’objet d’une discussion au sein de l’Académie royale de Belgique.
Sur l’utilité et la nécessité d’un répertoire bibliographique universel, il
y a unanimité parfaite. Quant à ses voies et moyens, quant à son
organisation pratique, peu de détails ont été donnés jusqu’ici.
Depuis six ans, ces questions ont été mises à l’étude à Bruxelles par
un groupe à l’initiative duquel a été fondé l’Office international de
Bibliographie. C’est expérimentalement que cette étude a été
poursuivie. L’Office international de Bibliographie, placé sous le haut
patronage du Gouvernement belge, a classé jusqu’à ce jour 400,000
notices bibliographiques, se rapportant aux principaux groupes de la
science, plus particulièrement au Droit, à la Statistique, à l’Economie
politique, à la Philologie et à la Littérature. Il est en possession d’une
méthode que l’épreuve a démontré être excellente.
L’objet de cette note est de faire connaître l’organisation et le
fonctionnement de cet Office et de montrer comment l’extension et
la généralisation de ses services apporterait la solution la plus
avantageuse au problème du Répertoire bibliographique universel.

Pour répondre à tous les desiderata exprimés, un Répertoire
bibliographique universel doit satisfaire aux exigences suivantes:
1o Il doit être complet. Il doit comprendre à la fois la bibliographie
des temps passés et celle des temps présents. Il doit aussi pouvoir
être tenu au courant de la production future. Son objet doit être
l’ensemble des connaissances humaines. Enfin, les articles de
revues, les études contenues dans les actes des académies, des
sociétés et des congrès doivent y être renseignés au même titre que
les livres et les brochures.
2o Le Répertoire doit être à la fois onomastique et idéologique, c’est-
à-dire, pouvoir renseigner rapidement et facilement et sur les
ouvrages d’un auteur dont le nom est donné, et sur les ouvrages à
auteurs encore inconnus, mais relatifs à un sujet déterminé. Ce
répertoire doit donc être à la fois alphabétique par noms d’auteur et
méthodique par ordre de matières. Il faut aussi que les matières
connexes soient groupées afin d’éviter au chercheur les
investigations trop nombreuses qui résultent de l’éparpillement des
matières.
3o Le Répertoire bibliographique doit exister en multiples
exemplaires. Instrument d’études et de recherches, aucun des
centres intellectuels n’en doit être privé. Son prix ne peut donc être
trop élevé, ni son maniement trop compliqué. Il doit aussi pouvoir se
fractionner, telle ou telle de ses parties étant dénuée de tout intérêt
pour un grand nombre de personnes.
4o Le répertoire doit être exact et précis à la fois, dans les
renseignements qu’il fournit et dans le classement qu’il leur attribue.
Les erreurs et les omissions sont inhérentes à toute œuvre humaine.
Elles sont inséparables d’une œuvre aussi considérable qu’un
Répertoire bibliographique universel. Tout système adopté doit
permettre la facile rectification des erreurs et omissions sans que le
répertoire général en puisse souffrir.
5o Ce Répertoire doit être mis promptement à la disposition des
travailleurs qui le réclament depuis nombre d’années. Cette
réalisation immédiate n’est possible que si le répertoire parvient à
utiliser la plus grande partie des travaux bibliographiques
actuellement existants; et s’il peut être livré à la publicité par
parties, avant d’être entièrement achevé.
6o Le Répertoire doit pouvoir se combiner avec un inventaire des
lieux de dépôts. Un grand nombre de livres n’existent plus qu’en
rares exemplaires dans quelques bibliothèques privilégiées. Il
importe qu’une compilation générale des catalogues des
bibliothèques particulières puisse renseigner promptement en quel
endroit doit se rendre celui qui se livre à des recherches spéciales.
7o Le Répertoire doit pouvoir servir de base à la Statistique
intellectuelle. Cette statistique, commencée à peine depuis quelques
années, est arrêtée dans son développement par le défaut de
recensements précis et complets, portant à la fois sur le nombre
d’œuvres, la nationalité de leurs auteurs et la spécialité de leur sujet.
8o Enfin, ce Répertoire doit pouvoir être utilisé éventuellement pour
assurer aux auteurs une meilleure protection légale de leurs œuvres
intellectuelles.

L’Office international de Bibliographie a déduit de ses
expérimentations des règles qui lui ont permis de commencer un
Répertoire donnant satisfaction à tous ces désidérata.
Ce répertoire, en effet, est universel. Les renseignements recueillis
concernent l’ensemble des connaissances humaines et portent à la
fois sur les articles de revues, les mémoires insérés dans les grands
recueils, les livres et les brochures. Les renseignements sont inscrits
en double exemplaire sur des fiches mobiles et réparties, les unes
dans un répertoire alphabétique des noms d’auteurs, les autres dans
un répertoire méthodique. Les fiches du répertoire méthodique sont
rangées selon la classification décimale adoptée par l’Association des
Bibliothécaires américains. Cette classification présente un triple
avantage. Elle constitue d’abord une nomenclature des
connaissances humaines, fixe, universelle et pouvant s’exprimer en
une langue internationale, celle des chiffres. Elle réalise l’unité de
méthode dans le classement de toutes les bibliographies et maintient
une concordance parfaite entre le classement des bibliothèques et
celui du répertoire bibliographique. Elle permet enfin un système
indéfini de divisions et de subdivisions des matières dont toutes les
parties connexes demeurent groupées dans le voisinage les unes des
autres.
L’Office de Bibliographie est divisé en sections qui correspondent à
chacune des branches de la science et sont confiées à des
spécialistes. Une section centrale est spécialement chargée du
recueillement et du premier collationnement des matériaux à
bibliographier. Chaque section annote et classe ensuite les fiches qui
la concernent. Le répertoire comprend les sources anciennes et les
sources modernes; grâce au système des fiches et des intercalations
continues, il peut parvenir à présenter le tableau complet de la
production intellectuelle. Les matières courantes sont publiées
périodiquement en des Sommaires bibliographiques spéciaux dont
l’ordonnancement est identique à celui du répertoire. Enfin, pour
mettre le répertoire tout entier—production passée et production
courante—à la disposition des travailleurs de tout pays, l’Office
international projette la publication continue de son répertoire sur
des fiches mobiles qui seraient envoyées, toutes annotées et toutes
classées, à des offices locaux, annexes des grandes bibliothèques ou
des universités.
Telle est, dans ses grandes lignes, l’organisation du répertoire
commencé par l’Office de Bibliographie. Nous avons à décrire en
détail chacun de ses éléments.

Les services qu’on attend de la Bibliographie sont multiples. Elle doit,
en effet, renseigner les savants, les praticiens, les bibliothécaires, les
libraires, le grand public de lecteurs.
Au point de vue exclusivement scientifique, une bibliographie
complète constituerait à chaque moment la table encyclopédique des
matières de la science. Passer du connu à l’inconnu, s’aider des
travaux de tous les prédécesseurs pour pousser plus loin
l’investigation scientifique, s’éviter des répétitions involontaires et
des pertes de temps précieux, ce sont là légitimes désirs d’hommes
de science. Le travail scientifique, particulièrement de nos jours,
s’est spécialisé et internationalisé. La science progresse par les
efforts des savants de tous les pays, de toutes les compétences. A
l’édifice commun, chacun apporte la pierre qu’il a équarrie à part lui.
Il importe cependant qu’elle soit taillée aux proportions de
l’emplacement qu’elle doit occuper à côté des autres; partant, que
l’état d’avancement de l’ensemble des travaux soit toujours
exactement et facilement connu.
Les praticiens ont un besoin analogue. Il s’agit pour eux d’arriver à
connaître facilement le fait, la loi, l’invention dont ils doivent faire
application. Les dictionnaires techniques deviennent insuffisants, car
ils sont trop tôt surannés. Quant aux recueils périodiques qui
essayent de les supplanter, leur nombre devient si considérable qu’il
n’est plus possible de les consulter au moyen des anciens procédés.
Une organisation bibliographique universelle permettrait de
considérer tout ce qui se publie,—quels que soient le lieu, le temps
ou la forme de l’imprimé,—comme éléments d’une immense
encyclopédie à la fois théorique, historique et pratique, dont le
Répertoire deviendrait la table des matières.
Les bibliothécaires à leur tour réclament l’organisation de la
Bibliographie. Il n’est que les toutes grandes bibliothèques qui
puissent se payer le luxe d’un service complet de catalogue. Et
pourtant sans catalogue la bibliothèque est un coffre fermé, plein de
choses précieuses, mais inaccessibles et invisibles, faute d’une clef.
Un répertoire bibliographique universel supprimerait tous les
catalogues particuliers, forcément incomplets, et les remplacerait par
un seul, toujours tenu à jour, informant les lecteurs non seulement
sur le contenu de l’établissement auquel il s’adresse, mais sur tout
ce qui est à sa disposition au dehors, dans d’autres bibliothèques ou
dans le commerce de la librairie. En des milliers de bibliothèques,
des hommes travaillent péniblement aujourd’hui à inventorier et à
classer les mêmes livres. Et c’est à recommencer, chaque fois qu’une
collection nouvelle se forme. D’ailleurs, autant de méthodes que
d’individus. Le classement diffère de pays à pays, de ville à ville, de
bibliothécaire à bibliothécaire, exigeant du chercheur une initiation
nouvelle à chaque nouveau catalogue qu’il consulte. Le Répertoire
bibliographique, reproduit en nombreux exemplaires, apporterait ici
les unités de classement tant désirées. Grâce à la division du travail,
un organe nouveau, distinct de tous les autres, serait désormais
chargé tout spécialement du classement des écrits. Ce classement
pourrait se faire non plus par des hommes dont on exige et auxquels
on suppose bien gratuitement une science universelle, mais par des
spécialistes. Les bibliothèques y gagneraient doublement. Elles
seraient presque totalement déchargées d’un service extrêmement
coûteux et désormais pourraient collaborer directement aux
recherches du public qui vient à elles, car elles pourraient répondre
immédiatement à la question qu’on leur pose invariablement: «Quels
ouvrages existe-t-il sur tel sujet?» Les catalogues que chaque
bibliothèque imprime à grand frais et que rendent bientôt surannés
les accroissements nouveaux, pourraient être remplacés par le
Répertoire. Chaque bibliothèque inscrirait elle-même, en marge des
fiches, les ouvrages qu’elle possède et leur indice de placement sur
les rayons. Les fiches du répertoire qui n’auraient pas été marquées
indiqueraient pour chaque matière les livres qu’il est possible
d’acquérir.
Les éditeurs, les libraires et les auteurs eux-mêmes ont tout à
gagner d’une bonne organisation bibliographique. Le commerce des
livres a besoin, avant tout, d’informations sûres, rapides et faciles à
acquérir. Aujourd’hui, l’état anarchique des bibliothèques trouve son
analogue dans celui de la librairie. Les catalogues d’éditeurs, hormis
quelques heureuses exceptions, sont faits sans ordre ni méthode.
Aucune idée commune ne préside à leur élaboration. Aussi ne
parviennent-ils guère à rendre service aux lecteurs pour qui ils sont
faits, et les sommes énormes dépensées chaque année en publicité
pour les ouvrages nouveaux sont d’un rendement inférieur à ce qu’il
pourrait être. L’offre et la demande existent cependant, mais
indépendantes l’une de l’autre: elles ne se rencontrent pas;
l’annonce ne va pas à celui qui la cherche. Un Répertoire
bibliographique universel assurerait aux éditeurs une publicité
prompte, sérieuse, permanente et réellement efficace. Il donnerait
aussi aux auteurs, qui, après tout, écrivent pour être lus, la certitude
de parvenir jusqu’à ceux auxquels ils désirent vraiment s’adresser.
Bibliothécaires, hommes de science et praticiens, auteurs et
éditeurs, la grande masse des simples lecteurs, tous ont le plus
grand intérêt à l’élaboration d’un Répertoire bibliographique
universel. Les gouvernements eux-mêmes ne peuvent lui être
indifférents. Eux qui entretiennent à grands frais des musées et des
collections de toute nature, peuvent-ils ne pas encourager cette
collection précieuse entre toutes: l’inventaire de ce que les hommes
ont pensé et écrit depuis qu’ils savent écrire!

Heureusement—et on l’oublie trop—tout n’est plus à faire dans le
domaine de la bibliographie. Elle a derrière elle une histoire déjà
longue qui n’est autre que celle des efforts successifs pour amener
une meilleure organisation du monde des livres.
Les humanistes, qui, au XVe siècle, recueillaient précieusement les
débris de l’antiquité classique, étaient des bibliographes à leur façon.
Leurs gloses et leurs annotations servaient d’index aux hommes de
leur temps. En 1686, Teisser peut déjà composer un catalogue des
catalogues. Francesco Marucelli (1625-1703), dans les 15 volumes
manuscrits de sa Mare Magnum, s’efforce de faire l’inventaire des
écrits connus de son temps. Il trouve des imitateurs nombreux:
Fabiano Giustiniani, Georges Draud de Francfort, Savonarole, l’auteur
de l’Orbis Literarius, index universel en 40 volumes manuscrit de
toutes les œuvres imprimées existantes à la fin de l’année 1700. Les
bibliographies spéciales font aussi leur apparition dès lors. C’est la
Bibliotheca Realis Juridica (1679), que Martin Lipenius fait suivre la
même année de la Bibliotheca Realis Medica, en 1682 de la
Bibliotheca Realis Philosophica et en 1685 de la Bibliotheca Realis
Theologica.
Le XVIIIe siècle ouvre l’ère des grandes encyclopédies en lesquelles,
sous chaque article, se trouve placé la bibliographie du sujet. C’est
aussi l’époque où l’on tente les premiers dépouillements des
périodiques. En 1790, Bentler fait paraître en Allemagne:
l’Allgemeines Sachregister über die wichtigsten deutschen Zeit- und
Wochenschriften. En Angleterre, Ayscough publie vers la même date
son: General Index to the Monthly Review, dont le 2e volume, paru
en 1786, contient: An Alphabetical Index to all the memorable
Passages, many of which relate to Discoveries and Improvements in
the Sciences and Arts for near forty years past; with Literary
Anecdotes, Critical Remarks, etc., etc., contained in the Monthly
Review during that period. La partie de ce gigantesque ouvrage
parue en 1796 comprend: A general Index to the remarkable
Passages, and to the Papers contained in the Transactions or
Memoirs of Societies, Foreign and Domestic, occurring in the Review
during that Period.
Avec le XIXe siècle la bibliographie s’officialise en partie. De grands
Etats considèrent qu’il est de leur devoir d’enregistrer la production
littéraire de leurs nationaux. Le développement des grandes
bibliothèques publiques, la proclamation du droit exclusif des auteurs
à l’exploitation de leurs œuvres, contribuent un peu partout à la
publication de recueils périodiques dont la Bibliographie de la France
a été un des premiers modèles. Ces bibliographies officielles se
doublent bientôt de catalogues, publiés périodiquement par des
associations de libraires. Le caractère général et peu ordonné de ces
publications fait naître bientôt le projet de bibliographies périodiques
spéciales, trimestrielles ou annuelles, collationnant tous les
renseignements relatifs à une branche particulière de la science,
telles la Bibliotheca philologica, la Bibliographia orientalis, la
Zeitschrift für die Gesammte Medicin, etc.
Cependant l’effort bibliographique le plus considérable est fait au
XIXe siècle par les Américains. C’est la coopération volontaire, des
bibliothécaires d’une part, des libraires d’autre part, qui donne
naissance à une série d’œuvres admirables auxquelles se sont
attachés les noms de Poole, de Fletcher, de Cutter, de Dewey, de
Winsor et de tant d’autres. Aux Etats-Unis, pays neuf et sans
histoire, il y avait en 1850 environ 100 bibliothèques comptant 5,000
volumes et plus. On évaluait l’ensemble de leurs collections à un
million de volumes. Quarante ans plus tard, en 1890, quatre mille
bibliothèques y renfermaient 27 millions de livres. On comprend que
la question des catalogues y ait attiré l’attention d’une manière toute
spéciale. Dès 1848, Frederik Poole fait imprimer un: Index to
subjects treated in the Reviews and Other Periodicals, et contenant
environ 28,000 indications bibliographiques. En 1876, est constituée
à Philadelphie l’American Library Association (A. L. A.) qui, dès
l’année suivante, s’entend en Angleterre avec la Library Association
of the United Kingdom, et jette les bases du Cooperative Index to
periodical literature, qui comprend le dépouillement et le classement
des articles contenus dans les revues de langue anglaise depuis
1802. En 1882 en paraît un premier volume in-8o de xxvii-1442
pages, inventaire de 200,000 articles contenus dans 6,205 volumes
appartenant à 232 collections de revues. Cinquante collaborateurs
attachés aux bibliothèques des Etats-Unis, d’Angleterre, d’Ecosse et
d’Australie, avaient uni leurs efforts.—Les Américains n’en restèrent
pas là. Des suppléments successifs au Cooperative Index furent
édités; une section spéciale pour l’impression des travaux
bibliographiques fut créée en 1886, au sein de l’Association des
Bibliothécaires; une revue, le Library Journal, fut spécialement
consacrée à l’étude de toutes les questions bibliothéconomiques;
une école spéciale, «Library School», organisée à Albany, sous la
direction de l’Université de l’Etat de New-York, offrit aux jeunes
bibliothécaires l’enseignement technique dont ils avaient besoin.
Enfin, un office, «Library Bureau», fut chargé spécialement de
l’exécution pratique et commerciale de tous les perfectionnements
dont est susceptible l’organisation des bibliothèques. De grandes
œuvres bibliographiques furent encore menées à bonne fin par les
Américains: telle la Bibliographie médicale en 16 gros volumes,
compilée par Billings, et à laquelle fait suite le recueil mensuel Index
medicus; tel aussi l’Alphabetical Index of articles in the Smithsonian
contributions to Knowledge de William J. Rhees.
Ce n’est pas une histoire, encore moins un inventaire des écrits
bibliographiques que nous voulons faire ici. Aussi nous bornons-nous
à rappeler quelles formes diverses a prises aujourd’hui la
bibliographie. Dans cet ordre d’idées, nous voulons signaler encore
les grandes Bibliographies des bibliographies de Petzhold et de Léon
Vallée (ce dernier a relevé les titres d’environ 11,000 bibliographies
fragmentaires). On a aussi tenté de faire l’inventaire des publications
de sociétés savantes. J. Muller l’a fait très complètement pour
l’Allemagne. Des tables générales, telles que celles de Brunet et de
Lorenz pour la France, Heinzius pour l’Allemagne, synthétisent toute
la production des livres d’un pays pendant une période déterminée.
La Royal Society de Londres a publié un Catalogue of scientific
Papers, en huit gros volumes, œuvre internationale considérable,
mais d’une utilité restreinte par suite de son classement purement
onomastique. La Bibliographie astronomique de Houzeau et
Lancastre, d’une étendue et d’une portée moindres, lui est
supérieure comme méthode. Citons encore les grands catalogues
dont l’édition a été entreprise par la Bibliothèque nationale de Paris
qui compte aujourd’hui environ deux millions et demi de livres et par
le British Museum qui en renferme un million et demi. Ces
catalogues, encore incomplets, sont de véritables monuments élevés
à la pensée humaine.

La Bibliographie a derrière elle un glorieux passé. Elle peut être fière
des œuvres qu’elle a fait naître et certes, nous le disions plus haut,
elle n’a pas tout à créer. Mais l’importance de sa mission se dégage
de plus en plus, en même temps que la grandeur des résultats déjà
obtenus permet de concevoir des plans de plus en plus vastes. Elle
en est arrivée à ce point de son développement qu’il lui importe plus
dorénavant d’organiser ses richesses que d’en créer de nouvelles.
Diverses tentatives partielles ont été faites en ce sens.
De grandes bibliothèques, comme la Bibliothèque Nationale de Paris,
la Königliche Bibliothek de Berlin, le British Museum de Londres ont
créé de véritables sections bibliographiques. Par la concentration des
volumes relatifs à la bibliographie et leur mise à la disposition des
lecteurs sans demande préalable; grâce aussi à l’élaboration de
catalogues sur fiches tenus à jour, ces bibliothèques satisfont
partiellement les exigences de leur public, mais combien
incomplètement encore!
Des agences privées, organisées commercialement, se sont proposé
de procurer, moyennant argent, à quiconque s’adresse à elle, des
renseignements déterminés. Ces agences existent dans plusieurs
grandes villes et rendent des services signalés. Mais elles-mêmes
doivent se livrer à des recherches considérables, longues, coûteuses
et forcément incomplètes. La bibliographie, comme la bibliothèque
elle-même dont elle est le complément, doit devenir un service
gratuit.
Des centres internationaux de renseignements scientifiques relatifs à
une matière spéciale ont été maintes fois proposés. La Belgique est
le siège de deux de ces institutions, l’Institut Colonial International
et le Bureau Géologique.
En 1889, un congrès international de mathématiciens a été réuni à
Paris, aux fins d’adopter un vaste plan de bibliographie
mathématique. Le congrès a adopté des unités de classement
internationales exprimées par une combinaison de lettres et de
chiffres. Il a décidé la publication d’un répertoire sur fiches mobiles
permettant les intercalations successives. Depuis le mois de
novembre dernier, le comité exécutif du Congrès adresse
régulièrement aux mathématiciens de tous les pays des paquets de
fiches bibliographiques dont le classement, grâce aux indices
conventionnels, est rendu des plus aisés.
Le répertoire mathématique ainsi constitué réalise un progrès
considérable. Le seul regret que l’on puisse exprimer ici, c’est que
ses rédacteurs ne se soient pas suffisamment préoccupés de la
bibliographie universelle et qu’ils n’aient pas conçu leur œuvre
comme une partie d’un tout plus considérable. C’est cette
considération qui a dominé les Américains. Depuis quelques années
ils ont unifié considérablement le classement de leurs bibliothèques
en adoptant uniformément la Classification décimale imaginée par M.
Melvil Dewey. Plus de 1,000 bibliothèques des Etats-Unis ont adopté
le même système. Le gouvernement de Washington a fait imprimer
à ses frais, au commencement de 1893, un catalogue de 5,000
volumes, choisis parmi les meilleurs de ceux qui doivent constituer le
fonds des bibliothèques populaires. Le catalogue, divisé
conformément à cette Classification décimale, est un premier et
intéressant essai de centralisation bibliographique: le travail y est fait
par quelques-uns au bénéfice de tous. A la sûreté de la méthode il
joint tous les avantages de l’économie. Enfin, tout récemment nous
avons appris que l’Association des Bibliothécaires américains venait
d’entreprendre la publication sur fiches du titre de toutes les
nouveautés littéraires de langue anglaise. Ces fiches, de mentions
très complètes et qui portent les nombres de la Classification
décimale, sont adressées, moyennant abonnement, aux
bibliothèques, aux libraires et aux particuliers. Elles servent à la fois
à l’élaboration des catalogues et à celle des répertoires
bibliographiques. Elles constituent, à nos yeux, le plus grand des
perfectionnements qui aient été obtenus jusqu’à ce jour.

La bibliographie, étudiée maintenant dans tous les pays et dans
toutes les branches de la science, a réalisé en ce siècle des progrès
considérables. Cependant, faute d’entente et de coopération
suffisamment étendue, elle est arrêtée dans son essor. A l’encontre
de la plupart des sciences, elle ne possède encore ni langue
commune, ni unités conventionnelles de classement généralement
reconnues et adoptées. Elle n’est parvenue, non plus, à établir entre
les travaux particuliers la coordination, avantageuse sous tous les
rapports, qui résulterait de l’existence d’un Répertoire
bibliographique universel.
Unification du classement, coordination des efforts individuels, un
Office international de Bibliographie peut seul réaliser ce double
progrès.

Comment parvenir à classer uniformément?
Depuis que l’énorme accumulation de matériaux imprimés a rendu
nécessaire une classification, divers systèmes de classement ont été
proposés. Ils se ramènent à trois types principaux. Dans le premier,
les titres de livres sont classés alphabétiquement par noms d’auteur.
Ce classement est insuffisant au point de vue bibliographique, car il
suppose connu d’avance l’ouvrage qu’on désire consulter sur une
matière quelconque. Il ne peut servir que de complément au
classement idéologique. Celui-ci peut être, soit un dictionnaire de
rubriques principales (Stichwörter) sous lesquelles viennent se placer
les matières y relatives, soit une table méthodique dont les divisions
logiques encadrent ces mêmes matières. Les deux formes avaient
jusqu’ici leurs partisans. En faveur du dictionnaire, on alléguait la
facilité des recherches. Grâce aux références qu’on peut faire
nombreuses et précises, il est possible de s’introduire dans un tel
répertoire par des entrées multiples. Cependant, l’inconvénient très
réel du système réside dans l’éparpillement infini des matières. Pour
ne prendre qu’un exemple, tout ce qui a trait au Travail se trouvera
réparti sous les mots, très éloignés les uns des autres: Législation du
travail, heures de travail, accidents du travail, contrat de travail,
hygiène des ateliers, associations ouvrières. Un autre inconvénient
se présente, dès qu’il s’agit de bibliographie internationale: l’ordre
alphabétique n’est pas le même dans toutes les langues et il faut
posséder à fond la connaissance d’une langue pour manier avec fruit
un tel dictionnaire. C’est pour ces raisons que le classement logique
des matières a été préféré par un grand nombre d’auteurs. Mais ici
toutes difficultés ne sont pas écartées. Si ce classement est
avantageux, parce qu’il groupe les matières similaires et connexes,
si, dans une certaine mesure, il est plus international parce qu’il
s’adresse à la logique qui est plus universelle que la langue, il est
cependant condamné par un grand nombre de bibliographes. Il est
trop arbitraire et suppose de la part de celui qui doit y recourir, une
connaissance approfondie des idées qui ont présidé à sa confection.
En outre, les divisions et subdivisions d’un tel classement se
traduisent généralement par des expressions bien plus complexes
que les rubriques d’un dictionnaire. De là, difficulté et longueur
d’annotation sur les notices bibliographiques et sur les livres eux-
mêmes et absence de tout langage international.
Une forme récente de classification a combiné les avantages des
deux systèmes en écartant la plupart de leurs inconvénients. Les
matières ont été réparties suivant un ordre méthodique dont toutes
les divisions et subdivisions ont reçu un symbole équivalent de la
plus grande concision possible, lettres, chiffres ou combinaisons de
lettres et de chiffres. Un index alphabétique complète cette
ingénieuse disposition et comprend tous les mots du répertoire,
avec, en regard, leur indice de classement. Si la troisième division
logique d’un sujet (par exemple, les heures de travail, dans une
bibliographie économique) a reçu la lettre C, dans l’index
alphabétique, on trouvera au mot Heures de travail «Voir C».
La possession de ce système, relativement pratique, ne plaçait pas
les bibliographes au bout de leurs peines. Dès que les bibliographies
étaient un peu subdivisées, condition indispensable pour rendre de
réels services, les indices devenaient d’indéchiffrables hiéroglyphes
qu’aucun larynx ne parvenait à prononcer, tels, par exemple,—Djkm,
—Zwr, ou bien encore,—Sy3cd. La confusion devenait plus grande
encore par le fait que chaque auteur imaginait un système particulier
de signes conventionnels sans se soucier de ceux employés par ses
prédécesseurs, sans tenir compte non plus de ceux usités dans les
autres branches de la science. Les auteurs qui recherchaient avant
tout la clarté, se servaient de chiffres; à chaque division ils
attribuaient un numéro d’une série unique. C’était moins compliqué,
mais, l’ordre une fois établi, il était immuable. Dès qu’une erreur ou
une omission était signalée, l’harmonie du système était rompue.
Les Américains nous paraissent avoir apporté une solution à peu
près définitive du problème. C’est à eux, en effet, que nous devons
la Classification décimale, imaginée, avons-nous dit, par M. Melvil
Dewey, adoptée et vulgarisée par l’Association des Bibliothécaires
des Etats-Unis et par le Bureau de l’Education (Ministère de
l’instruction publique) de Washington. Le principe de cette
classification est d’une simplicité géniale. Toutes les connaissances
humaines sont divisées en dix classes, auxquelles correspond l’un
des dix chiffres 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Chaque classe est
subdivisée en dix groupes représentés chacun aussi par un chiffre,
chaque groupe est à son tour l’objet d’une nouvelle division en dix,
exprimée de la même manière et ainsi de suite. Soit les dix classes
symbolisées ainsi:
0. Ouvrages généraux.
1. Philosophie.
2. Religion.
3. Sociologie.
4. Philologie.
5. Sciences.
6. Sciences appliquées.
7. Beaux-arts.
8. Littérature.
9. Histoire.
Pour la classe cinquième, par exemple, nous aurons:
5. Sciences.
50. Sciences en général.
51. Mathématiques.
52. Astronomie.
53. Physique.
530. Physique en général.
531. Mécanique.
532. Hydraulique.
533. Gaz.
534. Acoustique.
535. Optique.
536. Chaleur.
537. Electricité.
538. Magnétisme.
539. Physique moléculaire.

54. Chimie.
55. Géologie.
56. Paléontologie.
57. Biologie.
58. Botanique.
59. Zoologie.
Tous les ouvrages concernant l’électricité seront annotés 537. Le
chiffre du premier rang, 5, indique qu’il s’agit d’une matière relative
à la cinquième classe des connaissances humaines, c’est-à-dire aux
Sciences. Le chiffre du second rang détermine de quelle division de
ces sciences il est question, soit ici de la troisième division à laquelle
a été attribuée conventionnellement le chiffre 3. Tous les ouvrages
de Physique sont donc annotés 53. Mais la Physique elle-même se
fractionne en diverses sections dont la septième est l’électricité,
d’après une classification uniforme établie préalablement une fois
pour toutes. Le chiffre 7 venant s’ajouter au nombre 53 le
particularise et 537 n’indique plus que les ouvrages qui traitent de
l’électricité. C’est là un nombre classificateur (Class number), et c’est
en limitant au maximum de dix le nombre des parties de chaque
division, et en attribuant conventionnellement un chiffre à chacune
d’elles, que Dewey est parvenu à exprimer la localisation dans
l’ensemble des sciences de chaque matière, quelque particulière
qu’elle fût.
En effet, les chiffres qui représentent les classes et divisions de
chaque sujet s’unissent en une seule expression numérique
extrêmement simple: 537, en effet, ne signifie pas autre chose que
classe cinquième, section troisième, division septième. La filiation, la
généalogie même des idées et des objets, leurs rapports de
dépendance et de subordination, ce qu’elles ont de commun et de
différencié, trouvent une représentation adéquate dans l’indice
bibliographique ainsi formé. Cette représentation exclut presque la
convention et l’arbitraire. Non seulement chaque chiffre exprime à sa
façon une idée essentielle, mais la combinaison des chiffres, c’est-à-
dire leur rang dans la série et leur place dans le nombre, se réalise
conformément aux lois mêmes de la logique scientifique. En ce sens,
ils constituent une véritable langue nouvelle dont les phrases, ici les
nombres, sont formées selon des règles syntaxiques constantes au
moyen de mots, ici les chiffres. C’est une sorte de langue
agglutinante; les chiffres en sont des racines, racines prédicatives et
attributives, racines purement verbales en ce sens qu’elles ne sont ni
substantif, ni adjectif, ni verbe. Elles sont placées au-dessus et en
dehors de toute catégorie grammaticale, en ce qu’elles expriment
des abstractions, de pures catégories scientifiques. Par là même,
elles traduisent des idées absolument communes à tout le monde
scientifique et les expriment en signes universellement connus, les
chiffres. A ce double titre, la Classification décimale constitue un
véritable langage scientifique international, une symbolique complète
de la science susceptible, peut-être, d’apporter un jour aux
travailleurs intellectuels un secours analogue à celui qu’ils recevaient
du latin au moyen-âge et pendant la période moderne.

Cet aspect philologique de la Classification décimale n’est pas sans
importance. Mais il importe, à notre point de vue bibliographique, de
mettre en lumière ses autres avantages.
En premier lieu, nous l’avons déjà dit, toutes les matières connexes
sont groupées. Un index alphabétique, comprenant, en une ou
plusieurs langues, toutes les rubriques de recherches et tous les
synonymes et analogues, complète la table méthodique. La
simplicité avec laquelle se forment les nombres classificateurs donne
à tout le système une haute valeur mnémotechnique.
Les chiffres, quel que soit leur nombre, étant d’une lecture facile et
d’une écriture concise, chaque fiche d’un répertoire, chaque livre
d’une bibliothèque peuvent être annotés sans peine et recevoir ainsi
une localisation fixe. Toutes les fiches, tous les livres porteurs des
mêmes nombres classificateurs se trouvent réunis d’eux-mêmes,
sans que la personne chargée de leur mise en ordre ait besoin d’être
initiée à la science spéciale dont elle classe les documents.
L’indexeur seul doit être un homme instruit. Encore sa tâche est-elle
singulièrement facilitée, grâce à l’index alphabétique qu’il lui suffit
d’ouvrir à l’un des mots essentiels du titre du livre à bibliographier
pour trouver immédiatement le nombre classificateur à y annoter.
La classification est dite décimale en ce que chaque nombre indique
une division plus ou moins tenue, d’un ensemble qui est supposé
l’unité. En effet, les diverses branches et sous-branches des sciences
sont susceptibles de divisions plus ou moins nombreuses. Là où il y a
lieu de multiplier les catégories, on se servira de nombres à quatre,
cinq, sept chiffres et même plus. Lorsque, au contraire, la matière ne
peut être aussi fractionnée, on se contentera de nombres à deux ou
trois divisions. Les nombres étant sériés en tenant compte
seulement de leur importance décimale, la quantité de chiffres dont
ils se composent importe peu et les matières connexes, quelque
subdivisées qu’elles soient, demeurent toujours groupées.
Les ouvrages se rapportant à l’électricité, par exemple, portent
l’indice 537. Ceux relatifs à la chimie portent l’indice 54. S’il ne plaît
pas au classificateur d’établir des catégories parmi les ouvrages de
chimie et s’il les annote uniformément sous 54, dans l’ordre à
donner soit aux fiches d’un répertoire bibliographique, soit aux livres
d’une bibliothèque, 537 prendra place avant 54, puisque dans la
série numérique cinq cent trente-sept millièmes vient avant
cinquante-quatre centièmes. Ainsi, d’une façon générale, tous les
nombres commençant par 5 passent avant les nombres qui
commencent par 6; tous les nombres commençant par 53 avant
ceux qui commencent par 54; tous les nombres commençant par
537 avant ceux qui commencent par 538; de la même manière que,
dans un dictionnaire, tous les mots commençant par Ab précèdent
ceux qui commencent par Ac et tous les mots commençant par Aca
précèdent ceux qui commencent par Acb.
La Classification décimale constitue donc une localisation parfaite
des matières. Elle n’est pas sans analogie avec le système
d’identification anthropométrique imaginé par M. Bertillon et qui
fonctionne dans les grandes capitales d’Europe à la satisfaction
générale. Elle répond à ce principe essentiel de l’ordre
bibliographique, comme de tout autre ordre: une place pour chaque
chose et chaque chose à sa place. C’est, en outre, une localisation
raisonnée: cette idée est de l’essence même du système.
Il faut, en effet, distinguer avec soin la classification scientifique de
la classification bibliographique. Les exigences de l’une et de l’autre
ne sont pas les mêmes. Toute classification scientifique repose sur la
définition des objets à classer, et cette définition elle-même n’est
complète que lorsque la science est parfaite. En l’état actuel
d’avancement des sciences, une classification définitive et ne
varietur doit être considérée comme prématurée. Les meilleurs
esprits ne sont même pas d’accord sur les points cardinaux,
comment supposer l’accord sur les détails d’une classification. Cet
accord scientifique n’est heureusement pas nécessaire pour un
classement bibliographique. Il suffit d’un relevé complet des divers
sujets dont traitent les sciences, d’un certain groupement de ces
sujets d’après l’ordre le plus généralement adopté, enfin de
l’attribution à chacun d’eux d’une place fixe. Bibliographier, c’est
donc avant tout étiqueter et localiser les matériaux scientifiques.
Une classification conforme à ces vues existe très complète, très
étudiée, admirablement simple et appliquée depuis 17 ans, en
Amérique, au classement des livres dans les bibliothèques. Les
cadres de cette classification sont complets et embrassent
l’universalité des sciences. Plus de cent spécialistes ont collaboré à
l’étendre et à la perfectionner, jusqu’à lui donner environ 10,000
têtes de chapitres dans les tables méthodiques et 22,000 mots dans
les tables alphabétiques de référence. Cette classification, en outre,
est susceptible d’un développement indéfini. Elle s’est donc imposée
aux suffrages de l’Office de Bibliographie qui propose d’en faire la
base du Répertoire bibliographique universel. Puisque l’important est
une localisation complète et universellement reconnue, il importe
d’adopter la Classification décimale en bloc et de demander à chacun
le sacrifice de ses préférences personnelles en faveur du besoin
supérieur d’unité. Le vif et mérité succès qui lui a été fait aux Etats-
Unis et l’absence de toute unité bibliographique en Europe doivent
mettre fin aux dernières hésitations[1].

L’Office international de Bibliographie est donc en possession d’un
système de classement dont un premier essai a prouvé l’excellence.
Ce système, qu’il a mis à la base de son organisation, il l’a complété
en décidant que tous les renseignements bibliographiques qu’il
recueillerait seraient portés sur fiches mobiles. Le principe des fiches
mobiles n’a plus besoin aujourd’hui d’être défendu. Elles seules
permettent de maintenir dans le répertoire un ordre permanent et
unique. En effet, le répertoire bibliographique universel a ceci de
spécial que son élaboration est continue. Il doit enregistrer la
production littéraire à mesure qu’elle lui arrive: de là des
intercalations répétées. D’autre part, le collationnement des œuvres
anciennes nécessitera un travail considérable et d’une très longue
durée. Si le répertoire devait paraître sous forme de livres, la crainte
des erreurs et des omissions dans une œuvre définitive aussi
considérable en ferait retarder indéfiniment la publication. Le
système de fiches, au contraire, permet de livrer les documents
bibliographiques à la publicité par petites quantités à la fois et dès
qu’ils sont élaborés. En indiquant par un nombre classificateur sur
chaque fiche sa place exacte dans le Répertoire, tous les
inconvénients inhérents à ce genre de publication sont écartés.
Aux objections que les catalogues sur fiches peuvent difficilement
être mis à la disposition du public qui en troublerait le bon ordre, et
qu’ils présentent l’inconvénient de n’offrir à la lecture qu’un seul
renseignement à la fois, M. le Dr Rudolph a répondu victorieusement
en façonnant un ingénieux appareil dont voici la description:
M. Rudolph insère les fiches, auxquelles il donne la plus petite
dimension possible, entre deux glissoires en métal, placées aux deux
côtés de feuilles de fort carton ou de bois très mince, qui constituent
ainsi des porte-fiches. Ces porte-fiches sont réunis les uns aux
autres au moyen de broches facilement démontables. Ils forment
ainsi une sorte de grand livre qui ressemble assez bien aux petits
albums dont les photographies sont collées sur une longue bande de
toile qui se replie.
Les porte-fiches, tout garnis de leurs notes bibliographiques et
réunis bout à bout les uns aux autres en une chaîne sans fin, sont
placés dans une armoire en bois, d’un mètre de hauteur environ, et
dont la partie supérieure est formée d’une glace. Ils y reposent sur
deux tambours hexagonaux qu’une manivelle fait tourner dans les
deux sens. Le mouvement imprimé aux tambours entraîne les porte-
fiches dont la série se déroule devant la glace. L’armoire est fermée
à clef: le public ne peut donc toucher aux fiches qu’elle renferme. Le
lecteur qui cherche un renseignement se place devant la glace et
tourne la manivelle jusqu’à ce qu’il ait fait apparaître la série des
renseignements qu’il cherche. Quatre porte-fiches, pouvant contenir
chacun 45 fiches de trois lignes, se présentent à la fois à son
inspection et lui donnent ainsi toutes les facilités de lecture d’un
livre. D’autre part, les avantages inhérents au système de fiches sont
conservés, puisque la mobilité des fiches entre les glissoires des
porte-fiches, et la possibilité d’ajouter de nouveaux porte-fiches là
où besoin en est, rendent très aisée l’intercalation de
renseignements ultérieurs.

Les fiches sont classées dans le répertoire de l’Office conformément
à leur rang dans la Classification décimale. Pour faciliter les
recherches, les fiches bibliographiques qui sont blanches sont
intercalées derrière des fiches de classement coloriées et plus hautes
que les autres. Ces fiches de classement portent aussi les nombres
classificateurs. Leur couleur et leur format varient avec le degré de
la division qu’elles servent à marquer. Les fiches bibliographiques,
elles, portent le nom de l’auteur, le titre du livre, son étendue en
nombre de pages, son format, le nom de l’éditeur, l’année de
l’édition et le prix du volume ou le titre de la revue, l’année et la
page. Chaque fiche porte en outre des mentions bibliographiques
plus ou moins complètes suivant la nature de l’ouvrage bibliographié.
C’est d’abord et pour toutes les fiches l’indice de classement—c’est-
à-dire le nombre classificateur de la Classification décimale—et
l’indice d’identité ou numéro d’ordre. Le Répertoire bibliographique,
c’est l’état civil des œuvres de l’esprit. Il importe donc que
concurremment avec un nom de famille, ici l’indice de classement,
chaque écrit reçoive un nom individuel qui est l’indice d’identité.
C’est, dans le système de l’Office, un numéro de série ne se répétant
jamais deux fois. Chaque année constitue une série nouvelle qui se
distingue des autres par le quantième même de l’année qui devient
son dénominateur. Ainsi, tous les livres et articles parus en 1895,
appartiennent à une même série dont les numéros sont attribués
aux ouvrages à mesure qu’ils arrivent à la connaissance de l’Office.
Cette série a pour dénominateur 1895.
12,525
Ex.: , tandis que le dénominateur de la série des livres de
1895
12,525
1848 est 1848. Ex.: et ainsi de suite.
1848

Il est possible ainsi d’identifier chaque livre tout en évitant l’écueil de


nombres trop élevés. D’autre part, ces séries distinctes serviront de
base à la statistique des œuvres intellectuelles d’autant plus
facilement qu’elles se combineront avec l’indice de classe. Il est
possible de savoir pour chaque année le nombre total d’ouvrages
publiés et le nombre particulier de chaque espèce de livres. L’indice
d’identité facilite aussi la rectification des erreurs. Lorsqu’un membre
quelconque de la vaste Coopérative bibliographique que se propose
de créer l’Office aura signalé à l’administration centrale une erreur
de classement, lorsqu’aussi le grossissement d’une catégorie ou
l’arrivée d’une matière neuve ou omise nécessitera la création de
subdivisions nouvelles, il deviendra facile d’indiquer à tous les
associés les rectifications et remaniements utiles à faire. L’Office, par
exemple, fera savoir par la voie d’un Bulletin périodique destiné à
maintenir l’unité de classification entre tous les Répertoires locaux
12,525
que la fiche classée sous 525.3, doit être rangée sous 523.2,
1895
ou bien encore que la division ultime 525.3 sera subdivisée
dorénavant en 525.31 et 525.32. Qu’en conséquence les fiches
classées sous l’ancienne division seront classées comme suit:
12525 12537
Sous 525.31 etc.
1895 1848
536 2741
Sous 525.32 etc.
1836 1858

Les fiches du Répertoire sont encore susceptibles d’une autre


mention: le lieu de dépôt de chaque ouvrage, ainsi que l’a demandé
M. Vander Haegen, le savant bibliothécaire de l’Université de Gand.
Cependant, toute précieuse que soit cette indication, il est
impossible d’en surcharger toutes les fiches. Une distinction
s’impose. Lorsqu’un ouvrage est réellement rare, s’il n’est conservé
que dans quelques dépôts, il est d’un intérêt international de
connaître quels sont ces dépôts. Mais cela est aussi inutile
qu’impossible pour les ouvrages récents, pour ceux qui n’ont pas
encore eu le temps de pénétrer jusque dans les grandes
bibliothèques ou que l’on peut encore facilement se procurer en
librairie. Toutefois, des catalogues des lieux de dépôt peuvent
s’organiser aisément sur une base nationale; il y aurait dans chaque
capitale, annexé à la bibliothèque principale, un catalogue général
inventoriant les richesses de tous les dépôts nationaux. Le
Répertoire bibliographique universel peut servir de base à de tels
catalogues.

Après avoir dit comment la classification décimale des matières et le
collationnement des notices bibliographiques sur fiches mobiles,
donnent des solutions à peu près définitives aux plus importantes
questions que soulève la création d’un répertoire bibliographique
universel, il nous reste à exposer le plan de travail que nous
préconisons.
L’immensité de l’œuvre à entreprendre est telle que l’ordre, la
méthode et l’utilisation de tous les travaux existants permettent
seuls d’en espérer la réalisation.
Il convient d’abord d’écarter tout délai endéans lequel les travaux
devront être terminés; il faut aussi sérier les travaux sans rechercher
à être dès le début complets et indemnes d’erreur.
Le besoin d’un Répertoire bibliographique unique est si grand que
nul ne peut en retarder plus longtemps l’exécution sous prétexte
qu’il faut faire œuvre parfaite du premier coup. Déblayons d’abord le
terrain, accumulons rapidement deux ou trois millions de
renseignements les plus faciles à nous procurer; résignons-nous à 25
ou 30 p. c. d’erreurs, soit dans le relevé des notices, soit dans le
classement qui leur sera donné. Les erreurs et les omissions seront
rectifiées plus tard et très aisément, grâce au système de fiches
individualisées comme nous l’avons dit. Ces rectifications seront
l’œuvre de tous, car reproduit à un grand nombre d’exemplaires, le
Répertoire sera mis en même temps à la disposition de tous ceux qui
seront à même de les signaler.

La bibliographie des œuvres anciennes doit être élaborée d’après


des procédés différents de celle des œuvres modernes. Examinons
séparément les deux genres de travaux.
Pour le passé, il existe des bibliographies particulières en nombre
considérable. Léon Vallée en a relevé environ onze mille dans sa
Bibliographie des bibliographies. Beaucoup de ces bibliographies font
double emploi les unes avec les autres; d’autre part, toutes
ensemble, elles sont loin de comprendre l’inventaire complet de la
production intellectuelle jusqu’à nos jours. Un premier travail
s’impose donc: le dépouillement de toutes les sources
bibliographiques existantes et l’élaboration d’un tableau complet,
d’une sorte de carte bibliographique intégrale montrant à côté des
régions déjà explorées, celles qu’il reste à faire connaître. Ce vaste
travail de coordination ne peut être mené à bonne fin que par une
institution spéciale, organe permanent des intérêts bibliographiques,
jouissant de la popularité et du bon renom scientifique
indispensables pour pouvoir obtenir partout les renseignements
nécessaires à ses travaux.
Cette institution, qui sera l’Office international de Bibliographie,
publiera donc tout d’abord, avec le concours des auteurs qui se
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!

textbookfull.com

You might also like