(Ebook PDF) Building Python Programs 1St Edition

Download as pdf or txt
Download as pdf or txt
You are on page 1of 47

Full download ebook at ebooksecure.

com

(eBook PDF) Building Python Programs 1st Edition

https://ebooksecure.com/product/ebook-pdf-building-python-
programs-1st-edition/

OR CLICK BUTTON

DOWLOAD EBOOK

Download more ebook from https://ebooksecure.com


More products digital (pdf, epub, mobi) instant
download maybe you interests ...

(eBook PDF) Fundamentals of Python: First Programs 2nd


Edition

http://ebooksecure.com/product/ebook-pdf-fundamentals-of-python-
first-programs-2nd-edition/

Fundamentals of Python: First Programs, 2nd Edition


Kenneth A. Lambert - eBook PDF

https://ebooksecure.com/download/fundamentals-of-python-first-
programs-2nd-edition-ebook-pdf/

(eBook PDF) Building Java Programs: A Back to Basics


Approach 5th Edition

http://ebooksecure.com/product/ebook-pdf-building-java-programs-
a-back-to-basics-approach-5th-edition/

Building Java Programs: A Back to Basics Approach 4th


Edition (eBook PDF)

http://ebooksecure.com/product/building-java-programs-a-back-to-
basics-approach-4th-edition-ebook-pdf/
Building Java Programs: A Back to Basics Approach 4th
Edition Stuart Reges - eBook PDF

https://ebooksecure.com/download/building-java-programs-a-back-
to-basics-approach-ebook-pdf/

Building Java Programs - A Back to Basics Approach 5th


Edition Stuart Reges - eBook PDF

https://ebooksecure.com/download/building-java-programs-a-back-
to-basics-approach-ebook-pdf-2/

Progress in Heterocyclic Chemistry Volume 29 1st


Edition - eBook PDF

https://ebooksecure.com/download/progress-in-heterocyclic-
chemistry-ebook-pdf/

Python Distilled 1st edition - eBook PDF

https://ebooksecure.com/download/python-distilled-ebook-pdf/

(eBook PDF) Building Java Programs: A Back to Basics


Approach 4th Edition by Stuart Reges

http://ebooksecure.com/product/ebook-pdf-building-java-programs-
a-back-to-basics-approach-4th-edition-by-stuart-reges/
Preface

The Python programming language has become enormously popular in recent years.
Many people are impressed with how quickly you can learn Python’s simple and intui-
tive syntax and that has led many users to create popular libraries. Python was designed
by Guido van Rossum who has been affectionaly dubbed “Benevolent Dictator For Life
(BDFL)” by the Python community. He has said that he chose the name Python because
he was “in a slightly irreverent mood” and that he is “a big fan of Monty Python’s
Flying Circus” (a British comedy show). Who wouldn’t want to learn a programming
language named after a group of comedians?
Our new Building Python Programs text is designed for use in a first course in com-
puter science. We have class-tested it with hundreds of undergraduates at the University
of Arizona, most of whom were not computer science majors. This textbook is based
on our previous text, Building Java Programs, now in its fourth edition. The Java text
has proven effective in our class testing with thousands of students including our own
at the University of Washington since 2007.
Introductory computer science courses have a long history at many universities
of being “killer” courses with high failure rates. But as Douglas Adams says in The
Hitchhiker’s Guide to the Galaxy, “Don’t panic.” Students can master this material if
they can learn it gradually.
Python has many attributes that make it an appealing language for a first computer
science course. It has a simple and concise yet powerful syntax that makes it pleasant
to learn and great for writing many common programs. A student can write their first
Python program with only a single line of code, as opposed to several lines in most other
languages such as Java or C++. Python includes a built-in interpreter and read-­evaluate-
print loop (REPL) for quickly running and testing code, encouraging students to test and
explore the language. Python also offers a rich set of libraries that students can use for
graphics, animation, math, scientific computing, games, and much more. This text has
been built from the start for Python 3, the most modern version of the language as of this
writing, and it embraces the modern features and idioms of that version of the language.
Our teaching materials are based on a “back to basics” approach that focuses on
procedural programming and program decomposition. This is also called the “objects
later” approach, as opposed to the “objects early” approach taught in some schools. We
know from years of experience that a broad range of scientists, engineers, and others
can learn how to program in a procedural manner. Once we have built a solid founda-
tion of procedural techniques, we turn to object-oriented programming. By the end of
the text, students will have learned about both styles of programming.
iii
Brief Contents

Chapter 1 Introduction to Python Programming 1


Chapter 2 Data and Definite Loops 57
Chapter 3 Parameters and Graphics 132
Chapter 4 Conditional Execution 219
Chapter 5 Program Logic and Indefinite Loops 295
Chapter 6 File Processing 364
Chapter 7 Lists 418
Chapter 8 Dictionaries and Sets 517
Chapter 9 Recursion 563
Chapter 10 Searching and Sorting 636
Chapter 11 Classes and Objects 686
Chapter 12 Functional Programming 738
Appendix A Python Summary 785

xi
Contents

Chapter 1 Introduction to Python Programming 1


1.1 Basic Computing Concepts 2
Why Programming? 2
Hardware and Software 3
The Digital Realm 4
The Process of Programming 6
Why Python? 7
The Python Programming Environment 8
1.2 And Now: Python 10
Printing Output 14
String Literals (Strings) 15
Escape Sequences 16
Printing a Complex Figure 18
Comments, Whitespace, and Readability 19
1.3 Program Errors 22
Syntax Errors 23
Logic Errors (Bugs) 25
1.4 Procedural Decomposition 26
Functions 27
Flow of Control 31
Identifiers and Keywords 34
Functions That Call Other Functions 36
An Example Runtime Error 38
1.5 Case Study: Drawing Figures 40
Structured Version 41
Final Version without Redundancy 42
Analysis of Flow of Execution 44

Chapter 2 Data and Definite Loops 57


2.1 Basic Data Concepts 58
Types 58
Expressions 59
Literals 62
xiii
xiv Contents 

Arithmetic Operators 62
Precedence 66
Mixing and Converting Types 69
2.2 Variables 70
A Program with Variables 74
Increment/Decrement Operators 79
Printing Multiple Values 80
2.3 The for Loop 83
Using a Loop Variable 87
Details about Ranges 90
String Multiplication and Printing Partial Lines 94
Nested for Loops 98
2.4 Managing Complexity 101
Scope 101
Pseudocode 103
Constants 108
2.5 Case Study: Hourglass Figure 111
Problem Decomposition and Pseudocode 112
Initial Structured Version 114
Adding a Constant 115

Chapter 3 Parameters and Graphics 132


3.1 Parameters 133
The Mechanics of Parameters 139
Limitations of Parameters 141
Multiple Parameters 145
Parameters versus Constants 148
Optional Parameters 149
3.2 Returning Values 151
The math Module 153
The random Module 156
Defining Functions That Return Values 160
Returning Multiple Values 165
3.3 Interactive Programs 167
Sample Interactive Program 170
3.4 Graphics 172
Introduction to DrawingPanel 173
Drawing Lines and Shapes 176
Colors 179
Drawing with Loops 183
Text and Fonts 186
Contents  xv

Images 188
Procedural Decomposition with Graphics 189
3.5 Case Study: Projectile Trajectory 191
Unstructured Solution 195
Structured Solution 196
Graphical Version 199

