Best of
Computer-Science

2005

Java Concurrency in Practice


Brian Goetz - 2005
    Now this same team provides the best explanation yet of these new features, and of concurrency in general. Concurrency is no longer a subject for advanced users only. Every Java developer should read this book."--Martin BuchholzJDK Concurrency Czar, Sun Microsystems"For the past 30 years, computer performance has been driven by Moore's Law; from now on, it will be driven by Amdahl's Law. Writing code that effectively exploits multiple processors can be very challenging. Java Concurrency in Practice provides you with the concepts and techniques needed to write safe and scalable Java programs for today's--and tomorrow's--systems."--Doron RajwanResearch Scientist, Intel Corp"This is the book you need if you're writing--or designing, or debugging, or maintaining, or contemplating--multithreaded Java programs. If you've ever had to synchronize a method and you weren't sure why, you owe it to yourself and your users to read this book, cover to cover."--Ted NewardAuthor of Effective Enterprise Java"Brian addresses the fundamental issues and complexities of concurrency with uncommon clarity. This book is a must-read for anyone who uses threads and cares about performance."--Kirk PepperdineCTO, JavaPerformanceTuning.com"This book covers a very deep and subtle topic in a very clear and concise way, making it the perfect Java Concurrency reference manual. Each page is filled with the problems (and solutions!) that programmers struggle with every day. Effectively exploiting concurrency is becoming more and more important now that Moore's Law is delivering more cores but not faster cores, and this book will show you how to do it."--Dr. Cliff ClickSenior Software Engineer, Azul Systems"I have a strong interest in concurrency, and have probably written more thread deadlocks and made more synchronization mistakes than most programmers. Brian's book is the most readable on the topic of threading and concurrency in Java, and deals with this difficult subject with a wonderful hands-on approach. This is a book I am recommending to all my readers of The Java Specialists' Newsletter, because it is interesting, useful, and relevant to the problems facing Java developers today."--Dr. Heinz KabutzThe Java Specialists' Newsletter"I've focused a career on simplifying simple problems, but this book ambitiously and effectively works to simplify a complex but critical subject: concurrency. Java Concurrency in Practice is revolutionary in its approach, smooth and easy in style, and timely in its delivery--it's destined to be a very important book."--Bruce TateAuthor of Beyond Java" Java Concurrency in Practice is an invaluable compilation of threading know-how for Java developers. I found reading this book intellectually exciting, in part because it is an excellent introduction to Java's concurrency API, but mostly because it captures in a thorough and accessible way expert knowledge on threading not easily found elsewhere."--Bill VennersAuthor of Inside the Java Virtual MachineThreads are a fundamental part of the Java platform. As multicore processors become the norm, using concurrency effectively becomes essential for building high-performance applications. Java SE 5 and 6 are a huge step forward for the development of concurrent applications, with improvements to the Java Virtual Machine to support high-performance, highly scalable concurrent classes and a rich set of new concurrency building blocks. In Java Concurrency in Practice , the creators of these new facilities explain not only how they work and how to use them, but also the motivation and design patterns behind them.However, developing, testing, and debugging multithreaded programs can still be very difficult; it is all too easy to create concurrent programs that appear to work, but fail when it matters most: in production, under heavy load. Java Concurrency in Practice arms readers with both the theoretical underpinnings and concrete techniques for building reliable, scalable, maintainable concurrent applications. Rather than simply offering an inventory of concurrency APIs and mechanisms, it provides design rules, patterns, and mental models that make it easier to build concurrent programs that are both correct and performant.This book covers:Basic concepts of concurrency and thread safety Techniques for building and composing thread-safe classes Using the concurrency building blocks in java.util.concurrent Performance optimization dos and don'ts Testing concurrent programs Advanced topics such as atomic variables, nonblocking algorithms, and the Java Memory Model

The Elements of Computing Systems: Building a Modern Computer from First Principles


Noam Nisan - 2005
    The books also provides a companion web site that provides the toold and materials necessary to build the hardware and software.

Head First Java


Kathy Sierra - 2005
    You might think the problem is your brain. It seems to have a mind of its own, a mind that doesn't always want to take in the dry, technical stuff you're forced to study. The fact is your brain craves novelty. It's constantly searching, scanning, waiting for something unusual to happen. After all, that's the way it was built to help you stay alive. It takes all the routine, ordinary, dull stuff and filters it to the background so it won't interfere with your brain's real work--recording things that matter. How does your brain know what matters? It's like the creators of the Head First approach say, suppose you're out for a hike and a tiger jumps in front of you, what happens in your brain? Neurons fire. Emotions crank up. Chemicals surge. That's how your brain knows.And that's how your brain will learn Java. Head First Java combines puzzles, strong visuals, mysteries, and soul-searching interviews with famous Java objects to engage you in many different ways. It's fast, it's fun, and it's effective. And, despite its playful appearance, Head First Java is serious stuff: a complete introduction to object-oriented programming and Java. You'll learn everything from the fundamentals to advanced topics, including threads, network sockets, and distributed programming with RMI. And the new. second edition focuses on Java 5.0, the latest version of the Java language and development platform. Because Java 5.0 is a major update to the platform, with deep, code-level changes, even more careful study and implementation is required. So learning the Head First way is more important than ever. If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. If you haven't, you're in for a treat. You'll see why people say it's unlike any other Java book you've ever read.By exploiting how your brain works, Head First Java compresses the time it takes to learn and retain--complex information. Its unique approach not only shows you what you need to know about Java syntax, it teaches you to think like a Java programmer. If you want to be bored, buy some other book. But if you want to understand Java, this book's for you.

Probabilistic Robotics


Sebastian Thrun - 2005
    Building on the field of mathematical statistics, probabilistic robotics endows robots with a new level of robustness in real-world situations. This book introduces the reader to a wealth of techniques and algorithms in the field. All algorithms are based on a single overarching mathematical foundation. Each chapter provides example implementations in pseudo code, detailed mathematical derivations, discussions from a practitioner's perspective, and extensive lists of exercises and class projects. The book's Web site, www.probabilistic-robotics.org, has additional material. The book is relevant for anyone involved in robotic software development and scientific research. It will also be of interest to applied statisticians and engineers dealing with real-world sensor data.

Java Puzzlers: Traps, Pitfalls, and Corner Cases


