0% found this document useful (0 votes)
21 views22 pages

Programming For Absolute Beginners: Using The Javascript Programming Language 1St Edition Jonathan Bartlett Download

The document is an overview of the book 'Programming for Absolute Beginners: Using the JavaScript Programming Language' by Jonathan Bartlett, which aims to introduce programming concepts to beginners using JavaScript. It includes a table of contents outlining various chapters covering topics such as computer history, data communication, HTML, CSS, and JavaScript fundamentals. Additionally, it provides links to other related programming books and resources.

Uploaded by

iosobandiko
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views22 pages

Programming For Absolute Beginners: Using The Javascript Programming Language 1St Edition Jonathan Bartlett Download

The document is an overview of the book 'Programming for Absolute Beginners: Using the JavaScript Programming Language' by Jonathan Bartlett, which aims to introduce programming concepts to beginners using JavaScript. It includes a table of contents outlining various chapters covering topics such as computer history, data communication, HTML, CSS, and JavaScript fundamentals. Additionally, it provides links to other related programming books and resources.

Uploaded by

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

Programming for Absolute Beginners: Using the

JavaScript Programming Language 1st Edition


Jonathan Bartlett download

https://ebookmeta.com/product/programming-for-absolute-beginners-
using-the-javascript-programming-language-1st-edition-jonathan-
bartlett/

Download more ebook from https://ebookmeta.com


We believe these products will be a great fit for you. Click
the link to download now, or visit ebookmeta.com
to discover even more!

C# Programming For Absolute Beginners Radek Vystavel

https://ebookmeta.com/product/c-programming-for-absolute-
beginners-radek-vystavel/

macOS Programming for Absolute Beginners: Developing


Apps Using Swift and Xcode Wang

https://ebookmeta.com/product/macos-programming-for-absolute-
beginners-developing-apps-using-swift-and-xcode-wang/

C# Programming For Absolute Beginners 2nd Edition Radek


Vystavel

https://ebookmeta.com/product/c-programming-for-absolute-
beginners-2nd-edition-radek-vystavel/

Excel Formulas Functions For Dummies 6th Edition


Bluttman

https://ebookmeta.com/product/excel-formulas-functions-for-
dummies-6th-edition-bluttman/
Alpha Consumed The Dixon Brothers 2 1st Edition Olivia
T Turner

https://ebookmeta.com/product/alpha-consumed-the-dixon-
brothers-2-1st-edition-olivia-t-turner/

Chief of Staff: Twenty-Five Years of Managing the


Presidency Samuel Kernell (Editor)

https://ebookmeta.com/product/chief-of-staff-twenty-five-years-
of-managing-the-presidency-samuel-kernell-editor/

The Handbook for Evidence Based Practice in


Communication Disorders 1st Edition Chris A Dollaghan

https://ebookmeta.com/product/the-handbook-for-evidence-based-
practice-in-communication-disorders-1st-edition-chris-a-
dollaghan/

Digital Supply Chains: Key Facilitator to Industry 4.0


and New Business Models, Leveraging S/4 HANA and Beyond
Third Edition Götz G. Wehberg

https://ebookmeta.com/product/digital-supply-chains-key-
facilitator-to-industry-4-0-and-new-business-models-
leveraging-s-4-hana-and-beyond-third-edition-gotz-g-wehberg/

Networks of Touch: A Tactile History of Chinese Art,


1790–1840 (Perspectives on Sensory History) 1st Edition
Hatch

https://ebookmeta.com/product/networks-of-touch-a-tactile-
history-of-chinese-art-1790-1840-perspectives-on-sensory-
history-1st-edition-hatch/
Social Theory Classical and Contemporary A Critical
Perspective 1st Edition Berch Berberoglu

https://ebookmeta.com/product/social-theory-classical-and-
contemporary-a-critical-perspective-1st-edition-berch-berberoglu/
Programming for
Absolute Beginners
Using the JavaScript
Programming Language