Chapter 4 Conditional Execution 219


4.1 if/else Statements 220
Relational Operators 222
Nested if/else Statements 225
Factoring if/else Statements 231
Testing Multiple Conditions 232
4.2 Cumulative Algorithms 233
Cumulative Sum 233
Min/Max Loops 236
Cumulative Sum with if 239
Roundoff Errors 242
4.3 Functions with Conditional Execution 245
Preconditions and Postconditions 245
Raising Exceptions 246
Revisiting Return Values 250
Reasoning about Paths 253
4.4 Strings 255
String Methods 257
Accessing Characters by Index 260
Converting between Letters and Numbers 264
Cumulative Text Algorithms 267
4.5 Case Study: Basal Metabolic Rate 269
One-Person Unstructured Solution 270
Two-Person Unstructured Solution 273
Two-Person Structured Solution 275
Procedural Design Heuristics 280

Chapter 5 Program Logic and Indefinite Loops 295


5.1 The while Loop 296
A Loop to Find the Smallest Divisor 298
Loop Priming 300
xvi Contents 

5.2 Fencepost Algorithms 303


Fencepost with if 306
Sentinel Loops 308
Sentinel with Min/Max 310
5.3 Boolean Logic 312
Logical Operators 315
Boolean Variables and Flags 318
Predicate Functions 320
Boolean Zen 322
Short-Circuited Evaluation 325
5.4 Robust Programs 329
The try/except Statement 330
Handling User Errors 333
5.5 Assertions and Program Logic 335
Reasoning about Assertions 337
A Detailed Assertions Example 339
5.6 Case Study: Number Guessing Game 343
Initial Version without Hinting 344
Randomized Version with Hinting 346
Final Robust Version 348

Chapter 6 File Processing 364


6.1 File-Reading Basics 365
Data and Files 365
Reading a File in Python 369
Line-Based File Processing 372
Structure of Files and Consuming Input 373
Prompting for a File 378
6.2 Token-Based Processing 381
Numeric Input 383
Handling Invalid Input 385
Mixing Lines and Tokens 386
Handling Varying Numbers of Tokens 388
Complex Input Files 392
6.3 Advanced File Processing 394
Multi-Line Input Records 395
File Output 397
Reading Data from the Web 400
6.4 Case Study: ZIP Code Lookup 403
Contents  xvii

Chapter 7 Lists 418


7.1 List Basics 419
Creating Lists 420
Accessing List Elements 423
Traversing a List 429
A Complete List Program 430
Random Access 434
List Methods 435
7.2 List-Traversal Algorithms 443
Lists as Parameters 443
Searching a List 445
Replacing and Removing Values 449
Reversing a List 450
Shifting Values in a List 456
Nested Loop Algorithms 462
List Comprehensions 463
7.3 Reference Semantics 464
Values and References 465
Modifying a List Parameter 468
The Value None 470
Mutability 472
Tuples 476
7.4 Multidimensional Lists 482
Rectangular Lists 483
Jagged Lists 485
Lists of Pixels 491
7.5 Case Study: Benford’s Law 495
Tallying Values 497
Completing the Program 501

Chapter 8 Dictionaries and Sets 517


8.1 Dictionary Basics 518
Creating a Dictionary 521
Dictionary Operations 524
Looping Over a Dictionary 527
Dictionary Ordering 528
8.2 Advanced Dictionary Usage 531
Dictionary for Tallying 531
xviii Contents 

Nested Collections 536


Dictionary Comprehensions 541
8.3 Sets 543
Set Basics 543
Set Operations 547
Set Efficiency 549
Set Example: Lottery 552

Chapter 9 Recursion 563


9.1 Thinking Recursively 564
A Nonprogramming Example 564
Iteration to Recursion 567
Structure of Recursive Solutions 570
Reversing a File 573
The Recursive Call Stack 575
9.2 Recursive Functions and Data 581
Integer Exponentiation 581
Greatest Common Divisor 584
Directory Crawler 590
9.3 Recursive Graphics 594
Cantor Set 594
Sierpinski Triangle 597
9.4 Recursive Backtracking 601
Traveling North/East 601
Eight Queens Puzzle 607
Stopping after One Solution 615
9.5 Case Study: Prefix Evaluator 618
Infix, Prefix, and Postfix Notation 618
Evaluating Prefix Expressions 619
Complete Program 623

Chapter 10 Searching and Sorting 636


10.1 Searching and Sorting Libraries 637
Binary Search 638
Sorting 644
Shuffling 645
10.2 Program Complexity 646
Empirical Analysis 649
Complexity Classes 656
Contents  xix

10.3 Implementing Searching and Sorting Algorithms 657


Sequential Search 658
Binary Search 659
Recursive Binary Search 662
Selection Sort 664
10.4 Case Study: Implementing Merge Sort 667
Splitting and Merging lists 668
Recursive Merge Sort 671
Runtime Performance 674
Hybrid Approach 677

Chapter 11 Classes and Objects 686


11.1 Object-Oriented Programming 687
Classes and Objects 688
Date Objects 690
11.2 Object State and Behavior 690
Data Attributes 691
Initializers 694
Methods 698
Accessors and Mutators 702
Making Objects Printable 705
Object Equality and Ordering 707
11.3 Encapsulation 710
Motivation for Encapsulation 711
Private Attributes and Properties 711
Class Invariants 717
11.4 Case Study: Designing a Stock Class 721
Object-Oriented Design Heuristics 723
Stock Attributes and Method Headers 725
Stock Method and Property Implementation 727

Chapter 12 Functional Programming 738


12.1 Functional Programming Concepts 739
Side Effects 740
First-Class Functions 742
Higher-Order Functions 744
Lambda Expressions 746
12.2 Functional Operations on Collections 749
Using Map 751
Using Filter 752
xx Contents 

Using Reduce 754


List Comprehensions 758
12.3 Function Closures 760
Generator Functions 763
Lazy Evaluation 767
Iterable Objects 769
Generator Expressions 770
12.4 Case Study: Perfect Numbers 772
Computing Sums 772
The Fifth Perfect Number 777
Leveraging Concurrency 778

Appendix A Python Summary 785


Index 798
Chapter 1
Introduction to
Python Programming

Introduction
1.1 Basic Computing Concepts
■■ Why Programming?
This chapter begins with a review of some basic terminology about comput- ■■ Hardware and Software
ers and computer programming. Many of these concepts will come up in later ■■ The Digital Realm
chapters, so it will be useful to review them before we start delving into the
■■ The Process of Programming
■■ Why Python?
details of how to program in Python. ■■ The Python Programming
Environment
We will begin our exploration of Python by looking at simple programs
1.2 And Now: Python
that produce text output to a console window. This discussion will allow us
■■ Printing Output
to explore many elements that are common to all Python programs, while ■■ String Literals (Strings)
working with programs that are fairly simple in structure. ■■ Escape Sequences
■■ Printing a Complex Figure
After we have reviewed the basic elements of Python programs, we will ■■ Comments, Whitespace, and
explore the technique of procedural decomposition by learning how to break Readability

up a Python program into several functions. Using this technique, we can 1.3 Program Errors
break up complex tasks into smaller subtasks that are easier to manage and ■■ Syntax Errors
■■ Logic Errors (Bugs)
we can avoid redundancy in our program solutions.
1.4 Procedural Decomposition
■■ Functions
■■ Flow of Control
■■ Identifiers and Keywords
■■ Functions That Call Other
Functions
■■ An Example Runtime Error