Joshua Bloch - 2005
    This lively book reveals oddities of the Java programming language through entertaining and thought-provoking programming puzzles.--Guy Steele, Sun Fellow and coauthor of The Java(TM) Language SpecificationI laughed, I cried, I threw up (my hands in admiration).--Tim Peierls, president, Prior Artisans LLC, and member of the JSR 166 Expert GroupHow well do you really know Java? Are you a code sleuth? Have you ever spent days chasing a bug caused by a trap or pitfall in Java or its libraries? Do you like brainteasers? Then this is the book for you!In the tradition of Effective Java(TM), Bloch and Gafter dive deep into the subtleties of the Java programming language and its core libraries. Illustrated with visually stunning optical illusions, Java(TM) Puzzlers features 95 diabolical puzzles that educate and entertain. Anyone with a working knowledge of Java will understand the puzzles, but even the most seasoned veteran will find them challenging.Most of the puzzles take the form of a short program whose behavior isn't what it seems. Can you figure out what it does? Puzzles are grouped loosely according to the features they use, and detailed solutions follow each puzzle. The solutions go well beyond a simple explanation of the program's behavior--they show you how to avoid the underlying traps and pitfalls for good. A handy catalog of traps and pitfalls at the back of the book provides a concise taxonomy for future reference.Solve these puzzles and you'll never again fall prey to the counterintuitive or obscure behaviors that can fool even the most experienced programmers.

The Tcp/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference


Charles Kozierok - 2005
    It details the core protocols that make TCP/IP internetworks function, and the most important classical TCP/IP applications. Its personal, easy-going writing style lets anyone understand the dozens of protocols and technologies that run the Internet, with full coverage of PPP, ARP, IP, IPv6, IP NAT, IPSec, Mobile IP, ICMP, RIP, BGP, TCP, UDP, DNS, DHCP, SNMP, FTP, SMTP, NNTP, HTTP, Telnet and much more. The author offers not only a detailed view of the TCP/IP protocol suite, but also describes networking fundamentals and the important OSI Reference Model.

Silence on the Wire: A Field Guide to Passive Reconnaissance and Indirect Attacks


Michal Zalewski - 2005
    Silence on the Wire uncovers these silent attacks so that system administrators can defend against them, as well as better understand and monitor their systems.Silence on the Wire dissects several unique and fascinating security and privacy problems associated with the technologies and protocols used in everyday computing, and shows how to use this knowledge to learn more about others or to better defend systems. By taking an indepth look at modern computing, from hardware on up, the book helps the system administrator to better understand security issues, and to approach networking from a new, more creative perspective. The sys admin can apply this knowledge to network monitoring, policy enforcement, evidence analysis, IDS, honeypots, firewalls, and forensics.

Linux Bible


Christopher Negus - 2005
    Whether you're new to Linux or need a reliable update and reference, this is an excellent resource. Veteran bestselling author Christopher Negus provides a complete tutorial packed with major updates, revisions, and hands-on exercises so that you can confidently start using Linux today. Offers a complete restructure, complete with exercises, to make the book a better learning tool Places a strong focus on the Linux command line tools and can be used with all distributions and versions of Linux Features in-depth coverage of the tools that a power user and a Linux administrator need to get startedThis practical learning tool is ideal for anyone eager to set up a new Linux desktop system at home or curious to learn how to manage Linux server systems at work.

Perl Best Practices: Standards and Styles for Developing Maintainable Code


Damian Conway - 2005
    They aren't conscious of all the choices they make, like how they format their source, the names they use for variables, or the kinds of loops they use. They're focused entirely on problems they're solving, solutions they're creating, and algorithms they're implementing. So they write code in the way that seems natural, that happens intuitively, and that feels good.But if you're serious about your profession, intuition isn't enough. Perl Best Practices author Damian Conway explains that rules, conventions, standards, and practices not only help programmers communicate and coordinate with one another, they also provide a reliable framework for thinking about problems, and a common language for expressing solutions. This is especially critical in Perl, because the language is designed to offer many ways to accomplish the same task, and consequently it supports many incompatible dialects.With a good dose of Aussie humor, Dr. Conway (familiar to many in the Perl community) offers 256 guidelines on the art of coding to help you write better Perl code--in fact, the best Perl code you possibly can. The guidelines cover code layout, naming conventions, choice of data and control structures, program decomposition, interface design and implementation, modularity, object orientation, error handling, testing, and debugging.They're designed to work together to produce code that is clear, robust, efficient, maintainable, and concise, but Dr. Conway doesn't pretend that this is the one true universal and unequivocal set of best practices. Instead, Perl Best Practices offers coherent and widely applicable suggestions based on real-world experience of how code is actually written, rather than on someone's ivory-tower theories on how software ought to be created.Most of all, Perl Best Practices offers guidelines that actually work, and that many developers around the world are already using. Much like Perl itself, these guidelines are about helping you to get your job done, without getting in the way.Praise for Perl Best Practices from Perl community members:"As a manager of a large Perl project, I'd ensure that every member of my team has a copy of Perl Best Practices on their desk, and use it as the basis for an in-house style guide." -- Randal Schwartz"There are no more excuses for writing bad Perl programs. All levels of Perl programmer will be more productive after reading this book." -- Peter Scott"Perl Best Practices will be the next big important book in the evolution of Perl. The ideas and practices Damian lays down will help bring Perl out from under the embarrassing heading of "scripting languages". Many of us have known Perl is a real programming language, worthy of all the tasks normally delegated to Java and C++. With Perl Best Practices, Damian shows specifically how and why, so everyone else can see, too." -- Andy Lester"Damian's done what many thought impossible: show how to build large, maintainable Perl applications, while still letting Perl be the powerful, expressive language that programmers have loved for years." -- Bill Odom"Finally, a means to bring lasting order to the process and product of real Perl development teams." -- Andrew Sundstrom"Perl Best Practices provides a valuable education in how to write robust, maintainable P

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries


Krzysztof Cwalina - 2005
    Expanded and updated for .NET 3.5, this new edition focuses on the design issues that directly affect the programmability of a class library, specifically its publicly accessible APIs. This book can improve the work of any .NET developer producing code that other developers will use. It includes copious annotations to the guidelines by thirty-five prominent architects and practitioners of the .NET Framework, providing a lively discussion of the reasons for the guidelines as well as examples of when to break those guidelines. Microsoft architects Krzysztof Cwalina and Brad Abrams teach framework design from the top down. From their significant combined experience and deep insight, you will learnThe general philosophy and fundamental principles of framework design Naming guidelines for the various parts of a framework Guidelines for the design and extending of types and members of types Issues affecting-and guidelines for ensuring-extensibility How (and how "not") to design exceptions Guidelines for-and examples of-common framework design patternsGuidelines in this book are presented in four major forms: Do, Consider, Avoid, and Do not. These directives help focus attention on practices that should "always" be used, those that should "generally" be used, those that should "rarely" be used, and those that should "never" be used. Every guideline includes a discussion of its applicability, and most include a code example to help illuminate the dialogue. "Framework Design Guidelines, Second Edition, " is the only definitive source of best practices for managed code API development, direct from the architects themselves. A companion DVD includes the Designing .NET Class Libraries video series, instructional presentations by the authors on design guidelines for developing classes and components that extend the .NET Framework. A sample API specification and other useful resources and tools are also included.

