Preface
A decade ago, the World Wide Web was nonexistent. Today, it is a pervasive part of our everyday lives. Web sites exist for every imaginable topic. The best sites are well-designed, easy to use, interactive, and error free. Since these sites typically include JavaScript scripts, Java applets, or Perl® scripts, creation of such sites requires programming.
Programming is not an obscure art form accessible only to computer science majors or hackers; it is a craft that shares many similarities with other crafts, such as woodworking, quilting, or model building. Mastery of any craft requires plenty of practice, the right tools, and knowledge of the vocabulary associated with the craft.
Practice is crucial because mastery of any craft depends upon experience. Throughout this book, readers are asked to think about the problem and a solution before they examine the code. Additionally, each chapter contains several practice exercises.
A programmer's key tool is the programming language used. Just as apprentices use simpler tools and techniques than do experienced craftpersons, a newcomer to programming will experience less frustration working in a simpler language. The book begins with the simplest of the web languages, HTML. This is only a mark-up language; the beginner learns to create simple, but static pages. The introduction of frames and images to HTML in chapters 5 and 6 produces visually appealing pages. These images were created with PhotoShop® (a commercial product available from Adobe Systems and not included with this text.) The book also covers three programming languages: JavaScript, Perl, and Java. Of the three programming languages discussed in this book, JavaScript is by far the easiest. The book also covers this language first, so that we can concentrate on learning programming fundamentals. Many of the concepts, vocabulary, and conventions that are introduced in the discussion of JavaScript apply to Perl and Java. Thus, learning the later languages will be easier.
An experienced programmer always wields an arsenal of testing techniques to ensure that pages are error free. These techniques are stressed throughout the book. Most web programming books do not discuss these techniques. Either they don't care, or they assume that the reader's code will work correctly.
As a teacher with more than twenty years experience, I know that programming can be a frustrating experience for beginners. It requires a level of accuracy and attention to detail that many of us initially lack. I believe in a progressive, hands-on approach. Any individual, if given clear instructions and visual examples, can learn to program. The examples chosen for the text cover a wide variety of topics. The book includes pages containing recipes, football terms, crossword puzzles, multilanguage dictionaries, suggestion boxes, opinion polls, Shakespearean quizzes, and bird identification pages. The examples are designed to rouse your interest and to encourage you to develop creative and imaginative web pages. I hope that you enjoy reading the book as much as I enjoyed writing it.
ACKNOWLEDGMENTS
First, I would like to thank the many students who helped class-test this book. Students in the Introduction to the Web class used drafts of Parts I and II. Computer Science students used drafts of Parts III and IV in upper-level courses. Special thanks to the Introduction to the Web instructors, Moreena Tiede, Paul Kapitza, and Roussanka Loukanova, for their many helpful suggestions.
I am also indebted to my office suite mates, Jorg Tiede, Lon Shapiro, and Chris Boucher. Jorg v patiently corrected my German in the several German-English pages. All my suite mates provided ongoing support for this project. Thanks also to Harold Grossman, Clemson University; Bert Lundy, Naval Postgraduate School; Scott Henninger, University of Nebraska; Rayford Vaughn, Mississippi State University; Marc Loy, Galileo Systems; and Jesse Heroes, University of Massachusetts, Lowell, who reviewed early drafts of this manuscript.
I would also like to thank our technical reviewers who took the time to review the manuscript: Harold C. Grossman, Computer Science Department, Clemson University; Berty Lundy, Computer Science Department, Naval Postgraduate School; Scott Henninger, University of Nebraska; Rayford B. Vaughn, Mississippi State University; Marc Loy, Galileo Systems, LLC; and Jesse Heroes, University of Massachussetts-Lowel.
I would also like to thank Petra Recter, Senior Acquisitions Editor, Prentice-Hall, for her ongoing support and encouragement. I thank Amy Waller, Publisher's Representative, Prentice-Hall, for bringing the manuscript to Prentice-Hall's attention. Thanks also to all of the other individuals at Prentice Hall who helped bring this book to fruition, with special thanks to Sarah Burrows and Rose Kernan.
I especially thank my husband, John, and my daughter, Jenny, for their ongoing support and patience. I appreciate their willingness to assume family chores so that I had additional time to write. And I owe a special debt of gratitude to my parents, Don and Jeanette Anderson, for all their assistance and encouragement over the years.
Susan Anderson-Freed
Bloomington, Illinois