1.5 Case Study: Drawing Figures


■■ Structured Version
■■ Final Version without
Redundancy
■■ Analysis of Flow of Execution

Chapter Summary

Self-Check Problems

Exercises

Programming Projects

1
2 Chapter 1 Introduction to Python Programming

1.1 Basic Computing Concepts


Computers are pervasive in our daily lives, and, thanks to the Internet, they give us
access to nearly limitless information. Some of this information is essential news, like
the headlines at cnn.com. Computers let us share photos with our families and map
directions to the nearest pizza place for dinner.
Lots of real-world problems are being solved by computers, some of which don’t
much resemble the one on your desk or lap. Computers allow us to sequence the human
genome and search for DNA patterns within it. Computers in recently manufactured
cars monitor each vehicle’s status and motion. Digital devices such as Apple’s iPhone
actually have computers inside their small casings. Even the Roomba vacuum-cleaning
robot houses a computer with complex instructions about how to dodge furniture while
cleaning your floors.
But what makes a computer a computer? Is a calculator a computer? Is a human
being with a paper and pencil a computer? The next several sections attempt to address
this question while introducing some basic terminology that will help prepare you to
study programming.

Why Programming?
At most universities, the first course in computer science is a programming course.
Many computer scientists are bothered by this because it leaves people with the impres-
sion that computer science is programming. While it is true that many trained computer
scientists spend time programming, there is a lot more to the discipline. So why do we
study programming first?
A Stanford computer scientist named Don Knuth answers this question by saying
that the common thread for most computer scientists is that we all in some way work
with algorithms.

Algorithm
A step-by-step description of how to accomplish a task.

Knuth is an expert in algorithms, so he is naturally biased toward thinking of them as


the center of computer science. Still, he claims that what is most important is not the
algorithms themselves, but rather the thought process that computer scientists employ
to develop them. According to Knuth:

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.1

1
Knuth, Don. Selected Papers on Computer Science. Stanford. CA: Center for the Study of Language and
Information, 1996.
1.1 Basic Computing Concepts 3

Knuth is describing a thought process that is common to most of computer science,


which he refers to as algorithmic thinking. We study programming not because it is the
most important aspect of computer science, but because it is the best way to explain the
approach that computer scientists take to solving problems.
The concept of algorithms is helpful in understanding what a computer is and what
computer science is all about. The Merriam-Webster dictionary defines the word “com-
puter” as “one that computes.” Using that definition, all sorts of devices qualify as
computers, from calculators to GPS navigation systems to children’s toys. Prior to the
invention of electronic computers, it was common to refer to humans as computers. The
nineteenth-century mathematician Charles Peirce, for example, was originally hired
to work for the U.S. government as an “Assistant Computer” because his job involved
performing mathematical computations.
In a broad sense, then, the word “computer” can be applied to many devices. But
when computer scientists refer to a computer, they are usually thinking of a universal
computation device that can be programmed to execute any algorithm. Computer sci-
ence, then, is the study of computational devices and the study of computation itself,
including algorithms.
Algorithms are expressed as computer programs, and that is what this book is all
about. But before we look at how to program, it will be useful to review some basic
concepts about computers.

Hardware and Software


A computer is a machine that manipulates data and executes lists of instructions known
as programs.

Program
A list of instructions to be carried out by a computer.

One key feature that differentiates a computer from a simpler machine like a calculator
is its versatility. The same computer can perform many different tasks (playing games,
computing income taxes, connecting to other computers around the world), depending
on what program it is running at a given moment. A computer can run not only the pro-
grams that exist on it currently, but also new programs that haven’t even been written yet.
The physical components that make up a computer are collectively called hardware.
One of the most important pieces of hardware is the central processing unit, or CPU.
The CPU is the “brain” of the computer: It is what executes the instructions. Also
important is the computer’s memory (often called random access memory, or RAM,
because the computer can access any part of that memory at any time). The computer
uses its memory to store programs that are being executed, along with their data. RAM
is limited in size and does not retain its contents when the computer is turned off.
Therefore, computers generally also use a hard disk as a larger permanent storage area.
Computer programs are collectively called software. The primary piece of soft-
ware running on a computer is its operating system. An operating system provides an
environment in which many programs may be run at the same time; it also provides
4 Chapter 1 Introduction to Python Programming

a bridge among those programs, the hardware, and the user (the person using the
­computer). The programs that run inside the operating system are often called
­applications or apps.
When the user selects a program for the operating system to run (e.g., by double-
clicking the program’s icon on the desktop), several things happen: The instructions for
that program are loaded into the computer’s memory from the hard disk, the operating
system allocates memory for that program to use, and the instructions to run the pro-
gram are fed from memory to the CPU and executed sequentially.

The Digital Realm


In the previous section, we saw that a computer is a general-purpose device that can be
programmed. You will often hear people refer to modern computers as digital comput-
ers because of the way they operate.

Digital
Based on numbers that increase in discrete increments, such as the integers
0, 1, 2, 3, etc.

Because computers are digital, everything that is stored on a computer is stored as a


sequence of integers. This includes every program and every piece of data. An MP3
file, for example, is simply a long sequence of integers that stores audio information.
Today we’re used to digital music, digital pictures, and digital movies, but in the 1940s,
when the first computers were built, the idea of storing complex data in integer form
was fairly unusual.
Not only are computers digital, storing all information as integers, but they are also
binary, which means they store integers as binary numbers.

Binary Number
A number composed of just 0s and 1s, also known as a base-2 number.

Humans generally work with decimal or base-10 numbers, which match our physiol-
ogy (10 fingers and 10 toes). However, when we were designing the first computers,
we wanted systems that would be easy to create and very reliable. It turned out to be
simpler to build these systems on top of binary phenomena (e.g., a circuit being open or
closed) rather than having 10 different states that would have to be distinguished from
one another (e.g., 10 different voltage levels).
From a mathematical point of view, you can store things just as easily using binary
numbers as you can using base-10 numbers. But since it is easier to construct a physical
device that uses binary numbers, that’s what computers use.
This does mean, however, that people who aren’t used to computers find their
conventions unfamiliar. As a result, it is worth spending a little time reviewing how
Another random document with
no related content on Scribd:
»Jo kuuluu kummia», hykerteli Aapeli eikä muistanut
vesihernettäkään nenän päästä pyyhkäistä. »Piispalta on minulle
tullut preivi… sitä on Vaanperi minulle suomentanut…»

Karoliinan kasvot vähän kalpenivat.

»Ja kirjoittaa kuin vanhalle tuttavalle… Vaanperi tässä juuri pääsi


suomentamasta… Kohtasin tiellä Vaanperin, niin pyysin, että lähtee
suomentamaan… Mitä sanot, Karoliina?»

»Mitäpä minä siihen sanon», lausui Karoliina välinpitämättömällä


äänellä.

»Etkä tiedä mitä kirje sisältääkään», pirahti isäntä ja pyyhkäisi


nenäänsä.

»Mistäpä minä sen tietäisin», arveli Karoliina ja alkoi riisua


päällystakkiaan.

Aapeli pyörähti keskelle lattiaa, remahti nauruun ja puoleksi huusi:

»Kun käskee nyt jo syksyllä toimittaa Oskarin isoon kouluun


Luulajaan asti…»

Hän uskoi uutisen vaikuttavan yhtä repäisevästi Karoliinaan kuin


häneenkin, mutta nähtyään, ettei vaimonsa ollut millänsäkään
kuulemastaan, virkkoi hän Vaanperiin päin kääntyen:

»Se ei usko… ei usko. Lue, Vaanperi, vielä kerran se piispan preivi,


että kuulee… lue sanasta sanaan… Lue, että kuulee…»

»Kuulen minä sen… ja uskon», sanoi Karoliina. »Ei sitä minun


vuokseni tarvitse lukea…»
»Vaan suomennahan, että Karoliina kuulee, mitä Oskaristakin
mainitsee… Se on piispa kerrassaan ihastunut Oskariin…»

»Mitäpä minun siitä tarvitsee tietää», esteli Karoliina, mutta


Vaanperi oli jo ruvennut piispan kirjettä suomentamaan.

Oskari oli tullut äitinsä viereen ja seisoi siinä kalpeana.

Kirjeessään piispa kehoitti Aapelia kouluttamaan poikansa


ylioppilaaksi ja sitten papiksi. Nyt syksyllä olisi poika jo lähetettävä
Luulajaan, jossa ei saisi ensiksi kuulla yhtään suomen sanaa, jotta
perinpohjin oppisi ruotsinkielen. Sitten hänellä, tulevaisuudessa, olisi
erinomainen tilaisuus vaikuttaa rajaseudulla sekä sielunpaimenena
että opettajana.

Karoliina oli kuuntelevinaan, mitä Vaanperi kirjeestä selitti, oli


sitten olevinaan hyvilläänkin… Hänen täytyi, hänen täytyi
teeskennellä pojan vuoksi — pojan elämänonnen vuoksi.

»Jopahan uskoo… jopahan uskoo nyt Karoliinakin», pakisi Aapeli


nähtyään ja uskottuaan, että emäntäkin naureskeli siitä ilosta.

»Syksyllä Oskari kouluun!» sanoi hän sitten ja kehaisi Vaanperille:

»Eikä tässä taida tarvita naapuriin lähteä rahaa lainaamaan, vaikka


Luulajaankin lähtö tulee…»

*****

Oskari oli kesän aikana nukkunut äitinsä kanssa rakennuksen


toisessa päässä olevassa huoneessa, joka oli uunitta ja viileä. Aapeli
nukkui yksin pirtissä. Hänen täytyi usein öisinkin olla liikkeellä patoa
kokemassa ja muutenkin, kun outoja tukkilaisia kulki usein läpi
pihan, milloin kosken alle, milloin päälle.

Tultuaan huoneeseensa Oskari ratkesi itkemään, kysyen, pitikö


hänen lähteä Luulajaan kouluun. Äidin vakuutuksista hän kuitenkin
pian tyyntyi ja kävi vuoteeseensa.

Mutta kauas kaikkosi uni Karoliinan silmistä. Tätä hän ei ollut


osannut ajatella eikä ollut sen varalta varustautunut. Mutta hänen
täytyi nyt olla myöntävinään, tehdä niinkuin Aapeli käski… olla
varovainen, ettei tämä saisi minkäänlaista vihiä siitä, mitä hän mietti.
Nähtävästi oli mies unhottanut kohtauksen Saviojan Vanten kanssa,
koska ei mitään muutosta hänen käytöksessään ollut tapahtunut. Nyt
oli hänellä piispan kirjeen saatuaan uutta miettimistä eikä hän siis
joutanut tarkkaamaan, mitä emäntä toimitteli. Aikaa oli vielä
toimittaa. Syyskuussa vasta alkoi Luulajan koulu, mutta sitä ennen
tuli Oskarin jo olla kaukana, kaukana täältä.

Oli sittenkin onni, ettei hän ollut ketään ottanut uskotukseen, ettei
kenellekään ollut aikeestaan puhunut. Ei kukaan osannut
aavistaakaan, mitä hän mietti poikansa onnen ja elämän vuoksi.
Yksin vain hän sen tiesi, eivätkä sitä muut koskaan saisi tietääkään.

Oskari oli jo nukkunut. Karoliina kuuli hänen keveän


hengityksensä. Hän oli pitänyt huoneen ikkunassa verhoa, ettei
aamuaurinko pääsisi huonetta kuumentamaan. Mutta nyt tuntui
hänestä ikävältä, ja hän siirsi verhon ikkunasta. Kirkasta
aamuauringon paistetta tulvasi huone täyteen, ja hänestä tuntui nyt
hauskemmalta…

»Hän on hyvä mies ja suuressa virassa», oli maisteri sanonut.


Miksei hän kuitenkin ollut kysellyt enempää, yksityiskohtia? Ei ollut
uskaltanut eikä tahtonutkaan!

Mahtoiko muistaa kaikki, mistä he puhelivat kesäyönä siellä


Väylänpään vieraskamarissa? Ehkä muisti… Hän, Karoliina, ne kyllä
muisti, muisti joka sanan.

»Kerran minä sinut vielä kohtaan… kerran tulen tänne takaisin.»

Hän oli niin rakas, niin rakas! Hän oli niin hyvä ja lempeä!

»Et unhota minua?»

»En, en koskaan.»

Aina lupaat rakastaa?»

»Aina, koko elinaikani.»

Sitten hän lähti. Kerran kirjoitti. Ei silloin tiennyt, milloin tulisi. Hän
kirjoitti vastaan, kertoi kuinka laitansa oli. Siihen ei vastausta tullut.

Silloin hän teki epätoivoisen tekonsa. Mitä hän silloin taisi? Oma ja
koko suvun häpeä vartoi. Ja hän päätti kärsiä ja ottaa miehekseen
Portaankorvan Aapelin…

Vasta sitten kun Oskari syntyi, alkoivat suurimmat tuskat ja


katumuksen pitkät yöt. Ei ollut pelastusta missään, ja hänen
elämänsä muuttui valheeksi, alusta asti valheeksi. Pojan elämä oli
hänenkin elämänsä, ja yksi ainoa toivo oli, joka oli henkeä pitänyt, —
pojan tulevaisuus. Hämäränä se oli kangastanut hänen mielessään
näinä neljänätoista vuotena, jotka hän oli tätä valhe-elämää elänyt.
Hämäränä se oli ollut, mutta se oli selvinnyt. Oli ollut tuskan ja
epätoivon hetkiä semmoisia, että kun niitä nyt muisteli, tuntui
kummalta, että ne sittenkin oli voinut kestää, elää niinkuin ei mitään
myrskyä rinnassa riehuisikaan. Niinä semmoisina hetkinä alkoi korva
kuunnella kosken kohinaa, ja se kohina ja pauhu kuin tyynnyttivät,
kosken äänessä soi kuin lohtua, toivoa… Sitä kuunteli ja sillä
sydämen kovat kiljumiset asetti… Toisinaan, varsinkin alkuvuosina,
kun talven pimeinä iltoina seisahtui kuuntelemaan, oli kuin koski olisi
huutanut: Hyppää tänne valkoiseen helmaani! Mutta silloin hän aina
säpsähti ja muisti pojan, joka oli rakkaampi kuin oma elämä.

Pojan vuoksi hän eli, pojan vuoksi kärsi…