Practical Common LISP


Peter Seibel - 2005
    This is the first book that introduces Lisp as a language for the real world.Practical Common Lisp presents a thorough introduction to Common Lisp, providing you with an overall understanding of the language features and how they work. Over a third of the book is devoted to practical examples, such as the core of a spam filter and a web application for browsing MP3s and streaming them via the Shoutcast protocol to any standard MP3 client software (e.g., iTunes, XMMS, or WinAmp). In other "practical" chapters, author Peter Seibel demonstrates how to build a simple but flexible in-memory database, how to parse binary files, and how to build a unit test framework in 26 lines of code.

Algorithm Design


Jon Kleinberg - 2005
    The book teaches a range of design and analysis techniques for problems that arise in computing applications. The text encourages an understanding of the algorithm design process and an appreciation of the role of algorithms in the broader field of computer science.

File System Forensic Analysis


Brian Carrier - 2005
    Now, security expert Brian Carrier has written the definitive reference for everyone who wants to understand and be able to testify about how file system analysis is performed. Carrier begins with an overview of investigation and computer foundations and then gives an authoritative, comprehensive, and illustrated overview of contemporary volume and file systems: Crucial information for discovering hidden evidence, recovering deleted data, and validating your tools. Along the way, he describes data structures, analyzes example disk images, provides advanced investigation scenarios, and uses today's most valuable open source file system analysis tools--including tools he personally developed. Coverage includes Preserving the digital crime scene and duplicating hard disks for dead analysis Identifying hidden data on a disk's Host Protected Area (HPA) Reading source data: Direct versus BIOS access, dead versus live acquisition, error handling, and more Analyzing DOS, Apple, and GPT partitions; BSD disk labels; and Sun Volume Table of Contents using key concepts, data structures, and specific techniques Analyzing the contents of multiple disk volumes, such as RAID and disk spanning Analyzing FAT, NTFS, Ext2, Ext3, UFS1, and UFS2 file systems using key concepts, data structures, and specific techniques Finding evidence: File metadata, recovery of deleted files, data hiding locations, and more Using The Sleuth Kit (TSK), Autopsy Forensic Browser, and related open source tools When it comes to file system analysis, no other book offers this much detail or expertise. Whether you're a digital forensics specialist, incident response team member, law enforcement officer, corporate security specialist, or auditor, this book will become an indispensable resource for forensic investigations, no matter what analysis tools you use.

Reversing: Secrets of Reverse Engineering


Eldad Eilam - 2005
    The book is broken into two parts, the first deals with security-related reverse engineering and the second explores the more practical aspects of reverse engineering. In addition, the author explains how to reverse engineer a third-party software library to improve interfacing and how to reverse engineer a competitor's software to build a better product. * The first popular book to show how software reverse engineering can help defend against security threats, speed up development, and unlock the secrets of competitive products * Helps developers plug security holes by demonstrating how hackers exploit reverse engineering techniques to crack copy-protection schemes and identify software targets for viruses and other malware * Offers a primer on advanced reverse-engineering, delving into disassembly-code-level reverse engineering-and explaining how to decipher assembly language

The Art of Computer Programming, Volume 4, Fascicle 3: Generating All Combinations and Partitions


Donald Ervin Knuth - 2005
    At last, an answer to one of the most asked questions in computer science: When is Volume 4 of The Art of Computer Programming going to be published? A sneak peek at the eagerly anticipated Volume 4 of The Art of Computer Programming The definitive treatment of the widely misunderstood topic of combinations and partitions Future classic material from one of the most famous names in computer science!

The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations


Donald Ervin Knuth - 2005
    The three complete volumes published to date already comprise a unique and invaluable resource in programming theory and practice. Countless readers have spoken about the profound personal influence of Knuth's writings. Scientists have marveled at the beauty and elegance of his analysis, while practicing programmers have successfully applied his "cookbook" solutions to their day-to-day problems. All have admired Knuth for the breadth, clarity, accuracy, and good humor found in his books. To begin the fourth and later volumes of the set, and to update parts of the existing three, Knuth has created a series of small books called fascicles, which will be published t regular intervals. Each fascicle will encompass a section or more of wholly new or evised material. Ultimately, the content of these fascicles will be rolled up into the comprehensive, final versions of each volume, and the enormous undertaking that began in 1962 will be complete. Volume 4, Fascicle 2 This fascicle inaugurates the eagerly awaited publication of Knuth's The Art of Computer Programming, Volume 4: Combinatorial Algorithms. Part of what will be a long chapter on combinatorial searching, the fascicle begins his treatment of how to generate all possibilities. Specifically, it discusses the generation of all n-tuples, then extends those ideas to all permutations. Such algorithms provide a natural motivation by means of which many of the key ideas of combinatorial mathematics can be introduced and explored. In this and other fascicles of Volume 4, Knuth illuminates important theories by discussing related games and puzzles. Even serious programming can be fun.

The Black Art of Video Game Console Design


David Perry - 2005
    This book assumes no prior knowledge of Electrical Engineering or Computer Architecture, but takes you on a breathtaking journey from atomic semiconductor theory to the design and construction of basic video game consoles that you can build and write your own games for! Included in the book is the entire design of numerous embedded game systems including the XGameStation systems and much more.The Black Art of Video Game Console Design with 800+ pages covers everything you need to know to design your own game console including:• Basic atomic physics and semiconductor theory primer.• Introduction to circuit analysis; current, voltage, and resistance.• Analog design using discrete components.• Digital electronics and Boolean algebra.• Physical hardware construction and prototyping techniques.• Combinational logic and advanced integrated circuit building blocks.• Finite state machine design.• Computer architecture and design.• Understanding and using microprocessors and microcontrollers.• Developing software for embedded systems.• Designing video (NTSC/VGA), audio, and input device systems.• Interfacing and communications.• The complete design and discussion of numerous game systems including the XGameStations!CD-ROM Contains• PCB and circuit simulation tools.• All necessary data sheets.• Demos and source code.• Complete designs to numerous embedded systems including the XGameStations.