Jonathan Bartlett
Programming for Absolute Beginners: Using the JavaScript Programming Language
Jonathan Bartlett
Tulsa, OK, USA

ISBN-13 (pbk): 978-1-4842-8750-7 ISBN-13 (electronic): 978-1-4842-8751-4


https://doi.org/10.1007/978-1-4842-8751-4
Copyright © 2023 by Jonathan Bartlett
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Steve Anglin
Development Editor: James Markham
Coordinating Editor: Mark Powers
Cover designed by eStudioCalamar
Cover image by Fullvector on Freepik (www.freepik.com)
Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza, New York, NY 10004,
U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit www.
springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science +
Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for reprint,
paperback, or audio rights, please e-mail [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub (https://github.com/Apress). For more detailed information, please visit http://www.
apress.com/source-­code.
Printed on acid-free paper
Most good programmers do programming not because
they expect to get paid or get adulation by the public,
but because it is fun to program.

—Linus Torvalds
Table of Contents
About the Author����������������������������������������������������������������������������������������������������� xi

About the Technical Reviewer������������������������������������������������������������������������������� xiii

Acknowledgments���������������������������������������������������������������������������������������������������xv

Chapter 1: Introduction�������������������������������������������������������������������������������������������� 1
1.1 What You Will Learn����������������������������������������������������������������������������������������������������������������� 1
1.2 How to Use This Book������������������������������������������������������������������������������������������������������������� 3
1.3 For Younger Programmers������������������������������������������������������������������������������������������������������ 4

Part I: Computers, Data, and Communication.................................................. 5


Chapter 2: A Short History of Computers����������������������������������������������������������������� 7
2.1 The Prehistory of Computers�������������������������������������������������������������������������������������������������� 7
2.2 The Idea of a Computer����������������������������������������������������������������������������������������������������������� 9
2.3 The Age of the Computer������������������������������������������������������������������������������������������������������ 10
2.4 Computers in the Age of Networks��������������������������������������������������������������������������������������� 13
2.4.1 Review�������������������������������������������������������������������������������������������������������������������������� 14
2.4.2 Apply What You Have Learned�������������������������������������������������������������������������������������� 15

Chapter 3: How Computers Communicate�������������������������������������������������������������� 17


3.1 The Layers of Internet Communication��������������������������������������������������������������������������������� 19
3.2 Communicating Using HTTP�������������������������������������������������������������������������������������������������� 22
3.3 Connecting with a Remote Server Manually������������������������������������������������������������������������� 26
3.4 How Computers Are Located on the Internet������������������������������������������������������������������������ 27
3.4.1 Review�������������������������������������������������������������������������������������������������������������������������� 29
3.4.2 Apply What You Have Learned�������������������������������������������������������������������������������������� 29

v
Table of Contents

Chapter 4: How a Computer Looks at Data������������������������������������������������������������� 31


4.1 What Computer Memory Looks Like������������������������������������������������������������������������������������� 32
4.2 Using Numbers to Represent Data���������������������������������������������������������������������������������������� 35
4.3 Sequences in Data���������������������������������������������������������������������������������������������������������������� 37
4.4 Using Numbers to Represent Letters������������������������������������������������������������������������������������ 38
4.5 What Is a File Format?���������������������������������������������������������������������������������������������������������� 40
4.5.1 Review�������������������������������������������������������������������������������������������������������������������������� 42
4.5.2 Apply What You Have Learned�������������������������������������������������������������������������������������� 43

Chapter 5: How Computers Work��������������������������������������������������������������������������� 45


5.1 Parts of a Computer�������������������������������������������������������������������������������������������������������������� 46
5.2 A Simplified Paper Machine Simulation�������������������������������������������������������������������������������� 48
5.3 A Short Program: Multiplying by 2���������������������������������������������������������������������������������������� 5 2
5.3.1 Setting Up the Simulation��������������������������������������������������������������������������������������������� 53
5.3.2 Running the Simulation������������������������������������������������������������������������������������������������ 53
5.4 Adding a List of Numbers������������������������������������������������������������������������������������������������������ 56
5.5 Machine Opcode Tables�������������������������������������������������������������������������������������������������������� 60
5.5.1 Review�������������������������������������������������������������������������������������������������������������������������� 65
5.5.2 Apply What You Have Learned�������������������������������������������������������������������������������������� 66

Part II: Basic Ingredients for Web Programming........................................... 67


Chapter 6: The HTML File Format��������������������������������������������������������������������������� 69
6.1 A Quick Introduction to HTML����������������������������������������������������������������������������������������������� 69
6.2 The Parts of an HTML Document������������������������������������������������������������������������������������������� 72
6.3 Adding Attributes to Tags������������������������������������������������������������������������������������������������������ 76
6.4 Tags That Refer to Other Documents������������������������������������������������������������������������������������ 76
6.5 Relative URLs������������������������������������������������������������������������������������������������������������������������ 80
6.6 Other HTML Features������������������������������������������������������������������������������������������������������������ 81
6.6.1 Entities�������������������������������������������������������������������������������������������������������������������������� 81
6.6.2 Lists������������������������������������������������������������������������������������������������������������������������������ 82
6.6.3 Table Tags��������������������������������������������������������������������������������������������������������������������� 82
6.6.4 Form Tags��������������������������������������������������������������������������������������������������������������������� 84
vi
Table of Contents

6.6.5 Standard Attributes������������������������������������������������������������������������������������������������������ 85


6.6.6 Comments, Declarations, Processing Instructions, and CDATA Blocks������������������������� 86
6.6.7 Review�������������������������������������������������������������������������������������������������������������������������� 88
6.6.8 Apply What You Have Learned�������������������������������������������������������������������������������������� 89

Chapter 7: Introduction to Cascading Style Sheets������������������������������������������������ 91


7.1 The Origin of Cascading Style Sheets����������������������������������������������������������������������������������� 91
7.2 The Structure of a CSS Document����������������������������������������������������������������������������������������� 93
7.3 Understanding Selectors������������������������������������������������������������������������������������������������������� 95
7.4 The CSS Box Model��������������������������������������������������������������������������������������������������������������� 98
7.5 Other Capabilities of CSS���������������������������������������������������������������������������������������������������� 101
7.5.1 Review������������������������������������������������������������������������������������������������������������������������ 101
7.5.2 Apply What You Have Learned������������������������������������������������������������������������������������ 102

Chapter 8: Your First JavaScript Program������������������������������������������������������������ 105


8.1 A Short History of JavaScript���������������������������������������������������������������������������������������������� 105
8.2 A Simple JavaScript Program��������������������������������������������������������������������������������������������� 107
8.3 Moving the JavaScript to Its Own File��������������������������������������������������������������������������������� 112
8.3.1 Review������������������������������������������������������������������������������������������������������������������������ 114
8.3.2 Apply What You Have Learned������������������������������������������������������������������������������������ 115

Part III: JavaScript Fundamentals............................................................... 117


Chapter 9: Basic JavaScript Syntax��������������������������������������������������������������������� 119
9.1 Elements of Syntax������������������������������������������������������������������������������������������������������������� 119
9.2 Assignment Statements������������������������������������������������������������������������������������������������������ 121
9.3 Control Structures��������������������������������������������������������������������������������������������������������������� 123
9.3.1 The if Statement��������������������������������������������������������������������������������������������������������� 123
9.3.2 The while Statement��������������������������������������������������������������������������������������������������� 126
9.3.3 The for Statement������������������������������������������������������������������������������������������������������� 128
9.3.4 Review������������������������������������������������������������������������������������������������������������������������ 130
9.3.5 Apply What You Have Learned������������������������������������������������������������������������������������ 131

vii
Table of Contents

Chapter 10: Introducing Functions and Scope����������������������������������������������������� 133


10.1 Your First Function������������������������������������������������������������������������������������������������������������ 134
10.2 More Function Examples��������������������������������������������������������������������������������������������������� 136
10.3 Functions Calling Functions���������������������������������������������������������������������������������������������� 138
10.4 Variable Scopes����������������������������������������������������������������������������������������������������������������� 138
10.4.1 Review���������������������������������������������������������������������������������������������������������������������� 141
10.4.2 Apply What You Have Learned���������������������������������������������������������������������������������� 142

Chapter 11: Grouping Values Together with Objects and Arrays�������������������������� 145
11.1 A Basic Introduction to Objects����������������������������������������������������������������������������������������� 146
11.2 Simplifying Object Creation����������������������������������������������������������������������������������������������� 149
11.3 Storing Sequences of Values Using Arrays����������������������������������������������������������������������� 150
11.4 Using Arrays in Programs�������������������������������������������������������������������������������������������������� 151
11.5 Mixing Objects and Arrays������������������������������������������������������������������������������������������������ 154
11.6 Object Methods����������������������������������������������������������������������������������������������������������������� 156
11.6.1 Review���������������������������������������������������������������������������������������������������������������������� 159
11.6.2 Apply What You Have Learned���������������������������������������������������������������������������������� 160

Chapter 12: Interacting with Web Pages�������������������������������������������������������������� 161


12.1 Using the JavaScript Console������������������������������������������������������������������������������������������� 161
12.2 Finding and Modifying Web Page Elements���������������������������������������������������������������������� 163
12.3 Creating New HTML Elements������������������������������������������������������������������������������������������ 165
12.4 Communicating with Input Fields������������������������������������������������������������������������������������� 166
12.5 Adding Functionality to Buttons���������������������������������������������������������������������������������������� 169
12.6 Putting It All Together�������������������������������������������������������������������������������������������������������� 170
12.7 Logging to the Console����������������������������������������������������������������������������������������������������� 172
12.7.1 Review���������������������������������������������������������������������������������������������������������������������� 174
12.7.2 Apply What You Have Learned���������������������������������������������������������������������������������� 175

viii
Table of Contents

Part IV: Intermediate JavaScript................................................................. 177


Chapter 13: Recursive Functions and the Stack��������������������������������������������������� 179
13.1 The Program Stack������������������������������������������������������������������������������������������������������������ 179
13.2 Local Variables in the Stack���������������������������������������������������������������������������������������������� 183
13.3 Recursive Functions���������������������������������������������������������������������������������������������������������� 188
13.3.1 Review���������������������������������������������������������������������������������������������������������������������� 192
13.3.2 Apply What You Have Learned���������������������������������������������������������������������������������� 193

Chapter 14: Manipulating Functions and Scopes������������������������������������������������� 195


14.1 Functions as Parameters to Functions������������������������������������������������������������������������������ 195
14.2 Functions That Return Functions�������������������������������������������������������������������������������������� 198
14.3 Functions That Create Functions�������������������������������������������������������������������������������������� 198
14.4 Currying Functions������������������������������������������������������������������������������������������������������������ 204
14.5 Anonymous Functions������������������������������������������������������������������������������������������������������� 205
14.5.1 Review���������������������������������������������������������������������������������������������������������������������� 206
14.5.2 Apply What You Have Learned���������������������������������������������������������������������������������� 207

Chapter 15: Intermediate Objects������������������������������������������������������������������������� 209


15.1 Attaching Functions to Objects����������������������������������������������������������������������������������������� 209
15.2 Using Objects Productively����������������������������������������������������������������������������������������������� 213
15.3 Constructing Objects��������������������������������������������������������������������������������������������������������� 215
15.3.1 Review���������������������������������������������������������������������������������������������������������������������� 216
15.3.2 Apply What You Have Learned���������������������������������������������������������������������������������� 217

Part V: Programming Applications.............................................................. 219


Chapter 16: Modernizing JavaScript�������������������������������������������������������������������� 221
16.1 Declaring Variables with let and const������������������������������������������������������������������������������ 221
16.2 Destructuring Assignments����������������������������������������������������������������������������������������������� 223
16.3 Accessing Properties with Strings������������������������������������������������������������������������������������ 225
16.4 Function Syntax��������������������������������������������������������������������������������������������������������������� 226
16.4.1 Review���������������������������������������������������������������������������������������������������������������������� 227
16.4.2 Apply What You Have Learned���������������������������������������������������������������������������������� 228

ix
Table of Contents

Chapter 17: Working with Remote Services (APIs)���������������������������������������������� 229


17.1 Getting an API Key������������������������������������������������������������������������������������������������������������� 230
17.2 JSON: The Language of Data��������������������������������������������������������������������������������������������� 231
17.3 Accessing the Network with JavaScript��������������������������������������������������������������������������� 232
17.4 The Query String��������������������������������������������������������������������������������������������������������������� 233
17.5 Interacting with a Web Page��������������������������������������������������������������������������������������������� 235
17.6 A Few Other Bits to Note��������������������������������������������������������������������������������������������������� 237
17.6.1 Review���������������������������������������������������������������������������������������������������������������������� 239
17.6.2 Apply What You Have Learned���������������������������������������������������������������������������������� 240

Chapter 18: Writing Server-Side JavaScript��������������������������������������������������������� 241


18.1 Programming Languages�������������������������������������������������������������������������������������������������� 241
18.2 Using JavaScript Outside of the Browser�������������������������������������������������������������������������� 242
18.3 A Small Web Service Using Node�������������������������������������������������������������������������������������� 243
18.4 Why We Need Frameworks����������������������������������������������������������������������������������������������� 244
18.5 Making Your Service Available������������������������������������������������������������������������������������������ 245
18.5.1 Review���������������������������������������������������������������������������������������������������������������������� 246
18.5.2 Apply What You Have Learned���������������������������������������������������������������������������������� 246

Chapter 19: Conclusion����������������������������������������������������������������������������������������� 249

Appendix A: Glossary�������������������������������������������������������������������������������������������� 251

Appendix B: Operating System and Browser Specifics���������������������������������������� 293


Appendix C: The JavaScript Toolbox on Docker��������������������������������������������������� 309

Appendix D: Character Encoding Issues��������������������������������������������������������������� 311

Appendix E: Additional Machine Language Programs������������������������������������������ 319

Index��������������������������������������������������������������������������������������������������������������������� 323

x
About the Author
Jonathan Bartlett is a software developer, researcher, and
writer. His first book, Programming from the Ground Up, has
been required reading in computer science programs from
DeVry to Princeton. He has been the sole or lead author for
eight books on topics ranging from computer programming
to calculus. He is a senior software developer for McElroy
Manufacturing, spearheading projects in web, mobile, and
embedded software. He is now the author of several Apress
books including Electronics for Beginners and more.

xi
About the Technical Reviewer
Germán González-Morris is a polyglot software architect/engineer with more than 20
years in the field, with knowledge in Java(EE), Spring, Haskell, C, Python, and JavaScript,
among others. He works with web-distributed applications. Germán loves math
puzzles (including reading Knuth) and swimming. He has tech-reviewed several books,
including an application container book (Weblogic), as well as titles covering various
programming languages (Haskell, Typescript, WebAssembly, Math for coders, and
regexp). You can find more details at his blog site (https://devwebcl.blogspot.com/)
or Twitter account (@devwebcl).

xiii
Acknowledgments
I want to take a moment and thank everyone who helped me write this book. First, I want
to thank those who read and appreciated my first programming book, Programming
from the Ground Up. The encouragement I received from that book has given me the
encouragement to continue writing and educating throughout the years.
Next, I want to thank my homeschool summer co-op class for being guinea pigs
for this material. Your questions, your successes, and your difficulties all informed the
writing of this book. You were both my motivation to write in the first place and the first
proving ground for the material.
I would also like to thank my family, my friends, and my church, all of whom are
essential parts of my life. Thanks especially to my wife who puts up with me when I am
too focused on my writing to notice what the kids have been up to or to put a stop to
whatever trouble they have found themselves in!

xv
CHAPTER 1

Introduction
The modern world is filled with computers. Computers run our phones, our cars, and
even our refrigerators. Computers manage our businesses, our calendars, and our social
lives. With the world relying on computers for so many functions, it is important to know
how these devices work. Even if you never need to program a computer yourself, chances
are that, at some point in your life, you will be involved with software development.
You may be an accountant who needs to tell a computer programmer how you want
your purchasing system set up. You may be an engineer who needs to describe your
engineering process so that a programmer can automate it. In all such tasks as these, it
is important to know something about how computers are programmed, even if you are
not personally writing the software.

1.1 What You Will Learn


When programming computers, a programmer uses a programming language to tell
the computer how to do something. Because computers are not intelligent beings, they
can’t understand ordinary human languages. Computers understand a type of language
called machine language, which will be discussed further in Chapter 5. Machine
languages are very different from the kind of languages ordinary people use. Therefore,
programming languages were developed to meet programmers halfway—they are more
humanlike than machine language and more machinelike than human language.
Numerous programming languages have been developed over the years. Some that
you may have heard of include Java, JavaScript, Ruby, Python, C#, Go, Rust, and Swift.
Although each language looks different, they are all trying to do the same task of helping
you to interface with the machine in a way that is friendlier and easier to manage than
machine language. In fact, most programming languages are geared around very similar
concepts, and some of them even look similar. Therefore, learning any programming
language will help you more easily learn any other programming language. I have rarely

1
© Jonathan Bartlett 2023
J. Bartlett, Programming for Absolute Beginners, https://doi.org/10.1007/978-1-4842-8751-4_1
Chapter 1 Introduction

hired people for my development team who already knew the programming language
that my team uses. If someone learns one programming language and practices until
they are good at it, then the effort to learn a new language is fairly minimal.
You may wonder why, if the languages are so similar, there are so many
programming languages to choose from. The fact is, when engineering anything, trade-­
offs have to be made. Sometimes in order to make one type of task easier, another type
of task has to be made harder. In my kitchen I have both a mixer and a blender. Both of
them operate on the same basic principles—you put food into the main container area,
an electric motor turns, and some attachment combines the food together. While these
tasks are very similar and operate on the same principles, there are many types of food
in the world and many ways that they need to be mixed, such that the mixer works better
for some tasks and the blender for others. Similarly, with programming languages, some
of them are better suited to different tasks. Also, the choice of programming language
is dependent on the programmer. Just as different types of cars suit the preferences and
tendencies of different types of drivers, so do different programming languages suit the
preferences and tendencies of different types of programmers. Because of these reasons,
there are numerous programming languages available for nearly any task you might
want to perform.
The programming language covered in this book is called JavaScript. I like to teach
JavaScript as a first language for several reasons. First of all, JavaScript was developed
to be a first language. One of the goals of the language was to make it easy for new
programmers to get started quickly. Even though JavaScript was designed to make
programming easier for new programmers, it is not any less powerful as a language.
Second, JavaScript has become the de facto programming language for website
interfaces. If you use a website that does anything besides link to other web pages,
JavaScript is probably involved. Therefore, learning JavaScript will have immediate
practical benefits in learning how the Web operates. Third, the tools for programming
JavaScript are available on every computer. You don’t need to download any special tools
to program JavaScript. If you have a computer with a web browser, you can program
JavaScript! Finally, JavaScript is very similar to other popular programming languages
such as C#, Java, and Swift. Therefore, knowing JavaScript will not only be immediately
beneficial for programming websites, it is also a language that makes it easy to transition
to other popular systems.
This book is for the first-time programmer. No prior programming experience is
assumed. This book does assume that you have a basic understanding of how to use your
computer and browse the Internet. That is all that you need!
2
Another Random Scribd Document
with Unrelated Content
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