Ainainen pelko oli lisäksi vaivannut, että Aapeli joskus saa kuulla
— ellei itse viimein ymmärrä — ettei poika olekaan hänen, ainainen
pelko, että silloin se pojan ruhjoo… Ja vaikka hän sydämensä
syvyydessä tunsi, että kerran se saapi tietää, kerran hän katkaisee
kärsimystensä kahleet, ja silloin on kaikki sileää… Mutta poika piti
ensin saada turvaan, varmaan turvaan…

Ja nyt se oli hänelle selvinnyt. Vielä nyt kun jaksaisi jonkun viikon
viettää tätä valhe-elämää! Kun vielä kaikki onnistuisi eikä Aapelin
epäluulo enenisi! Kohta, kohta tulee otollinen hetki!

Hän makasi avoimin silmin ja mietiskeli… Aapeli kuului vielä


liikkuvan eteisessä, koska ovia aukaistiin ja askeleita kuului.

— Oikeastaan onkin hyvä, että piispan kirje juuri nyt sattui


tulemaan, ajatteli hän. — Nyt on hänellä miettimistä ja kehumista
siitä. Se vain auttaa minun asiaani.

Ei ollut Aapeli muistanut mitään Suomen puolen juhlanvietosta


kysyä, niin oli piispan kirje häntä innostuttanut. Hyvä oli sekin!
Karoliinan ajatukset kulkivat juhlaan, ja hänen mieleensä oli
painunut veljenpojan puhe. Hän muisti melkein joka sanan. Niin
hänkin oli ajatellut kuin Väylänpään Juhani puhui, vaikkei hän
koskaan ollut saattanut sitä sanoa — eikä ensinkään niin kuin Juhani
sen sanoi.

Hän muisti Juhanin ilosta säteilevät silmät, valkoisen lakin ja siinä


kimaltelevan kultatähden. Ja melkein kuin tietämättä tuli hänen
mieleensä, oli aivan kuin olisi nähnyt, että se olikin hänen Oskarinsa,
joka siellä seisoi, vaalea, kihara tukka lakin alta näkyen… Oskarin
silmissä oli kaihoa ja katseessa etsivän kaipausta…

Mutta sitten kun alkoi puhua, muuttuikin Kaarloksi, semmoiseksi


kuin hänet muisti… Kaarlo Laukkahan se olikin… Hänen vartalonsa
oli pitkä ja komea, silmät kirkkaat ja kauniit, otsa korkea… Hänen
katseensa etsi jotakin väkijoukosta, etsi tuttuja silmiä ja tuttuja
kasvoja… Hän, Karoliina, vetäysi toisien taakse… ei taitaisi enää
tuntea entiseksi, jos katseet kohtaisivatkin… Mutta ehkä muistaisi…
Nyt alkaa puhua… Mitä sanookaan? »Minulla oli kerran tässä kylässä
rakas ystävä, rakkain kaikista koko elämässäni… En näe häntä teidän
joukossanne… En näe hänen silmiensä loistoa… Minulla on myöskin
poika, vaaleatukkainen ja sinisilmäinen… Olen tullut heitä
etsimään…»

Karoliina heräsi siihen, että Oskari unissaan alkoi itkeä, mutta


tyyntyi pian…

Ja vaikka hän nyt tiesi olevansa hereillä, tuntui hänestä äskeinen


uni todelta. Se oli niin suloinen, niin ihana! Hän tunsi sydämensä
sykkivän ja onnen elämän pulppuavan. Hän koetti varoa, ettei
mitään himmenisi eikä unohtuisi kirkkaasta unesta, jota hän
mieleensä palautti ja muisteli. Hän makasi hiljaa, silmät
puoliummessa, haaveksien ja uneksien…

Näin ihanaa hetkeä hän ei ollut sitten elänyt kuin siellä


Väylänpäässä, ei koskaan unissaan nähnyt Kaarlo Laukkaa
sellaisena…» »Olen tullut heitä etsimään.»

— Niin! Niin!

Hän sai siitä vahvistusta, uusia voimia siihen, jonka oli päättänyt
tehdä.

— Hän muistaa minua ja poikaa! Rakas! Rakas!

Ja toivoa täynnä ja virkkuna hän nousi vuoteestaan, varmana siitä,


että kaikki käy hyvin.
XI

Oli hämärtyvä elokuun ilta.

Portaankorvasta oli kaikki väki mennyt ulkoniitylle Pukkisaareen,


johon oli talosta oikoinen penikulma matkaa. Emäntä ja Oskari vain
olivat kahden kotona.

Koko viikon oli emäntä saanut rauhassa toimitella.

Tätä aikaa hän oli koko kesän odottanut — tätä viikkoa, jolloin
tiesi muun väen ja isännänkin menevän viikon kestävälle
niittymatkalle. Nyt se oli tullut, ja emäntä oli sitä aikaa hyväksensä
käyttänyt.

Oskari oli saanut tietää koko elämänsä salaisuuden, äiti oli itkenyt
ja poika oli itkenyt, mutta äidin päätös aiottiin toteuttaa.

Karoliina ei ollut nukkunut yhtenäkään yönä. Hän oli kenenkään


tietämättä soutanut useita kertoja Suomen puolelle, toimittanut siellä
tarvittavat seikat reilaan, hankkinut rahaa lainaksi ja kerännyt kaikki
omat säästönsä. Kylän kaikista taloista oltiin ulkoniityillä, niin ettei
muutamissa taloissa ollut kuin joku vanha vaari tai mummo
kotosalla. Talossa ei ollut koko viikkona ketään käynyt, sillä
poutaisena heinäaikana oli kaikilla kiire. Poikansa kanssa oli emäntä
saanut olla kahden.

*****

On jo hyvin myöhäinen, ja elokuun hämy on siksi tuntuva, ettei


kukaan tuntisi, jos näkisikin, kun Portaankorvan emäntä soutaa joen
poikki Suomen puolelle. Oskari istuu kalpeana veneen keskituhdolla,
emännän soutaessa etuteljolla. Kaikki on äiti pojalleen sanonut mitä
tietää, kaikki opastanut…

Ja nyt vielä puhuu:

»Se sormus anna, se on hänen, ja sano: äiti lähetti, ja se kirje


sitten. Kyllä tuntee sinut, omakseen ottaa, poikanaan pitää, rauhassa
olla saat, koulua kulkea. Ei ole henkeäsi vaanimassa räkänokka mies,
tyly ja sydämetön… Ja vielä sano: aina rakastan, aina muistan! Aina
on mielessä ollut, ei hetkeksikään unhottunut!»

Ei tule Karoliinan silmiin kyyneleitä, sillä hän on liian kiihdyksissä.


Hän vetää tuimasti airoja, ja joka veneenpituus vie lähemmäksi
vapautta. Mutta joka hetki kuitenkin tuntuu kuin jostakin vaara
uhkaisi… joku este vielä väliin joutuisi… Mutta ei kuulu, ei näy
mitään… Ruotsin puolen ranta jo jääpi hämyn sekaan, rantatörmä
lakkaa erottumasta, ja metsä kasvaa kiinni illan hämärään… Hän
kiskoo airoja, pitkään hengittäen ja silmien tähystellessä ympärille…
Jo erottaa suomenpuolisen rantatörmän, veneen keula kolahtaa
kiveen… kohta… kohta!