Gaussian Processes for Machine Learning


Carl Edward Rasmussen - 2005
    GPs have received increased attention in the machine-learning community over the past decade, and this book provides a long-needed systematic and unified treatment of theoretical and practical aspects of GPs in machine learning. The treatment is comprehensive and self-contained, targeted at researchers and students in machine learning and applied statistics. The book deals with the supervised-learning problem for both regression and classification, and includes detailed algorithms. A wide variety of covariance (kernel) functions are presented and their properties discussed. Model selection is discussed both from a Bayesian and a classical perspective. Many connections to other well-known techniques from machine learning and statistics are discussed, including support-vector machines, neural networks, splines, regularization networks, relevance vector machines and others. Theoretical issues including learning curves and the PAC-Bayesian framework are treated, and several approximation methods for learning with large datasets are discussed. The book contains illustrative examples and exercises, and code and datasets are available on the Web. Appendixes provide mathematical background and a discussion of Gaussian Markov processes.

Probability and Computing: Randomized Algorithms and Probabilistic Analysis


Michael Mitzenmacher - 2005
    It includes random sampling, expectations, Markov's and Chevyshev's inequalities, Chernoff bounds, balls and bins models, the probabilistic method, Markov chains, MCMC, martingales, entropy, and other topics. The book is designed to accompany a one- or two-semester course for graduate students in computer science and applied mathematics.

The Art of Computer Programming, Volume 1, Fascicle 1: MMIX -- A RISC Computer for the New Millennium


Donald Ervin Knuth - 2005
    Check out the boxed set that brings together Volumes 1 - 4A in one elegant case, and offers the purchaser a $50 discount off the price of buying the four volumes individually. The Art of Computer Programming, Volumes 1-4A Boxed Set, 3/e ISBN: 0321751043 Art of Computer Programming, Volume 1, Fascicle 1, The: MMIX -- A RISC Computer for the New Millennium This multivolume work on the analysis of algorithms has long been recognized as the definitive description of classical computer science. The three complete volumes published to date already comprise a unique and invaluable resource in programming theory and practice. Countless readers have spoken about the profound personal influence of Knuth's writings. Scientists have marveled at the beauty and elegance of his analysis, while practicing programmers have successfully applied his cookbook solutions to their day-to-day problems. All have admired Knuth for the breadth, clarity, accuracy, and good humor found in his books. To begin the fourth and later volumes of the set, and to update parts of the existing three, Knuth has created a series of small books called fascicles, which will be published t regular intervals. Each fascicle will encompass a section or more of wholly new or evised material. Ultimately, the content of these fascicles will be rolled up into the comprehensive, final versions of each volume, and the enormous undertaking that began in 1962 will be complete. Volume 1, Fascicle 1 This first fascicle updates The Art of Computer Programming, Volume 1, Third Edition: Fundamental Algorithms, and ultimately will become part of the fourth edition of that book. Specifically, it provides a programmer's introduction to the long-awaited MMIX, a RISC-based computer that replaces the original MIX, and describes the MMIX assembly language. The fascicle also presents new material on subroutines, coroutines, and interpretive routines. Ebook (PDF version) produced by Mathematical Sciences Publishers (MSP), http: //msp.org

TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference


Charles M. Kozierok - 2005
    It details the core protocols that make TCP/IP internetworks function, and the most important classical TCP/IP applications. Its personal, easy-going writing style lets anyone understand the dozens of protocols and technologies that run the Internet, with full coverage of PPP, ARP, IP, IPv6, IP NAT, IPSec, Mobile IP, ICMP, RIP, BGP, TCP, UDP, DNS, DHCP, SNMP, FTP, SMTP, NNTP, HTTP, Telnet and much more. The author offers not only a detailed view of the TCP/IP protocol suite, but also describes networking fundamentals and the important OSI Reference Model.

Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives


Nick Rozanski - 2005
    This practical, practitioner-oriented guide explains how to design successful architectures for information systems and to see these through to their successful implementation.

The Manga Guide to Databases


Mana Takahashi - 2005
    With the king and queen away, she has to manage the Kingdom of Kod's humongous fruit-selling empire. Overseas departments, scads of inventory, conflicting prices, and so many customers! It's all such a confusing mess. But a mysterious book and a helpful fairy promise to solve her organizational problems-with the practical magic of databases.In The Manga Guide to Databases, Tico the fairy teaches the Princess how to simplify her data management. We follow along as they design a relational database, understand the entity-relationship model, perform basic database operations, and delve into more advanced topics. Once the Princess is familiar with transactions and basic SQL statements, she can keep her data timely and accurate for the entire kingdom. Finally, Tico explains ways to make the database more efficient and secure, and they discuss methods for concurrency and replication.Examples and exercises (with answer keys) help you learn, and an appendix of frequently used SQL statements gives the tools you need to create and maintain full-featured databases.(Of course, it wouldn't be a royal kingdom without some drama, so read on to find out who gets the girl-the arrogant prince or the humble servant.)This EduManga book is a translation of a bestselling series in Japan, co-published with Ohmsha, Ltd., of Tokyo, Japan.

Real Digital Forensics: Computer Security and Incident Response


Keith J. Jones - 2005
    The solution: Real Digital Forensics. In this book, a team of world-class computer forensics experts walks you through six detailed, highly realistic investigations and provides a DVD with all the data you need to follow along and practice. From binary memory dumps to log files, this DVD's intrusion data was generated by attacking live systems using the same tools and methods real-world attackers use. The evidence was then captured and analyzed using the same tools the authors employ in their own investigations. This book relies heavily on open source tools, so you can perform virtually every task without investing in any commercial software. You'll investigate environments ranging from financial institutions to software companies and crimes ranging from intellectual property theft to SEC violations. As you move step by step through each investigation, you'll discover practical techniques for overcoming the challenges forensics professionals face most often.Inside, you will find in-depth information on the following areas: * Responding to live incidents in both Windows and Unix environments * Determining whether an attack has actually occurred * Assembling a toolkit you can take to the scene of a computer-related crime * Analyzing volatile data, nonvolatile data, and files of unknown origin * Safely performing and documenting forensic duplications * Collecting and analyzing network-based evidence in Windows and Unix environments * Reconstructing Web browsing, e-mail activity, and Windows Registry changes * Tracing domain name ownership and the source of e-mails * Duplicating and analyzing the contents of PDAs and flash memory devices The accompanying DVD contains several gigabytes of compressed data generated from actual intrusions. This data mirrors what analysts might find in real investigations and allows the reader to le

Problem Solving with Algorithms and Data Structures Using Python


Bradley N. Miller - 2005
    It is also about Python. However, there is much more. The study of algorithms and data structures is central to understanding what computer science is all about. Learning computer science is not unlike learning any other type of difficult subject matter. The only way to be successful is through deliberate and incremental exposure to the fundamental ideas. A beginning computer scientist needs practice so that there is a thorough understanding before continuing on to the more complex parts of the curriculum. In addition, a beginner needs to be given the opportunity to be successful and gain confidence. This textbook is designed to serve as a text for a first course on data structures and algorithms, typically taught as the second course in the computer science curriculum. Even though the second course is considered more advanced than the first course, this book assumes you are beginners at this level. You may still be struggling with some of the basic ideas and skills from a first computer science course and yet be ready to further explore the discipline and continue to practice problem solving. We cover abstract data types and data structures, writing algorithms, and solving problems. We look at a number of data structures and solve classic problems that arise. The tools and techniques that you learn here will be applied over and over as you continue your study of computer science.

The Mathematica GuideBook for Symbolics (w/ DVD)


Michael Trott - 2005
    Provides reader with working knowledge of Mathematica and key aspects of Mathematica symbolic capabilities, the real heart of Mathematica and the ingredient of the Mathematica software system that makes it so unique and powerful Clear organization, complete topic coverage, and an accessible writing style for both novices and experts Website for book with additional materials: http://www/MathematicaGuideBooks.org Accompanying DVD containing all materials as an electronic book with complete, executable Mathematica 5.1 compatible code and programs, rendered color graphics, and animations

Karel the Robot Learns Java


Eric S. Roberts - 2005
    

The Mathematica Guidebook for Numerics [With Dvdrom]


Michael Trott - 2005
    Provides the reader with working knowledge of Mathematica and key aspects of Mathematica's numerical capabilities needed to deal with virtually any "real life" problem Clear organization, complete topic coverage, and an accessible writing style for both novices and experts Website for book with additional materials: http: //www.MathematicaGuideBooks.org Accompanying DVD containing all materials as an electronic book with complete, executable Mathematica 5.1 compatible code and programs, rendered color graphics, and animations

Aggressive Network Self-Defense


Neil R. Wyler - 2005
    Although such tactics are extremely controversial, many security professionals are reaching into the dark side of their tool box to identify, target, and suppress their adversaries. This book will provide a detailed analysis of the most timely and dangerous attack vectors targeted at operating systems, applications, and critical infrastructure and the cutting-edge counter-measures used to nullify the actions of an attacking, criminal hacker. *First book to demonstrate and explore controversial network strike back and countermeasure techniques. *Provides tightly guarded secrets to find out WHO is really attacking you over the internet. *Provides security professionals and forensic specialists with invaluable information for finding and prosecuting criminal hackers.

C# for Programmers (Deitel Developer Series)


Harvey Deitel - 2005
    The book is updated for Visual Studio® 2005 and C# 2.0, and presents C# concepts in the context of fully tested programs, complete with syntax shading, detailed line-by-line code descriptions, and program outputs. The book features 200+ C# applications with 16,000+ lines of proven C# code, as well as 300+ programming tips that will help you build robust applications.Start with a concise introduction to C# fundamentals using an early classes and objects approach, then rapidly move on to more advanced topics, including multithreading,Dr. Harvey M. Deitel and Paul J. Deitel are the founders of Deitel & Associates, Inc., the internationally recognized programming languages content-creation and corporate-training organization. Together with their colleagues at Deitel & Associates, Inc., they have written many international best-selling programming languages textbooks that millions of people worldwide have used to master C, C++, Java™, C#,The DEITEL® Developer Series is designed for practicing programmers. The series presents focused treatments of emerging technologies, including .NET, J2EE, Web services, and more.Pre-publication Reviewer Testimonials"Excellent coverage of developing ASP.NET 2.0 applications, with plenty of sample code. The chapter on exception handling is one of, if not the best such chapters I have seen in the 50+ .NET related books I've read and reviewed. The chapter on Networking is one of the best I have seen."—Peter Bromberg, Merrill Lynch, C# MVP"A comprehensive introduction to—Gavin Osborne, Saskatchewan Institute of Applied Science and Technology"A superb job of clearly integrating the theory of relational databases and SQL with ADO.NET!"—Harlan Brewer, University of Cincinnati"Excellent introduction to .NET collections."—José Antonio González Seco, Andalucia's Parlamient"A beautiful presentation of threads."—Pavel Tsekov, Caesar BSC"The ATM OOD/UML case study is excellent! The implementation of the design developed in the early chapters gives the reader a fantastic model of a real world problem. You hit a home run with this one!"—Catherine Wyman, Devry-PhoenixPractical, Example-Rich Coverage Of: C# 2.0, .NET 2.0, FCL ASP.NET 2.0, Web Forms and Controls Database, SQL, and ADO.NET 2.0 Networking and .NET Remoting Generics, Collections GUI/Windows® Forms OOP: Classes, Inheritance, and Polymorphism OOD/UML™ ATM Case Study Graphics and Multimedia Multithreading Exception Handling And more... VISIT WWW.DEITEL.COM Download code examples To receive updates on this book, subscribe to the free DEITEL® BUZZ ONLINE e-mail newsletter at www.deitel.com/newsletter/subscribe.html Read archived Issues of the DEITEL® BUZZ ONLINE Get corporate training information

Herbert A. Simon: The Bounds of Reason in Modern America


Hunter Crowther-Heyck - 2005
    A Nobel laureate in economics, he was an accomplished political scientist, winner of a lifetime achievement award from the American Psychological Association, and founder of the Department of Computer Science at Carnegie Mellon University. In all his work in all these fields, he pursued a single goal: to create a science that could map the bounds of human reason and so enlarge its role in human affairs.Hunter Crowther-Heyck uses the career of this unique individual to examine the evolution of the social sciences after World War II, particularly Simon's creation of a new field, systems science, which joined together two distinct, powerful approaches to human behavior, the sciences of choice and control. Simon sought to develop methods by which human behavior, specifically human problem-solving, could be modeled and simulated. Regarding mind and machine as synonymous, Simon applied his models of human behavior to many other areas, from public administration and business management to artificial intelligence and the design of complex social and technical systems.In this informed and discerning study, Crowther-Heyck explores Simon's contributions to science and their influences on modern life and thought. For historians of science, social science, and technology, and for scholars of twentieth-century American intellectual and cultural history, this account of Herbert Simon's life and work provides a rich and valuable perspective.

CCNA Portable Command Guide


Scott Empson - 2005
    The New Edition of this Best-Selling Portable Command Guide is Completely Updated and includes Content, Tips, and Examples for all Topics Covered in the New Exams. To succeed as a Cisco network professional, you need to keep track of scores of commands, keywords, command arguments, options, and prompts -- and Cisco's new CCNA(R) exams test you on most of these. Getting familiar with all these commands is a daunting task. "CCNA Portable Command Guide, Third Edition" brings them all together in one condensed, portable, easy-to-use reference. Packed with valuable, easy-to-access information, it's portable enough to use whether you're in the server room or the equipment closet. Completely updated for Cisco's latest CCNA exams (ICND1 100-101, ICND2 200-101, and CCNA 200-120), it summarizes all CCNA certification-level Cisco IOS(R) Software commands, keywords, command arguments, and associated prompts. You'll find dozens of tips and examples for applying these commands in real-world networking scenarios. Configuration examples throughout the book provide you with a better understanding of how these commands are used in basic network designs. The topics covered are:TCP/IPv4An Introduction to Cisco DevicesConfiguring a RouterRoutingSwitchingLayer 3 RedundancyIPv6Network Administration and TroubleshootingFeatures of the Portable Command Guide:Access all CCNA commands-use as a quick, offline resource for research and solutionsLogical how-to topic groupings provide one-stop researchGreat for review before CCNA certification examsCompact size makes it easy to carry with you, wherever you go"Create Your Own Journal" section with blank, lined pages allows you to personalize the book for your needs"What Do You Want to Do?" chart inside back cover helps you to quickly reference specific tasksScott Empson is the Associate Chair of the Bachelor of Applied Information Systems Technology degree program at the Northern Alberta Institute of Technology in Edmonton, Alberta, Canada, where he teaches Cisco routing, switching, and network design courses. Scott is also the Program Coordinator of the Cisco Networking Academy Program at NAIT, a Regional Academy covering Central and Northern Alberta. He has earned three undergraduate degrees: a Bachelor of Arts, with a major in English; a Bachelor of Education, again with a major in English/Language Arts; and a Bachelor of Applied Information Systems Technology, with a major in Network Management. Scott also has a Masters of Education degree from the University of Portland. He holds several industry certifications, including CCNP, CCAI, Network+ and CEH. Scott is the series creator and one of the authors of the Portable Command Guide Series. Portable Command Guides are filled with valuable, easy-to-access information to quickly refresh your memory. Each guide is portable enough for use whether you're in the server room or the equipment closet. This book is part of the Cisco Press(R) Certification Self-Study Product Family, which offers readers a self-paced study routine for Cisco(R) certification exams. Titles in the Cisco Press Certification Self-Study Product Family are part of a recommended learning program from Cisco that includes simulation and hands-on training from authorized Cisco Learning Partners and self-study products from Cisco Press.

Building a PC in easy steps


Stuart Yarnold - 2005
    For those who are looking for something more than the standard PC, one solution is to build it from the ground up — a solution that, with the help of this book, is surprisingly simple. Written in concise, jargon-free English, Building a PC in Easy Steps walks the reader through every stage of building and setting up a computer: buying parts and avoiding sales scams; mastering and installing the CPU, memory, video, and other components; altering default settings in the BIOS for optimum performance; and installing and configuring device drivers. Graphics clearly illustrate every step in the process, and an invaluable troubleshooting chapter helps pinpoint any problems that may crop up. In the end, the reader has a computer system tailored to their exact requirements, built from components specifically chosen for reliability, price, and performance.

Metamath


Norman Megill - 2005
    The first part of the book provides easy-to-readinformal discussion of abstract mathematics and computers for generalaudiences. The later parts provide in-depth coverage of the foundations of mathematics, the Metamathlanguage, and the Metamath program. More information can be found atthe Metamath web site.

Clustering for Data Mining: A Data Recovery Approach


Boris Mirkin - 2005
    Even the most popular clustering methods--K-Means for partitioning the data set and Ward's method for hierarchical clustering--have lacked the theoretical attention that would establish a firm relationship between the two methods and relevant interpretation aids.Rather than the traditional set of ad hoc techniques, Clustering for Data Mining: A Data Recovery Approach presents a theory that not only closes gaps in K-Means and Ward methods, but also extends them into areas of current interest, such as clustering mixed scale data and incomplete clustering. The author suggests original methods for both cluster finding and cluster description, addresses related topics such as principal component analysis, contingency measures, and data visualization, and includes nearly 60 computational examples covering all stages of clustering, from data pre-processing to cluster validation and results interpretation.This author's unique attention to data recovery methods, theory-based advice, pre- and post-processing issues that are beyond the scope of most texts, and clear, practical instructions for real-world data mining make this book ideally suited for virtually all purposes: for teaching, for self-study, and for professional reference.

Professional Assembly Language


Richard Blum - 2005
    Unlike high-level languages such as Java and C++, assembly language is much closer to the machine code that actually runs computers; it's used to create programs or modules that are very fast and efficient, as well as in hacking exploits and reverse engineering Covering assembly language in the Pentium microprocessor environment, this code-intensive guide shows programmers how to create stand-alone assembly language programs as well as how to incorporate assembly language libraries or routines into existing high-level applications Demonstrates how to manipulate data, incorporate advanced functions and libraries, and maximize application performance Examples use C as a high-level language, Linux as the development environment, and GNU tools for assembling, compiling, linking, and debugging

Foundations of Empirical Software Engineering: The Legacy of Victor R. Basili


Barry Boehm - 2005
    Victor Robert Basili of the University of Maryland. In addition to the need to engineer software was the need to understand software. Much like other sciences, such as physics, chemistry, and biology, software engineering needed a discipline of obs- vation, theory formation, experimentation, and feedback. By applying the scientific method to the software engineering domain, Basili developed concepts like the Goal-Question-Metric method, the Quality-Improvement- Paradigm, and the Experience Factory to help bring a sense of order to the ad hoc developments so prevalent in the software engineering field. On the occasion of Basili's 65th birthday, we present this book c- taining reprints of 20 papers that defined much of his work. We divided the 20 papers into 6 sections, each describing a different facet of his work, and asked several individuals to write an introduction to each section. Instead of describing the scope of this book in this preface, we decided to let one of his papers, the keynote paper he gave at the International C- ference on Software Engineering in 1996 in Berlin, Germany to lead off this book. He, better than we, can best describe his views on what is - perimental software engineering.

Fundamentals of Wireless Communication


David Tse - 2005
    This textbook takes a unified view of the fundamentals of wireless communication and explains the web of concepts underpinning these advances at a level accessible to an audience with a basic background in probability and digital communication. Topics covered include MIMO (multi-input, multi-output) communication, space-time coding, opportunistic communication, OFDM and CDMA. The concepts are illustrated using many examples from real wireless systems such as GSM, IS-95 (CDMA), IS-856 (1 x EV-DO), Flash OFDM and UWB (ultra-wideband). Particular emphasis is placed on the interplay between concepts and their implementation in real systems. An abundant supply of exercises and figures reinforce the material in the text. This book is intended for use on graduate courses in electrical and computer engineering and will also be of great interest to practising engineers.

Fundamental Data Compression


Ida Mengyi Pu - 2005
    A huge, active research field, and a part of many people's everyday lives, compression technology is an essential part of today's Computer Science and Electronic Engineering courses. With the help of this book, students can gain a thorough understanding of the underlying theory and algorithms, as well as specific techniques used in a range of scenarios, including the application of compression techniques to text, still images, video and audio. Practical exercises, projects and exam questions reinforce learning, along with suggestions for further reading. * Dedicated data compression textbook for use on undergraduate courses* Provides essential knowledge for today's web/multimedia applications* Accessible, well structured text backed up by extensive exercises and sample exam questions

Data Streams: Algorithms and Applications


S. Muthukrishnan - 2005
    The data stream agenda now pervades many branches of Computer Science including databases, networking, knowledge discovery and data mining, and hardware systems. Industry is in synch too, with Data Stream Management Systems (DSMSs) and special hardware to deal with data speeds. Even beyond Computer Science, data stream concerns are emerging in physics, atmospheric science and statistics. Data Streams: Algorithms and Applications focuses on the algorithmic foundations of data streaming. In the data stream scenario, input arrives very rapidly and there is limited memory to store the input. Algorithms have to work with one or few passes over the data, space less than linear in the input size or time significantly less than the input size. In the past few years, a new theory has emerged for reasoning about algorithms that work within these constraints on space, time and number of passes. Some of the methods rely on metric embeddings, pseudo-random computations, sparse approximation theory and communication complexity. The applications for this scenario include IP network traffic analysis, mining text message streams and processing massive data sets in general. Data Streams: Algorithms and Applications surveys the emerging area of algorithms for processing data streams and associated applications. An extensive bibliography with over 200 entries points the reader to further resources for exploration.

Words made flesh - Code, Culture, Imagination


Florian Cramer - 2005
    These practices are often neglected as a historical pretext of contemporary software culture and electronic arts. Above all, they link computations to a vast speculative imagination that encompasses art, language, technology, philosophy and religion. These speculations in turn inscribe themselves into the technology. Since even the most simple formalism requires symbols with which it can be expressed, and symbols have cultural connotations, any code is loaded with meaning. This booklet writes a small cultural history of imaginative computation, reconstructing both the obsessive persistence and contradictory mutations of the phantasm that symbols turn physical, and words are made flesh.

A Pragmatic Guide to Business Process Modelling


Jon Holt - 2005
    It is considered a core competency for anyone involved in managing change and Jon Holt’s expert text explores all the main aspects including process analysis and process documentation. Applying the standard modelling notation (UML), the result is a detailed, step-by-step guide to the entire modelling process.

Penetration Tester's Open Source Toolkit [With CDROM]


Johnny Long - 2005
    A penetration tester must be creative enough to think outside of the box to determine the best attack vector into his own network, and also be expert in using the literally hundreds of tools required to execute the plan. This book provides both the art and the science. The authors of the book are expert penetration testers who have developed many of the leading pen testing tools; such as the Metasploit framework. The authors allow the reader inside their heads to unravel the mysteries of thins like identifying targets, enumerating hosts, application fingerprinting, cracking passwords, and attacking exposed vulnerabilities. Along the way, the authors provide an invaluable reference to the hundreds of tools included on the bootable-Linux CD for penetration testing. * Covers both the methodology of penetration testing and all of the tools used by malicious hackers and penetration testers * The book is authored by many of the tool developers themselves * This is the only book that comes packaged with the "Auditor Security Collection"; a bootable Linux CD with over 300 of the most popular open source penetration testing tools

Microflows and Nanoflows: Fundamentals and Simulation


George E.M. Karniadakis - 2005
    It sold over 900 copies in North America since 11/01.New edition is 40 percent longer, with four new chapters on recent topics including Nanofluidics.

Handbook of Computational Group Theory


Derek F. Holt - 2005
    Since then, the field has flourished, particularly during the past 30 to 40 years, and today it remains a lively and active branch of mathematics.The Handbook of Computational Group Theory offers the first complete treatment of all the fundamental methods and algorithms in CGT presented at a level accessible even to advanced undergraduate students. It develops the theory of algorithms in full detail and highlights the connections between the different aspects of CGT and other areas of computer algebra. While acknowledging the importance of the complexity analysis of CGT algorithms, the authors' primary focus is on algorithms that perform well in practice rather than on those with the best theoretical complexity.Throughout the book, applications of all the key topics and algorithms to areas both within and outside of mathematics demonstrate how CGT fits into the wider world of mathematics and science. The authors include detailed pseudocode for all of the fundamental algorithms, and provide detailed worked examples that bring the theorems and algorithms to life.

Selfish Routing and the Price of Anarchy


Tim Roughgarden - 2005
    Many networks, including computer networks, suffer from some type of this selfish routing. In Selfish Routing and the Price of Anarchy, Tim Roughgarden studies the loss of social welfare caused by selfish, uncoordinated behavior in networks. He quantifies the price of anarchy--the worst-possible loss of social welfare from selfish routing--and also discusses several methods for improving the price of anarchy with centralized control.Roughgarden begins with a relatively nontechnical introduction to selfish routing, describing two important examples that motivate the problems that follow. The first, Pigou's Example, demonstrates that selfish behavior need not generate a socially optimal outcome. The second, the counterintiuitve Braess's Paradox, shows that network improvements can degrade network performance. He then develops techniques for quantifying the price of anarchy (with Pigou's Example playing a central role). Next, he analyzes Braess's Paradox and the computational complexity of detecting it algorithmically, and he describes Stackelberg routing, which improves the price of anarchy using a modest degree of central control. Finally, he defines several open problems that may inspire further research. Roughgarden's work will be of interest not only to researchers and graduate students in theoretical computer science and optimization but also to other computer scientists, as well as to economists, electrical engineers, and mathematicians.

Wireless Sensor Networks


Nirupama Bulusu - 2005
    The range of applications of this groundbreaking technology is mind-boggling, from habitat and health monitoring to defense systems and precision agriculture. This first-of-its-kind resource offers professionals an in-depth understanding of wireless sensor networks from a systems perspective. Including contributions from leading international researchers, the book describes and categorizes the technological trends, leading applications, state-of-the-art platform developments, future trends, and challenges of sensor networks. The book also serves as an excellent text or supplementary reading for graduate-level courses on sensor networks.

Discrete-Event Simulation: A First Course


Lawrence M. Leemis - 2005
    Helps readers gain a better understanding of how systems operate and respond to change by: 1) helping them begin to model, simulate, and analyze simple-but-representative systems as soon as possible; and 2) whenever possible, encouraging the experimental exploration and self-discovery of theoretical results before their formal presentation. Features an approachable writing style that emphasizes concepts and insight without sacrificing rigor. Provides C software as source code for running simulations developed in the book, eliminating the need for readers to do all their programming from scratch. Emphasizes an algorithmic approach throughout. A useful reference for industrial engineers.