Vielä ehtii hän pojalle sanoa:

»Muistatko äitiä ja rakastatko?»


»Muistan ja rakastan…»

Vene saapuu rantaan. Siinä on vastassa vanha mies, joka ottaa


veneen keulasta kiinni ja vetää maalle. Se on Vankan Aapo,
Karoliinan ainoa uskottu ja apumies.

»Kaikki on valmiina, ja joka talossa nukutaan», sanoo hiljaisella


äänellä Aapo.

Karoliina suutelee vielä kerran poikaansa, vielä muistuttaa


tärkeimmistä asioista.

Ja Oskari lähtee Vankan Aapon kanssa nousemaan tielle, jossa


hevonen vartoo.

Ei liikahda Karoliina veneen luota, mutta korva on terävänä kuin


nuoli. Joka askeleen kuulee poistuvien kävelystä… kuulee kuinka
tulevat tielle… Nyt nousee Oskari kärryihin… nyt kiipeää Aapo
perässä… Hiljainen, tuskin rantaan kantava rattaiden kolina ilmaisee,
että nyt ovat liikkeellä… nyt sivuuttavat jo ensimmäiset talot…
Kuuluu jo kovempi kärryjen päry… pian ovat kylän päässä… siitä
alkaa taival, metsäinen, asumaton…

Karoliina kuulee rattaitten rytinän, kuulee oman sydämensä


jyskeen ja seisoo yhä, liikahtamatta, melkein kuin ei tietäisi tai
käsittäisi, että hän siinä seisoo ja Oskari poistuu…

Mutta kärryjen ääni lakkaa kuulumasta. Karoliina herää, ja ääretön


riemun tunne täyttää hänen sydämensä.

Poika on pelastettu… tulkoon… käyköön nyt kuinka tahansa!


Hän seisoo vielä, korva ei enää niin kuuntele, mutta sydän jyskää
ja riemu pauhaa hänessä, niin että ruumis värisee…

— Pelastettu! Poikani! Poikani!

Ilta yhä pimenee, päivän kajastus on sammunut, taivas käynyt


pilveen…
Ei kuulu liikettä maalta eikä joelta, ei mistään päin…

Nyt hän kuulee Isonkosken kohinan, joka tuntuu olevan vallan


likellä…

Huutaako riemullisesti vai tuskallisestiko?

Karoliina kuuntelee. Tohisee… tohisee… on väliin kuin riemastuisi,


väliin kuin valittaisi…

»Ei valitusta, ei valitusta!»

Hän työntää veneen vesille ja lähtee soutamaan takaisin Ruotsin


puolelle. Hän ei ajattele mitään selvästi eikä loppuun, tuntuu vain
hyvältä olla. Ei paina mikään eikä sydämessä pakota. Ei ajattele
tulevaisuutta eikä menneisyyttä. On vain nyt niin hyvä olla.

Mutta puolijoessa hän muistaa Oskarin vanhat vaatteet, jotka ovat


jääneet veneeseen, kun on uudet pojan ylle pukenut. Hän kokoaa ne
yhteen myttyyn ja heittää myötävirralle…

Koski huutaa nyt kuin riemuissaan, Karoliina soutaa lujasti, ja pian


vene töksähtää Ruotsin rantatörmään.

Hän lähtee nousemaan rantapolulle ja kävelee sitä pitkin, saapuen


saunalle. Siinä seisahtuu ja katselee virran veteen, joka nyt hohtaa
mustalta. Hän ei jaksa ajatella mitään. Päässä tuntuu olevan kaikki
sekaisin, ja ruumis tuntuu kihelmöivän joka paikasta. Tuntuu, että
jalat tärisevät, ja käsissä on kuin suonenveto.

Niin tulee hän kuin tietämättään taloon, nousee kuistille, lyö ovet
lukkoon ja menee sisälle. Hän saa pirtissä kynttilän palamaan ja nyt
hän taas jaksaa ajatella ja tuntee tointuvansa.

Mutta juuri kun hän on alkanut selvästi ajatella, kuuluu pihalta


puhelua ja niittyneuvojen kolinaa. Hän arvaa, että niittymiehet ovat
tulleet, ja pannen kaiken voimansa liikkeelle nousee hän avaamaan
tulijoille kuistin ovea.

Väki onkin hyvien poutien vallitessa ehtinyt saada niityn tehdyksi


päivää ennen kuin tavallisesti.

Isäntä on hyvällä tuulella eikä hoksaa kysyä, miksi emäntä valvoo


näin yöllä. Muistaa kuitenkin poikaansa ja sanoo:

»Oskari on tietenkin jo nukkumassa… Antaapa pojan rauhassa


maata…
Huomenna aiotaankin tuumailla kouluun lähtöä.»

Isäntä ei huomaa emännässä mitään muutosta eikä varro


emännän vastauksia. Puhelee sitä, tätä.

Mutta Mantan katse viipyy kauan emännässä, jonka silmissä palaa


niin kummallinen, outo tuli. Semmoisena Manta ei muista emäntää
ennen nähneensä.
XII

Aamu vaikeni kirkkaana, kastehelmisenä ja lämpöisenä. Öinen usva


laskeusi maille ja vesille. Suuri, sininen taivas oli pilvetön.

Portaankorvan isäntä oli aikaisin liikkeellä.

Hän oli kahdesti kysynyt emännältä Oskaria, mutta ei ollut saanut


mitään vastaukseksi. Mutta kun hän kolmannen kerran kysyi eikä
emäntä sittenkään vastannet, luuli hän pojan vielä nukkuvan ja riensi
emännän makuukamariin.

Kummankin vuode oli tyhjä, eikä niissä näyttänyt kukaan


nukkuneenkaan.

Olisiko poika Väylänpäässä kyläilemässä?

Hän arveli niin olevan ja meni pirttiin. Rengit ja kesämies istuivat


penkillä, vielä väsyneinä raskaasta työstä. Emäntä seisoi selin, joelle
katsellen. Yhtäkkiä leimahti isännän viha, ja hän karjaisi:

»Missä Oskari on? Oletko päästänyt hänet Väylänpäähän, vaikka


kielsin?»
Emäntä kääntyi nyt pirtissä olijoihin päin. Hän oli tuhkanharmaa
kasvoiltaan, ja silmät paloivat kuin tulen liekki. Ei kukaan ollut häntä
sellaisena nähnyt. Mutta isäntä ei häneen katsonutkaan.

»Missä poika on?» karjaisi hän uudelleen, niin että pirtti jymisi.

»Olipa missä hyvänsä… Mitä sinä hänestä…»

Emännän ääni tuntui soinnuttomalta, ja hän oli kalpea kuin


kuolema.

Siinä samassa syöksyi Manta pirttiin, Oskarin vettätippuva arkilakki


kädessä.

»Hyvä Jumala! Mihin Oskari on joutunut, kun lakki löytyi padon


päältä?»

Miehet ja isäntä riensivät lakkia tunnustelemaan, mutta emäntä ei


liikahtanut paikaltaan.

Se oli Oskarin lakki.

»Missä on poikani? Mitä olet, onneton, tehnyt pojalleni?»

Isännän silmät pyörivät kuin mielipuolen päässä.

»Sinunko poikasi», sanoi emäntä nyt pitkään ja pilkallisesti. »Sinun


poikasi! Etkö tiedä, että se poika on paremmista paikoista
lähtöisin…»

»Mitä sinä puhut?» sähähti isäntä ja tarttui ensimmäiseen


esineeseen, joka hänen eteensä sattui.
Mutta silloin emäntä singahti kuin luoti keskelle lattiaa, ja
vuosikausia hillitty viha syöksyi kauhealla pauhulla lähteistään. Kuin
hullu hän asettui isännän eteen, heristi nyrkkiään ja kiljaisi:

»Sinunko poikasi! Etkö sinä vaivainen räkänokka ymmärrä, ettet


sinä semmoista poikaa ole ikänäsi saanut… Minun on poikani…»

Isännän häntä kohti heittämä jakkara lensi sivuikkunasta ulos,


hipaisten emännän ohimoa.

Silloin isäntä alkoi hakea uutta asetta. Miehet nousivat seisomaan,


ja
Manta huusi.

Emäntä ponnahti pystyyn lattialta, johon oli kaatunut, ja syöksyi


ovesta ulos juuri kun isännän tähtäämä kirves lensi ovipieleen…

Miehet kävivät isäntään kiinni, mutta hän heitti heidät syrjään ja


kasvoillaan hirmuinen vimma rynnisti emännän perään. Miehet
riensivät jälkeen.

Emäntä juoksi jo lähellä saunaa, avopäin, tuuhea tukka hulmuten


tuulessa…

»Herra Jumala! Herra Jumala!» huusi Manta ja juoksi ohi miesten,


saavutti isännänkin ja juoksi hänen edelleen…

Miehet näkivät emännän rientävän saunalle, porhaltavan


pysähtymättä padolle ja suistuvan pää edellä virtaan…

Isäntä ehti juuri saunalle ja Manta törmän alle — kun kuulivat


kimakan parkaisun ja näkivät emännän uppoavan…
Aapeli töksähti istualleen kuin salaman satuttamana, silmät
ummessa.

Manta juoksi padolle ja miehet rannalle mihin ehtivät.

Keskellä jokea, jo alempana, he näkivät ihmiskäden nousevan


virrasta, liikkuvan kuin apuun pyytäen…

»Lautta tulee!» huudettiin Mantalle.

Suuri tukkilautta oli tulossa korvan yläpuolelta. Se oli joutunut


väärälle reitille ja tuli epäilemättä törmäämään patoon… Manta älysi
vaaran, ja juuri kun hän ehti ensimmäiselle rantakivelle, rysähti
lautta koko painollaan patoa vasten, nostaen sen kokonaan kohoksi
pohjasta asti ja painaen alleen… Hetken päästä se jo kulki siinä
kohden, missä emännän käsi oli pinnalle noussut.

Aapeli istui retkallaan kivellä, kädet silmillä.

Manta nousi törmälle. Hän näki lautan vihaista vauhtia painuvan


Isoonkoskeen, joka aamuvarhaisella huusi ja ulvoi…

Kun lautta oli kadonnut näkyvistä ja kosken ulvonta kuin hiljennyt,


ymmärsi Manta, että se peto nyt oli saanut kitaansa hänet, jota
toistakymmentä vuotta oli houkutellut…

Padon paikalla pyöri virta vaahtoisena, valkoisia pyöryläisiä


seljemmäksi kuljetellen.
*** END OF THE PROJECT GUTENBERG EBOOK PORTAANKORVAN
EMÄNTÄ ***

Updated editions will replace the previous one—the old editions will
be renamed.

Creating the works from print editions not protected by U.S.


copyright law means that no one owns a United States copyright in
these works, so the Foundation (and you!) can copy and distribute it
in the United States without permission and without paying
copyright royalties. Special rules, set forth in the General Terms of
Use part of this license, apply to copying and distributing Project
Gutenberg™ electronic works to protect the PROJECT GUTENBERG™
concept and trademark. Project Gutenberg is a registered trademark,
and may not be used if you charge for an eBook, except by following
the terms of the trademark license, including paying royalties for use
of the Project Gutenberg trademark. If you do not charge anything
for copies of this eBook, complying with the trademark license is
very easy. You may use this eBook for nearly any purpose such as
creation of derivative works, reports, performances and research.
Project Gutenberg eBooks may be modified and printed and given
away—you may do practically ANYTHING in the United States with
eBooks not protected by U.S. copyright law. Redistribution is subject
to the trademark license, especially commercial redistribution.

START: FULL LICENSE


THE FULL PROJECT GUTENBERG LICENSE
PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK

To protect the Project Gutenberg™ mission of promoting the free


distribution of electronic works, by using or distributing this work (or
any other work associated in any way with the phrase “Project
Gutenberg”), you agree to comply with all the terms of the Full
Project Gutenberg™ License available with this file or online at
www.gutenberg.org/license.

Section 1. General Terms of Use and


Redistributing Project Gutenberg™
electronic works
1.A. By reading or using any part of this Project Gutenberg™
electronic work, you indicate that you have read, understand, agree
to and accept all the terms of this license and intellectual property
(trademark/copyright) agreement. If you do not agree to abide by all
the terms of this agreement, you must cease using and return or
destroy all copies of Project Gutenberg™ electronic works in your
possession. If you paid a fee for obtaining a copy of or access to a
Project Gutenberg™ electronic work and you do not agree to be
bound by the terms of this agreement, you may obtain a refund
from the person or entity to whom you paid the fee as set forth in
paragraph 1.E.8.

1.B. “Project Gutenberg” is a registered trademark. It may only be


used on or associated in any way with an electronic work by people
who agree to be bound by the terms of this agreement. There are a
few things that you can do with most Project Gutenberg™ electronic
works even without complying with the full terms of this agreement.
See paragraph 1.C below. There are a lot of things you can do with
Project Gutenberg™ electronic works if you follow the terms of this
agreement and help preserve free future access to Project
Gutenberg™ electronic works. See paragraph 1.E below.
1.C. The Project Gutenberg Literary Archive Foundation (“the
Foundation” or PGLAF), owns a compilation copyright in the
collection of Project Gutenberg™ electronic works. Nearly all the
individual works in the collection are in the public domain in the
United States. If an individual work is unprotected by copyright law
in the United States and you are located in the United States, we do
not claim a right to prevent you from copying, distributing,
performing, displaying or creating derivative works based on the
work as long as all references to Project Gutenberg are removed. Of
course, we hope that you will support the Project Gutenberg™
mission of promoting free access to electronic works by freely
sharing Project Gutenberg™ works in compliance with the terms of
this agreement for keeping the Project Gutenberg™ name associated
with the work. You can easily comply with the terms of this
agreement by keeping this work in the same format with its attached
full Project Gutenberg™ License when you share it without charge
with others.

1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.

1.E. Unless you have removed all references to Project Gutenberg:

1.E.1. The following sentence, with active links to, or other


immediate access to, the full Project Gutenberg™ License must
appear prominently whenever any copy of a Project Gutenberg™
work (any work on which the phrase “Project Gutenberg” appears,
or with which the phrase “Project Gutenberg” is associated) is
accessed, displayed, performed, viewed, copied or distributed:
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.

1.E.2. If an individual Project Gutenberg™ electronic work is derived