Analyzing Computer System Performance with Perl: : PDQ


Neil J. Gunther - 2005
    Makes performance analysis and queueing theory concepts simple to understand and available to anyone with a background in high school algebraPresents the practical application of these concepts in the context of modern, distributed, computer system designsPacked with helpful examples that are based on the author's experience analyzing the performance of large-scale systems over the past 20 years.

UML 2.0 in Action: A project-based tutorial


Henriette Baumann - 2005
    A richly textured case study is used throughout the book. Although some aspects of the Airport Passenger Services business process are simplified for sake of clarity and efficiency, it provides a comprehensive practical grounding for theoretical UML knowledge. The case study itself was developed in partnership with employees of Zurich Airport. The book was written for business analysts, technical architects and developers. It does not require detailed programming knowledge, nor is prior experience of UML mandatory. It shows how, with UML, simple models of business processes and specification models can be created and read with little effort.

Linux Quick Fix Notebook


Peter Harrison - 2005
    The author covers many basic, practical issues that other authors omit in a format that makes for a great troubleshooting reference and for casual perusing. There are a lot of books available that give a broad overview of system and network administration, and there are a lot of detailed books on each specific topic covered in this book, but I don't know of any other place where I can get so much useful, practical information on such a wide range of topics in such a concise and readable form. I will highly recommend it to my friends and colleagues who are trying to manage their own systems. I am anxious to show it to our instructors who teach data communications and networks as a possible text or lab manual."—Ron McCarty, instructor and program chair, Computer Science, Penn State Erie"This book takes a very unique approach and is very flexible. It offers a great deal to the home user, students, small businesses—all the way to any Linux sys admin that needs a handy reference. I found it very refreshing in terms of style, stated goals, presentation, ease of use, direction, and the "present and future" value of the content. In other words the author is very current and knowledgeable. I would recommend this book to every level from programmer to manager."—Joe Brazeal, Information Technician III, Southwest Power Pool"This book is an excellent resource for new Linux administrators. I was impressed with the comprehensive set of 35 topic chapters, making this book a very useful reference. I know of no other work like this."—George Vish II, Linux curriculum program manager and senior education consultant, Hewlett-Packard Education"I would recommend this book to novice Linux users and administrators. It covers a lot of topics, and makes it easy for readers to follow along."—Bret Strong, education consultant, Hewlett-Packard Company"Linux Quick Fix Notebook is a well-written guide to designing, installing, and maintaining Linux servers. Many Linux reference texts are just simple rewrites of Linux ¨man¨ and ¨info¨ pages, but this book addresses the real issues that systems administrators encounter when working with Linux. The author provides a pedagogical guide to learning Linux server administration. In addition, the book includes step-by-step information so that users can quickly take advantage of the best that open source software has to offer today. I would recommend this book to both beginning and intermediate users of Linux."—Joseph Naberhaus, Professor of Networking, Universidad Del MarAn indispensable guide for every Linux administratorInstant access to precise, step-by-step solutions for every essential Linux administration taskFrom basic configuration and troubleshooting to advanced security and optimizationIf you're responsible for delivering results with Linux, Linux® Quick Fix Notebook brings together all the step-by-step instructions, precise configuration commands, and real-world guidance you need. This distilled, focused, task-centered guide was written for sysadmins, netadmins, consultants, power users...everyone whose livelihood depends on making Linux work, and keeping it working.This book's handy Q&A format gives you instant access to specific answers, without ever forcing you to wade through theory or jargon. Peter Harrison addresses virtually every aspect of Linux administration, from software installation to security, user management to Internet services—even advanced topics such as software RAID and centralized LDAP authentication. Harrison's proven command-line examples work quickly and efficiently, no matter what Linux distribution you're using. Here's just some of what you'll learn how to do: Build Linux file/print servers and networks from scratch Troubleshoot Linux and interpret system error messages Control every step of the boot process Create, manage, secure, and track user accounts Install, configure, and test Linux-based wireless networks Protect your network with Linux iptables firewalls Set up Web, e-mail, DNS, DHCP, and FTP servers And much more... © Copyright Pearson Education. All rights reserved.

Programming Languages: Principles and Paradigms


Maurizio Gabbrielli - 2005
    I accepted for at least two reasons. The ?rst is that the request came to me from two colleagues for whom I have always had the greatest regard, starting from the time when I ?rst knew and appreciated them as students and as young researchers. The second reason is that the text by Gabbrielli and Martini is very near to the book that I would have liked to have written but, for various reasons, never have. In particular, theapproachadoptedinthisbookistheonewhichImyselfhavefollowed when organising the various courses on programming languages I have taught for almost thirty years at different levels under various titles. The approach, summarised in 2 words, is that of introducing the general concepts (either using linguistic mechanisms or the implementation structures corresponding to them) in a manner that is independent of any speci?c language; once this is done, "real languages" are introduced. This is the only approach that allows one to - veal similarities between apparently quite different languages (and also between paradigms). At the same time, it makes the task of learning different languages e- ier. In my experience as a lecturer, ex-students recall the principles learned in the course even after many years; they still appreciate the approach which allowed them to adapt to technological developments without too much dif?culty.