from texts not protected by U.S. copyright law (does not contain a
notice indicating that it is posted with permission of the copyright
holder), the work can be copied and distributed to anyone in the
United States without paying any fees or charges. If you are
redistributing or providing access to a work with the phrase “Project
Gutenberg” associated with or appearing on the work, you must
comply either with the requirements of paragraphs 1.E.1 through
1.E.7 or obtain permission for the use of the work and the Project
Gutenberg™ trademark as set forth in paragraphs 1.E.8 or 1.E.9.

1.E.3. If an individual Project Gutenberg™ electronic work is posted


with the permission of the copyright holder, your use and distribution
must comply with both paragraphs 1.E.1 through 1.E.7 and any
additional terms imposed by the copyright holder. Additional terms
will be linked to the Project Gutenberg™ License for all works posted
with the permission of the copyright holder found at the beginning
of this work.

1.E.4. Do not unlink or detach or remove the full Project


Gutenberg™ License terms from this work, or any files containing a
part of this work or any other work associated with Project
Gutenberg™.

1.E.5. Do not copy, display, perform, distribute or redistribute this


electronic work, or any part of this electronic work, without
prominently displaying the sentence set forth in paragraph 1.E.1
with active links or immediate access to the full terms of the Project
Gutenberg™ License.

1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.

1.E.7. Do not charge a fee for access to, viewing, displaying,


performing, copying or distributing any Project Gutenberg™ works
unless you comply with paragraph 1.E.8 or 1.E.9.

1.E.8. You may charge a reasonable fee for copies of or providing


access to or distributing Project Gutenberg™ electronic works
provided that:

• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”

• You provide a full refund of any money paid by a user who


notifies you in writing (or by e-mail) within 30 days of receipt
that s/he does not agree to the terms of the full Project
Gutenberg™ License. You must require such a user to return or
destroy all copies of the works possessed in a physical medium
and discontinue all use of and all access to other copies of
Project Gutenberg™ works.

• You provide, in accordance with paragraph 1.F.3, a full refund of


any money paid for a work or a replacement copy, if a defect in
the electronic work is discovered and reported to you within 90
days of receipt of the work.

• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.

1.E.9. If you wish to charge a fee or distribute a Project Gutenberg™


electronic work or group of works on different terms than are set
forth in this agreement, you must obtain permission in writing from
the Project Gutenberg Literary Archive Foundation, the manager of
the Project Gutenberg™ trademark. Contact the Foundation as set
forth in Section 3 below.

1.F.

1.F.1. Project Gutenberg volunteers and employees expend


considerable effort to identify, do copyright research on, transcribe
and proofread works not protected by U.S. copyright law in creating
the Project Gutenberg™ collection. Despite these efforts, Project
Gutenberg™ electronic works, and the medium on which they may
be stored, may contain “Defects,” such as, but not limited to,
incomplete, inaccurate or corrupt data, transcription errors, a
copyright or other intellectual property infringement, a defective or
damaged disk or other medium, a computer virus, or computer
codes that damage or cannot be read by your equipment.

1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for


the “Right of Replacement or Refund” described in paragraph 1.F.3,
the Project Gutenberg Literary Archive Foundation, the owner of the
Project Gutenberg™ trademark, and any other party distributing a
Project Gutenberg™ electronic work under this agreement, disclaim
all liability to you for damages, costs and expenses, including legal
fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR
NEGLIGENCE, STRICT LIABILITY, BREACH OF WARRANTY OR
BREACH OF CONTRACT EXCEPT THOSE PROVIDED IN PARAGRAPH
1.F.3. YOU AGREE THAT THE FOUNDATION, THE TRADEMARK
OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL
NOT BE LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT,
CONSEQUENTIAL, PUNITIVE OR INCIDENTAL DAMAGES EVEN IF
YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH DAMAGE.

1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you


discover a defect in this electronic work within 90 days of receiving
it, you can receive a refund of the money (if any) you paid for it by
sending a written explanation to the person you received the work
from. If you received the work on a physical medium, you must
return the medium with your written explanation. The person or
entity that provided you with the defective work may elect to provide
a replacement copy in lieu of a refund. If you received the work
electronically, the person or entity providing it to you may choose to
give you a second opportunity to receive the work electronically in
lieu of a refund. If the second copy is also defective, you may
demand a refund in writing without further opportunities to fix the
problem.

1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of damages.
If any disclaimer or limitation set forth in this agreement violates the
law of the state applicable to this agreement, the agreement shall be
interpreted to make the maximum disclaimer or limitation permitted
by the applicable state law. The invalidity or unenforceability of any
provision of this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation,


the trademark owner, any agent or employee of the Foundation,
anyone providing copies of Project Gutenberg™ electronic works in
accordance with this agreement, and any volunteers associated with
the production, promotion and distribution of Project Gutenberg™
electronic works, harmless from all liability, costs and expenses,
including legal fees, that arise directly or indirectly from any of the
following which you do or cause to occur: (a) distribution of this or
any Project Gutenberg™ work, (b) alteration, modification, or
additions or deletions to any Project Gutenberg™ work, and (c) any
Defect you cause.

Section 2. Information about the Mission


of Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new computers.
It exists because of the efforts of hundreds of volunteers and
donations from people in all walks of life.

Volunteers and financial support to provide volunteers with the


assistance they need are critical to reaching Project Gutenberg™’s
goals and ensuring that the Project Gutenberg™ collection will
remain freely available for generations to come. In 2001, the Project
Gutenberg Literary Archive Foundation was created to provide a
secure and permanent future for Project Gutenberg™ and future
generations. To learn more about the Project Gutenberg Literary
Archive Foundation and how your efforts and donations can help,
see Sections 3 and 4 and the Foundation information page at
www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-profit
501(c)(3) educational corporation organized under the laws of the
state of Mississippi and granted tax exempt status by the Internal
Revenue Service. The Foundation’s EIN or federal tax identification
number is 64-6221541. Contributions to the Project Gutenberg
Literary Archive Foundation are tax deductible to the full extent
permitted by U.S. federal laws and your state’s laws.

The Foundation’s business office is located at 809 North 1500 West,


Salt Lake City, UT 84116, (801) 596-1887. Email contact links and up
to date contact information can be found at the Foundation’s website
and official page at www.gutenberg.org/contact

Section 4. Information about Donations to


the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission of
increasing the number of public domain and licensed works that can
be freely distributed in machine-readable form accessible by the
widest array of equipment including outdated equipment. Many
small donations ($1 to $5,000) are particularly important to
maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws regulating


charities and charitable donations in all 50 states of the United
States. Compliance requirements are not uniform and it takes a
considerable effort, much paperwork and many fees to meet and
keep up with these requirements. We do not solicit donations in
locations where we have not received written confirmation of
compliance. To SEND DONATIONS or determine the status of
compliance for any particular state visit www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states where


we have not met the solicitation requirements, we know of no
prohibition against accepting unsolicited donations from donors in
such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot make


any statements concerning tax treatment of donations received from
outside the United States. U.S. laws alone swamp our small staff.

Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.

Section 5. General Information About


Project Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could be
freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose network of
volunteer support.
Project Gutenberg™ eBooks are often created from several printed
editions, all of which are confirmed as not protected by copyright in
the U.S. unless a copyright notice is included. Thus, we do not
necessarily keep eBooks in compliance with any particular paper
edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg Literary
Archive Foundation, how to help produce our new eBooks, and how
to subscribe to our email newsletter to hear about new eBooks.

You might also like