Best of
Computer-Science

2008

Cracking the Coding Interview: 150 Programming Questions and Solutions


Gayle Laakmann McDowell - 2008
    This is a deeply technical book and focuses on the software engineering skills to ace your interview. The book is over 500 pages and includes 150 programming interview questions and answers, as well as other advice.The full list of topics are as follows:The Interview ProcessThis section offers an overview on questions are selected and how you will be evaluated. What happens when you get a question wrong? When should you start preparing, and how? What language should you use? All these questions and more are answered.Behind the ScenesLearn what happens behind the scenes during your interview, how decisions really get made, who you interview with, and what they ask you. Companies covered include Google, Amazon, Yahoo, Microsoft, Apple and Facebook.Special SituationsThis section explains the process for experience candidates, Program Managers, Dev Managers, Testers / SDETs, and more. Learn what your interviewers are looking for and how much code you need to know.Before the InterviewIn order to ace the interview, you first need to get an interview. This section describes what a software engineer's resume should look like and what you should be doing well before your interview.Behavioral PreparationAlthough most of a software engineering interview will be technical, behavioral questions matter too. This section covers how to prepare for behavioral questions and how to give strong, structured responses.Technical Questions (+ 5 Algorithm Approaches)This section covers how to prepare for technical questions (without wasting your time) and teaches actionable ways to solve the trickiest algorithm problems. It also teaches you what exactly "good coding" is when it comes to an interview.150 Programming Questions and AnswersThis section forms the bulk of the book. Each section opens with a discussion of the core knowledge and strategies to tackle this type of question, diving into exactly how you break down and solve it. Topics covered include• Arrays and Strings• Linked Lists• Stacks and Queues• Trees and Graphs• Bit Manipulation• Brain Teasers• Mathematics and Probability• Object-Oriented Design• Recursion and Dynamic Programming• Sorting and Searching• Scalability and Memory Limits• Testing• C and C++• Java• Databases• Threads and LocksFor the widest degree of readability, the solutions are almost entirely written with Java (with the exception of C / C++ questions). A link is provided with the book so that you can download, compile, and play with the solutions yourself.Changes from the Fourth Edition: The fifth edition includes over 200 pages of new content, bringing the book from 300 pages to over 500 pages. Major revisions were done to almost every solution, including a number of alternate solutions added. The introductory chapters were massively expanded, as were the opening of each of the chapters under Technical Questions. In addition, 24 new questions were added.Cracking the Coding Interview, Fifth Edition is the most expansive, detailed guide on how to ace your software development / programming interviews.

C# in Depth


Jon Skeet - 2008
    With the many upgraded features, C# is more expressive than ever. However, an in depth understanding is required to get the most out of the language.C# in Depth, Second Edition is a thoroughly revised, up-to-date book that covers the new features of C# 4 as well as Code Contracts. In it, you'll see the subtleties of C# programming in action, learning how to work with high-value features that you'll be glad to have in your toolkit. The book helps readers avoid hidden pitfalls of C# programming by understanding "behind the scenes" issues.Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

JavaScript: The Good Parts


Douglas Crockford - 2008
    This authoritative book scrapes away these bad features to reveal a subset of JavaScript that's more reliable, readable, and maintainable than the language as a whole--a subset you can use to create truly extensible and efficient code.Considered the JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript an outstanding object-oriented programming language-ideas such as functions, loose typing, dynamic objects, and an expressive object literal notation. Unfortunately, these good ideas are mixed in with bad and downright awful ideas, like a programming model based on global variables.When Java applets failed, JavaScript became the language of the Web by default, making its popularity almost completely independent of its qualities as a programming language. In JavaScript: The Good Parts, Crockford finally digs through the steaming pile of good intentions and blunders to give you a detailed look at all the genuinely elegant parts of JavaScript, including:SyntaxObjectsFunctionsInheritanceArraysRegular expressionsMethodsStyleBeautiful featuresThe real beauty? As you move ahead with the subset of JavaScript that this book presents, you'll also sidestep the need to unlearn all the bad parts. Of course, if you want to find out more about the bad parts and how to use them badly, simply consult any other JavaScript book.With JavaScript: The Good Parts, you'll discover a beautiful, elegant, lightweight and highly expressive language that lets you create effective code, whether you're managing object libraries or just trying to get Ajax to run fast. If you develop sites or applications for the Web, this book is an absolute must.

The Well-Grounded Rubyist


David A. Black - 2008
    It's a beautifully written tutorial that begins with the basic steps to get your first Ruby program up and running and goes on to explore sophisticated topics like callable objects, reflection, and threading. Whether the topic is simple or tough, the book's easy-to-follow examples and explanations will give you immediate confidence as you build your Ruby programming skills.The Well-Grounded Rubyist is a thoroughly revised and updated edition of the best-selling Ruby for Rails. In this new book, expert author David A. Black moves beyond Rails and presents a broader view of Ruby. It covers Ruby 1.9, and keeps the same sharp focus and clear writing that made Ruby for Rails stand out.Starting with the basics, The Well-Grounded Rubyist explains Ruby objects and their interactions from the ground up. In the middle chapters, the book turns to an examination of Ruby's built-in, core classes, showing the reader how to manipulate strings, numbers, arrays, ranges, hashes, sets, and more. Regular expressions get attention, as do file and other I/O operations.Along the way, the reader is introduced to numerous tools included in the standard Ruby distribution--tools like the task manager Rake and the interactive Ruby console-based interpreter Irb--that facilitate Ruby development and make it an integrated and pleasant experience.The book encompasses advanced topics, like the design of Ruby's class and module system, and the use of Ruby threads, taking even the new Rubyist deep into the language and giving every reader the foundations necessary to use, explore, and enjoy this unusually popular and versatile language.It's no wonder one reader commented: "The technical depth is just right to not distract beginners, yet detailed enough for more advanced readers."Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

Programming in Scala


Martin Odersky - 2008
     Coauthored by the designer of the Scala language, this authoritative book will teach you, one step at a time, the Scala language and the ideas behind it. The book is carefully crafted to help you learn. The first few chapters will give you enough of the basics that you can already start using Scala for simple tasks. The entire book is organized so that each new concept builds on concepts that came before - a series of steps that promises to help you master the Scala language and the important ideas about programming that Scala embodies. A comprehensive tutorial and reference for Scala, this book covers the entire language and important libraries.

SCJP Sun Certified Programmer for Java 6 Study Guide


Kathy Sierra - 2008
    100% complete coverage of all official objectives for exam 310-065Exam Objective Highlights in every chapter point out certification objectives to ensure you're focused on passing the exam Exam Watch sections in every chapter highlight key exam topics coveredSimulated exam questions match the format, tone, topics, and difficulty of the real examCovers all SCJP exam topics, including:Declarations and Access Control - Object Orientation - Assignments - Operators - Flow Control, Exceptions, and Assertions - Strings, I/O, Formatting, and Parsing - Generics and Collections - Inner Classes - Threads - DevelopmentCD-ROM includes: Complete MasterExam practice testing engine, featuring: Two full practice exams; Detailed answers with explanations; Score Report performance assessment toolElectronic book for studying on the goBonus coverage of the SCJD exam includedBonus downloadable MasterExam practice test with free online registration.

The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine


Charles Petzold - 2008
    Turing Mathematician Alan Turing invented an imaginary computer known as the Turing Machine; in an age before computers, he explored the concept of what it meant to be "computable," creating the field of computability theory in the process, a foundation of present-day computer programming.The book expands Turing's original 36-page paper with additional background chapters and extensive annotations; the author elaborates on and clarifies many of Turing's statements, making the original difficult-to-read document accessible to present day programmers, computer science majors, math geeks, and others.Interwoven into the narrative are the highlights of Turing's own life: his years at Cambridge and Princeton, his secret work in cryptanalysis during World War II, his involvement in seminal computer projects, his speculations about artificial intelligence, his arrest and prosecution for the crime of "gross indecency," and his early death by apparent suicide at the age of 41.

Secrets of the JavaScript Ninja


John Resig - 2008
    This completely revised edition shows you how to master key JavaScript concepts such as functions, closures, objects, prototypes, and promises. It covers APIs such as the DOM, events, and timers. You’ll discover best practice techniques such as testing, and cross-browser development, all taught from the perspective of skilled JavaScript practitioners.

Security Engineering: A Guide to Building Dependable Distributed Systems


Ross J. Anderson - 2008
    Spammers, virus writers, phishermen, money launderers, and spies now trade busily with each other in a lively online criminal economy and as they specialize, they get better. In this indispensable, fully updated guide, Ross Anderson reveals how to build systems that stay dependable whether faced with error or malice. Here's straight talk on critical topics such as technical engineering basics, types of attack, specialized protection mechanisms, security psychology, policy, and more.

Windows Internals: Covering Windows Server 2008 and Windows Vista (Pro-Developer)


Mark E. Russinovich - 2008
    Fully updated for Windows Server® 2008 and Windows Vista®, this classic guide delivers key architectural insights on system design, debugging, performance, and support—along with hands-on experiments to experience Windows internal behavior firsthand. Delve inside Windows architecture and internals: Understand how the core system and management mechanisms work—from the object manager to services to the registry Explore internal system data structures using tools like the kernel debugger Grasp the scheduler's priority and CPU placement algorithms Go inside the Windows security model to see how it authorizes access to data Understand how Windows manages physical and virtual memory Tour the Windows networking stack from top to bottom—including APIs, protocol drivers, and network adapter drivers Troubleshoot file-system access problems and system boot problems Learn how to analyze crashes

Programming: Principles and Practice Using C++


Bjarne Stroustrup - 2008
    Available here:blubbu.com/download?i=0321992784Programming: Principles and Practice Using C++ (2nd Edition) PDF by Bjarne Stroustrup

Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction


Daniel Shiffman - 2008
    Based on the ubiquitous Java, it provides an alternative to daunting languages and expensive proprietary software.This book gives graphic designers, artists and illustrators of all stripes a jump start to working with processing by providing detailed information on the basic principles of programming with the language, followed by careful, step-by-step explanations of select advanced techniques.The author teaches computer graphics at NYU's Tisch School of the Arts, and his book has been developed with a supportive learning experience at its core. From algorithms and data mining to rendering and debugging, it teaches object-oriented programming from the ground up within the fascinating context of interactive visual media.Previously announced as Pixels, Patterns, and Processing

Introduction to Information Retrieval


Christopher D. Manning - 2008
    Written from a computer science perspective by three leading experts in the field, it gives an up-to-date treatment of all aspects of the design and implementation of systems for gathering, indexing, and searching documents; methods for evaluating systems; and an introduction to the use of machine learning methods on text collections. All the important ideas are explained using examples and figures, making it perfect for introductory courses in information retrieval for advanced undergraduates and graduate students in computer science. Based on feedback from extensive classroom experience, the book has been carefully structured in order to make teaching more natural and effective. Although originally designed as the primary text for a graduate or advanced undergraduate course in information retrieval, the book will also create a buzz for researchers and professionals alike.

Object-Oriented JavaScript


Stoyan Stefanov - 2008
    This book is for the beginning to intermediate web developer who wants to solve web development problems with smart JavaScript. It does not assume any prior knowledge of JavaScript programming; however even if you already know some JavaScript, there will be plenty for you to learn here.

The Art of Computer Programming, Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions


Donald Ervin Knuth - 2008
    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 4, Fascicle 0, The: Introduction to Combinatorial Algorithms and Boolean Functions: Introduction to Combinatorial Algorithms and Boolean Functions 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 at regular intervals. Each fascicle will encompass a section or more of wholly new or revised 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 0 This fascicle introduces what will become by far the longest chapter in "The Art of Computer Programming," a chapter on combinatorial algorithms that will itself fill three full-sized volumes. Combinatorial algorithms, informally, are techniques for the high-speed manipulation of extremely large quantities of objects, such as permutations or the elements of graphs. Combinatorial patterns or arrangements solve vast numbers of practical problems, and modern approaches to dealing with them often lead to methods that are more than a thousand times faster than the straightforward procedures of yesteryear. This fascicle primes the pump for everything that follows in the chapter, discussing first the essential ideas of combinatorics and then introducing fundamental ideas for dealing efficiently with 0s and 1s inside a machine, including Boolean basics and Boolean function evaluation. As always, the author s exposition is enhanced by hundreds of new exercises, arranged carefully for self-instruction, together with detailed answers. "

Microsoft SQL Server 2008: T-SQL Fundamentals


Itzik Ben-Gan - 2008
    Get hands-on guidance—including exercises and code samples—that show you how to develop code to query and modify data. You’ll gain a solid understanding of the T-SQL language and good programming practices, and learn to write more efficient and powerful queries. Discover how to: Apply T-SQL fundamentals, create tables, and define data integrity Understand logical query processing Query multiple tables using joins and subqueries Simplify code and improve maintainability with table expressions Explore pivoting techniques and how to handle grouping sets Write code that modifies data Isolate inconsistent data and address deadlock and blocking scenarios

Quantum Computing for Computer Scientists


Noson S. Yanofsky - 2008
    Quantum Computing for Computer Scientists takes readers on a tour of this fascinating area of cutting-edge research. Written in an accessible yet rigorous fashion, this book employs ideas and techniques familiar to every student of computer science. The reader is not expected to have any advanced mathematics or physics background. After presenting the necessary prerequisites, the material is organized to look at different aspects of quantum computing from the specific standpoint of computer science. There are chapters on computer architecture, algorithms, programming languages, theoretical computer science, cryptography, information theory, and hardware. The text has step-by-step examples, more than two hundred exercises with solutions, and programming drills that bring the ideas of quantum computing alive for today's computer science students and researchers.

Springer Handbook of Robotics


Bruno Siciliano - 2008
    Having broken free from its origins in industry, robotics has been rapidly expanding into the challenging terrain of unstructured environments. Unlike other handbooks that focus on industrial applications, the Springer Handbook of Robotics incorporates these new developments. Just like all Springer Handbooks, it is utterly comprehensive, edited by internationally renowned experts, and replete with contributions from leading researchers from around the world. The handbook is an ideal resource for robotics experts but also for people new to this expanding field.

Sams Teach Yourself C++ in One Hour a Day


Siddhartha Rao - 2008
    Master the fundamentals of C++ and object-oriented programming Understand how C++11 features help you write compact and efficient code using concepts such as lambda expressions, move constructors, and assignment operators Learn the Standard Template Library, including containers and algorithms used in most real-world C++ applications Test your knowledge and expertise using exercises at the end of every lesson Learn on your own time, at your own pace: No previous programming experience required Learn C++11, object-oriented programming, and analysis Write fast and powerful C++ programs, compile the source code with a gcc compiler, and create executable files Use the Standard Template Library's (STL) algorithms and containers to write feature-rich yet stable C++ applications Develop sophisticated programming techniques using lambda expressions, smart pointers, and move constructors Learn to expand your program's power with inheritance and polymorphism Master the features of C++ by learning from programming experts Learn C++11 features that allow you to program compact and high-performance C++ applications TABLE OF CONTENTSPART I: THE BASICS LESSON 1: Getting Started with C++11 LESSON 2: The Anatomy of a C++ Program LESSON 3: Using Variables, Declaring Constants LESSON 4: Managing Arrays and Strings LESSON 5: Working with Expressions, Statements, and Operators LESSON 6: Controlling Program Flow LESSON 7: Organizing Code with Functions LESSON 8: Pointers and References Explained PART II: FUNDAMENTALS OF OBJECT-ORIENTED C++ PROGRAMMING LESSON 9: Classes and Objects LESSON 10: Implementing Inheritance LESSON 11: Polymorphism LESSON 12: Operator Types and Operator Overloading LESSON 13: Casting Operators LESSON 14: An Introduction to Macros and Templates PART III: LEARNING THE STANDARD TEMPLATE LIBRARY (STL) LESSON 15: An Introduction to the Standard Template LibraryLESSON 16: The STL String ClassLESSON 17: STL Dynamic Array ClassesLESSON 18: STL list and forward_listLESSON 19: STL Set ClassesLESSON 20: STL Map ClassesPART IV: MORE STL LESSON 21: Understanding Function ObjectsLESSON 22: C++11 Lambda ExpressionsLESSON 23: STL AlgorithmsLESSON 24: Adaptive Containers: Stack and QueueLESSON 25: Working with Bit Flags Using STLPART V: ADVANCED C++ CONCEPTS LESSON 26: Understanding Smart PointersLESSON 27: Using Streams for Input and OutputLESSON 28: Exception HandlingLESSON 29: Going Forward APPENDIXES A: Working with Numbers: Binary and Hexadecimal B: C++ Keywords C: Operator Precedence D: Answers E: ASCII Codes

Linux Command Line and Shell Scripting Bible


Richard Blum - 2008
    Not only does this Bible give you a quick refresher on the structure of open-source Linux software, it also shows you how to bypass the hefty graphical user interface on Linux systems and start interacting the fast and efficient way?with command lines and automated scripts. You'll learn how to manage files on the filesystem, start and stop programs, use databases, even do Web programming?without a GUI?with this one-stop resource.

Harley Hahn's Guide to Unix and Linux


Harley Hahn - 2008
    The book is suitable as a primary or secondary textbook for classroom use, as well as for readers who want to teach themselves. The text covers all the basic concepts and tools Unix/Linux users need to master: Unix vs Linux, GUIs, the command line interface, the online manual, syntax, the shell, standard I/O and redirection, pipes and filters, vi, the Unix file system, and job control.Hahn offers a thoroughly readable approach to teaching Unix & Linux by emphasizing core ideas and carefully explaining unfamiliar terminology. The book walks readers through Unix & Linux systems from the very beginning, assuming no prior knowledge and laying out material in a logical, straightforward manner. An experienced author, Hahn writes in a clear, engaging, and student-friendly style, resulting in a text that is both easy and entertaining to read. Motivating pedagogy, such as What s in a Name? boxes and highlighted Hints provide readers with interesting background and helpful tips. For additional resources, readers can visit the author s website at www.mhhe.com/harleyhahn

Digital Design and Verilog HDL Fundamentals


Joseph Cavanagh - 2008
    Number systems and number representations are presented along with various binary codes. Several advanced topics are covered, including functional decomposition and iterative networks. A variety of examples are provided for combinational and sequential logic, computer arithmetic, and advanced topics such as Hamming code error correction. Constructs supported by Verilog are described in detail. All designs are continued to completion. Each chapter includes numerous design issues of varying complexity to be resolved by the reader.

LAN Switching and Wireless, CCNA Exploration Companion Guide (Cisco Systems Networking Academy Program)


Wayne Lewis - 2008
    Book by Lewis, Wayne

Digital Imaging and Communications in Medicine (DICOM): A Practical Introduction and Survival Guide


Oleg S. Pianykh - 2008
    It is aimed at a broad audience of radiologists, clinical administrators, information technologists, and digital medicine practitioners. It provides a gradual, down-to-earth introduction to DICOM and is accompanied by an analysis of the most common pitfalls and problems associated with its implementation. Whether you are running a teleradiology project or writing DICOM software, this book is for you; it will prepare you for any DICOM project or problem solving and will help you to take full advantage of this powerful tool.

Market Risk Analysis, Practical Financial Econometrics


Carol Alexander - 2008
    It introduces the econometric techniques that are commonly applied to finance with a critical and selective exposition, emphasising the areas of econometrics, such as GARCH, cointegration and copulas that are required for resolving problems in market risk analysis. The book covers material for a one-semester graduate course in applied financial econometrics in a very pedagogical fashion as each time a concept is introduced an empirical example is given, and whenever possible this is illustrated with an Excel spreadsheet. All together, the Market Risk Analysis four volume set illustrates virtually every concept or formula with a practical, numerical example or a longer, empirical case study. Across all four volumes there are approximately 300 numerical and empirical examples, 400 graphs and figures and 30 case studies many of which are contained in interactive Excel spreadsheets available from the the accompanying CD-ROM . Empirical examples and case studies specific to this volume include:Factor analysis with orthogonal regressions and using principal component factors; Estimation of symmetric and asymmetric, normal and Student t GARCH and E-GARCH parameters; Normal, Student t, Gumbel, Clayton, normal mixture copula densities, and simulations from these copulas with application to VaR and portfolio optimization; Principal component analysis of yield curves with applications to portfolio immunization and asset/liability management; Simulation of normal mixture and Markov switching GARCH returns; Cointegration based index tracking and pairs trading, with error correction and impulse response modelling; Markov switching regression models (Eviews code); GARCH term structure forecasting with volatility targeting; Non-linear quantile regressions with applications to hedging.

Ecological Models and Data in R


Benjamin M. Bolker - 2008
    In step-by-step detail, the book teaches ecology graduate students and researchers everything they need to know in order to use maximum likelihood, information-theoretic, and Bayesian techniques to analyze their own data using the programming language R. Drawing on extensive experience teaching these techniques to graduate students in ecology, Benjamin Bolker shows how to choose among and construct statistical models for data, estimate their parameters and confidence limits, and interpret the results. The book also covers statistical frameworks, the philosophy of statistical modeling, and critical mathematical functions and probability distributions. It requires no programming background--only basic calculus and statistics. Practical, beginner-friendly introduction to modern statistical techniques for ecology using the programming language R Step-by-step instructions for fitting models to messy, real-world data Balanced view of different statistical approaches Wide coverage of techniques--from simple (distribution fitting) to complex (state-space modeling) Techniques for data manipulation and graphical display Companion Web site with data and R code for all examples

Analytic Combinatorics


Philippe Flajolet - 2008
    Thorough treatment of a large number of classical applications is an essential aspect of the presentation. Written by the leaders in the field of analytic combinatorics, this text is certain to become the definitive reference on the topic. The text is complemented with exercises, examples, appendices and notes to aid understanding therefore, it can be used as the basis for an advanced undergraduate or a graduate course on the subject, or for self-study.

Human Haptic Perception: Basics and Applications


Martin Grunwald - 2008
    This book's team of international authors presents the most comprehensive collection of writings on the subject of the human sense of touch published to date and cover the results of research as well as practical applications.

More Effective C#: 50 Specific Ways to Improve Your C#


Bill Wagner - 2008
    If you are serious about developing with the C# language, you need this book." -Bill Craun, Principal Consultant, Ambassador Solutions, Inc. "More Effective C# is an opportunity to work beside Bill Wagner. Bill leverages his knowledge of C# and distills his expertise down to some very real advice about programming and designing applications that every serious Visual C# user should know. More Effective C# is one of those rare books that doesn't just regurgitate syntax, but teaches you how to use the C# language." -Peter Ritchie, Microsoft MVP: Visual C# "More Effective C# is a great follow-up to Bill Wagner's previous book. The extensive C# 3.0 and LINQ coverage is extremely timely!" -Tomas Restrepo, Microsoft MVP: Visual C++, .NET, and Biztalk Server "As one of the current designers of C#, it is rare that I learn something new about the language by reading a book. More Effective C# is a notable exception. Gently blending concrete code and deep insights, Bill Wagner frequently makes me look at C# in a fresh light-one that really makes it shine. More Effective C# is at the surface a collection of very useful guidelines. Look again. As you read through it, you'll find that you acquire more than just the individual pieces of advice; gradually you'll pick up on an approach to programming in C# that is thoughtful, beautiful, and deeply pleasant. While you can make your way willy-nilly through the individual guidelines, I do recommend reading the whole book-or at least not skipping over the chapter introductions before you dive into specific nuggets of advice. There's perspective and insight to be found there that in itself can be an important guide and inspiration for your future adventures in C#." -Mads Torgersen, Program Manager, Visual C#, Microsoft "Bill Wagner has written an excellent book outlining the best practices for developers who work with the C# language. By authoring More Effective C#, he has again established himself as one of the most important voices in the C# community. Many of us already know how to use C#. What we need is advice on how to hone our skills so that we can become wiser programmers. There is no more sophisticated source of information on how to become a first-class C# developer than Bill Wagner's book. Bill is intelligent, thoughtful, experienced, and skillful. By applying the lessons from this book to your own code, you will find many ways to polish and improve the work that you produce." -Charlie Calvert, Community Program Manager, Visual C#, Microsoft In More Effective C#, Microsoft C# MVP and Regional Director Bill Wagner introduces fifty brand-new ways to write more efficient and more robust software. This all-new book follows the same format as Wagner's best-selling Effective C# (Addison-Wesley, 2005), providing clear, practical explanations, expert tips, and plenty of realistic code examples. Wagner shows how to make the most of powerful innovations built into Microsoft's new C# 3.0 and .NET Framework 3.5, as well as advanced C# language capabilities not covered in his previous book. Drawing on his unsurpassed C# experience, the author reveals new best practices for working with LINQ, generics, metaprogramming, and many other features. He also uncovers practices that compromise performance or reliability and shows exactly how to avoid them. More Effective C# shows how to Use generics to express your design intent more effectively Master advanced generics techniques, such as constraints, method constraints, and generic specialization Use the multithreaded techniques you'll need to work with the .NET framework every day Express modern design idioms using the rich palette of C# language features Successfully mix object oriented and functional programming constructs Create composable interfaces and avoid confusion in public interfaces Use extension methods to separate contracts from implementation Program successfully with C# closures and anonymous types Write more effective LINQ queries Make the most of LINQ Lazy Evaluation Queries and Lambda Expressions Distinguish and convert between delegates and expression trees Efficiently utilize nullable types and partial classes Use implicit properties for mutable, nonserializable data You're already a successful C# programmer-this book can help you become an outstanding one.

The C# Programming Language


Anders Hejlsberg - 2008
    Now, C# 3.0 adds functional programming techniques and LINQ, Language INtegrated Query. "The C# Programming Language, Third Edition, " is the authoritative and annotated technical reference for C# 3.0. Written by Anders Hejlsberg, the language's architect, and his colleagues, Mads Torgersen, Scott Wiltamuth, and Peter Golde, this volume has been completely updated and reorganized for C# 3.0. The book provides the complete specification of the language, along with descriptions, reference materials, code samples, and annotations from nine prominent C# gurus. The many annotations-a new feature in this edition-bring a depth and breadth of understanding rarely found in any programming book. As the main text of the book introduces the concepts of the C# language, cogent annotations explain why they are important, how they are used, how they relate to other languages, and even how they evolved. This book is the definitive, must-have reference for any developer who wants to understand C#.

Advanced Data Structures


Peter Brass - 2008
    Data structures are how data is stored within a computer, and how one can go about searching for data within. This text examines efficient ways to search and update sets of numbers, intervals, or strings by various data structures, such as search trees, structures for sets of intervals or piece-wise constant functions, orthogonal range search structures, heaps, union-find structures, dynamization and persistence of structures, structures for strings, and hash tables. This is the first volume to show data structures as a crucial algorithmic topic, rather than relegating them as trivial material used to illustrate object-oriented programming methodology, filling a void in the ever-increasing computer science market. Numerous code examples in C and more than 500 references make Advanced Data Structures an indispensable text. topic. Numerous code examples in C and more than 500 references make Advanced Data Structures an indispensable text.

Concurrent Programming on Windows


Joe Duffy - 2008
    . . . This places an emphasis on understanding not only the platform's capabilities but also emerging best practices. Joe does a great job interspersing best practices alongside theory throughout his book." - From the Foreword by Craig Mundie, Chief Research and Strategy Officer, Microsoft Corporation Author Joe Duffy has risen to the challenge of explaining how to write software that takes full advantage of concurrency and hardware parallelism. In Concurrent Programming on Windows, he explains how to design, implement, and maintain large-scale concurrent programs, primarily using C# and C++ for Windows. Duffy aims to give application, system, and library developers the tools and techniques needed to write efficient, safe code for multicore processors. This is important not only for the kinds of problems where concurrency is inherent and easily exploitable--such as server applications, compute-intensive image manipulation, financial analysis, simulations, and AI algorithms--but also for problems that can be speeded up using parallelism but require more effort--such as math libraries, sort routines, report generation, XML manipulation, and stream processing algorithms. Concurrent Programming on Windows has four major sections: The first introduces concurrency at a high level, followed by a section that focuses on the fundamental platform features, inner workings, and API details. Next, there is a section that describes common patterns, best practices, algorithms, and data structures that emerge while writing concurrent software. The final section covers many of the common system-wide architectural and process concerns of concurrent programming. This is the only book you'll need in order to learn the best practices and common patterns for programming with concurrency on Windows and .NET.

Discrete Mathematics: An Introduction to Proofs and Combinatorics


Kevin Ferland - 2008
    The author uses a range of examples to teach core concepts, while corresponding exercises allow students to apply what they learn. Throughout the text, engaging anecdotes and topics of interest inform as well as motivate learners. The text is ideal for one- or two-semester courses and for students who are typically mathematics, mathematics education, or computer science majors. Part I teaches student how to write proofs; Part II focuses on computation and problem solving. The second half of the book may also be suitable for introductory courses in combinatorics and graph theory.

Data Structures & Algorithms Using Java


William Mcallister - 2008
    This outstanding text correlates to the recommended syllabus put forth by the Association of Computing Machinery standard curriculum guidelines. The author has produced a resource that is more readable and instructional than any other, without compromising the scope of the ACM CS103, Data Structures and Algorithms, course material. The text's unique, student-friendly pedagogical approach and organizational structure will keep students engaged in the process of self-directed investigative discovery both inside and outside the classroom. The pedagogical features of the text, based on the author's 30 years of teaching experience, include succinct code examples, a unique common template used as the organizational basis of each chapter, the use of pseudocode to present the major algorithms developed in the text, nearly 300 carefully designed figures, and a concise review of Java.

Professional Visual Studio 2008


Nick Randolph - 2008
    Written by a unique author duo and offering an in-depth look at the powerful and fascinating features and techniques of the IDE, this book explores each aspect of the development life cycle from the perspective of how Visual Studio 2008 can make your life easier.Each chapter is packed with examples that illustrate uses for various tools, commands, and shortcuts of Visual Studio 2008. You will gradually learn to identify where a feature is used, conclude how you can use it to its fullest potential, and then seamlessly apply that feature to help solve real-world problems.

ISO27001/ISO27002: A Pocket Guide


Alan Calder - 2008
    This handy pocket guide is an essential overview of two key information security standards that cover the formal requirements (ISO27001:2013) for creating an Information Security Management System (ISMS), and the best-practice recommendations (ISO27002:2013) for those responsible for initiating, implementing or maintaining it.An ISMS based on ISO27001/ISO27002 offers a host of benefits:•Improved efficiency by having information security systems and procedures in place, enabling you to focus more on your core business.•Protects your information assets from a wide range of cyber threats, criminal activity, insider compromise and system failure.•Manage your risks systematically and establish plans to eliminate or reduce cyber threats.•Enables earlier detection of threats or processing errors, and faster resolution.Next step to certification?You can arrange for an independent audit of your ISMS against the specifications of ISO27001 and, if your ISMS conforms, eventually achieve accredited certification. We publish a range of ISMS documentation toolkits and books (such as Nine Steps to Success), to help you achieve this.Contents1. The ISO/IEC 27000 Family of Information Security Standards; 2. Background to the Standards; 3. Specification vs Code of Practice; 4. Certification Process; 5. The ISMS and ISO27001; 6. Overview of ISO/IEC 27001:2013; 7. Overview of ISO/IEC 27002:2013; 8. Documentation and Records; 9. Management Responsibility; 10. Process Approach and the PDCA Cycle; 11. Context, Policy and Scope; 12. Risk Assessment; 13. The Statement of Applicability; 14. Implementation; 15. Check and Act; 16. Management Review; 17. ISO27001 Annex AAbout the AuthorAlan Calder is the founder and executive chairman of IT Governance Ltd, an information, advice and consultancy firm that helps company boards tackle IT governance, risk management, compliance and information security issues. He has many years of senior management experience in the private and public sectors.A handy pocket guide providing an essential overview of two key information security standards – buy it today and learn how to protect your organisation’s most important asset.

Q For Mortals: A Tutorial In Q Programming


Jeffry A. Borror - 2008
    Based on courses taught by the author at major financial institutions, this tutorial is a tested way to learn the features of q. It assumes no specific programming knowledge and presents this complex language with understandable explanations and many hands-on examples. You will be able to read and write q programs when you finish this book. The q language is both a functional programming language and a vector programming language derived from APL. It is particularly well suited to processing very large time series data. Topics covered include: data types; operations and functions; the basic data structures, lists and dictionaries; tables and keyed tables; joins and queries; commands. There is a special section demonstrating typical queries against trade data. There is also a complete reference to all the built-in functions.

Fluid Simulation for Computer Graphics


Robert Bridson - 2008
    This book provides a practical introduction to fluid simulation for graphics. The focus is on animating fully three-dimensional incompressible flow, from understanding the math and the algorithms to the actual implementation.

Network Models and Optimization: Multiobjective Genetic Algorithm Approach


Mitsuo Gen - 2008
    This book presents an insightful, comprehensive, and up-to-date treatment of multiple objective genetic algorithms to network optimization problems in many disciplines.

P2P Networking and Applications


John Buford - 2008
    Although originally popularized by unlicensed online music services such as Napster, P2P networking has recently emerged as a viable multimillion dollar business model for the distribution of information, telecommunications, and social networking. Written at an accessible level for any reader familiar with fundamental Internet protocols, the book explains the conceptual operations and architecture underlying basic P2P systems using well-known commercial systems as models and also provides the means to improve upon these models with innovations that will better performance, security, and flexibility. Peer-to-Peer Networking and Applications is thus both a valuable starting point and an important reference to those practitioners employed by any of the 200 companies with approximately $400 million invested in this new and lucrative technology.

Genetic Algorithms and Genetic Programming: Modern Concepts and Practical Applications


Michael Affenzeller - 2008
    It applies the algorithms to significant combinatorial optimization problems and describes structure identification using HeuristicLab as a platform for algorithm development.The book focuses on both theoretical and empirical aspects. The theoretical sections explore the important and characteristic properties of the basic GA as well as main characteristics of the selected algorithmic extensions developed by the authors. In the empirical parts of the text, the authors apply GAs to two combinatorial optimization problems: the traveling salesman and capacitated vehicle routing problems. To highlight the properties of the algorithmic measures in the field of GP, they analyze GP-based nonlinear structure identification applied to time series and classification problems.Written by core members of the HeuristicLab team, this book provides a better understanding of the basic workflow of GAs and GP, encouraging readers to establish new bionic, problem-independent theoretical concepts. By comparing the results of standard GA and GP implementation with several algorithmic extensions, it also shows how to substantially increase achievable solution quality.

A Physicist's Guide to Mathematica


Patrick T. Tam - 2008
    Full description

Bio-Inspired Artificial Intelligence: Theories, Methods, and Technologies


Dario Floreano - 2008
    Traditionally, artificial intelligence has been concerned with reproducing the abilities of human brains; newer approaches take inspiration from a wider range of biological structures that that are capable of autonomous self-organization. Examples of these new approaches include evolutionary computation and evolutionary electronics, artificial neural networks, immune systems, biorobotics, and swarm intelligence--to mention only a few. This book offers a comprehensive introduction to the emerging field of biologically inspired artificial intelligence that can be used as an upper-level text or as a reference for researchers. Each chapter presents computational approaches inspired by a different biological system; each begins with background information about the biological system and then proceeds to develop computational models that make use of biological concepts. The chapters cover evolutionary computation and electronics; cellular systems; neural systems, including neuromorphic engineering; developmental systems; immune systems; behavioral systems--including several approaches to robotics, including behavior-based, bio-mimetic, epigenetic, and evolutionary robots; and collective systems, including swarm robotics as well as cooperative and competitive co-evolving systems. Chapters end with a concluding overview and suggested reading.

Data Structures in C


Noel Kalicharan - 2008
    The code can be accessed here:https: //onedrive.live.com/redir?resid=8ACA167...Data structures is concerned with the storage, representation and manipulation of data in a computer. We discuss some of the more versatile and popular data structures and explain how to implement and use them to solve a variety of useful problems. The book restricts itself to what can be covered in a one-semester course, without overwhelming the student with complexity and analysis. The approach is practical rather than theoretical. We show how to implement the data structures and operations on them using C.Here's what readers have to say about Data Structures In C:"It is second to none in terms of clarity, conciseness, choice of topics, coverage, layout, and even price and production value. All the usual linear, tree, and graph data structures and algorithms are covered, all striking the right balance between abstraction and detail.""This book has to be probably the best 'first book' I've ever come across for anyone who wants to learn data structures!""The author makes everything very easy to understand.""It is written very simply yet effectively with great code examples.""The book is well written, and the chapters are very well organized.""The simplicity and the way that this book teach the basics I think makes it the best first book on Data Structures.""All computer science students who wish to grasp a good understanding of these topics in the quickest of time, this it the book for you.""Kalicharan makes everything as simple as possible, but not simpler. Simplicity and crystal clarity are his trademark...It is about helping you to understand Data Structures and, for me, it is simply the best book for doing that.""The author seems to have a knack for boiling the topic down to its barest essentials and explaining those ideas in a way that makes it easy (and actually fun) to understand.""All the major data structure types are so well presented that it is difficult to find any other book(s) or website(s) which explains them better.""It has the best description of pointers (one of the pitfalls for C beginners) I have ever read." "Unlike other C books, Kalicharan gives a brilliant discussion of pointers."

Design Concepts in Programming Languages


Franklyn A. Turbak - 2008
    Designing a programming language is a metaprogramming activity that bears certain similarities to programming in a regular language, with clarity and simplicity even more important than in ordinary programming. This comprehensive text uses a simple and concise framework to teach key ideas in programming language design and implementation. The book's unique approach is based on a family of syntactically simple pedagogical languages that allow students to explore programming language concepts systematically. It takes as premise and starting point the idea that when language behaviors become incredibly complex, the description of the behaviors must be incredibly simple. The book presents a set of tools (a mathematical metalanguage, abstract syntax, operational and denotational semantics) and uses it to explore a comprehensive set of programming language design dimensions, including dynamic semantics (naming, state, control, data), static semantics (types, type reconstruction, polymporphism, effects), and pragmatics (compilation, garbage collection). The many examples and exercises offer students opportunities to apply the foundational ideas explained in the text. Specialized topics and code that implements many of the algorithms and compilation methods in the book can be found on the book's Web site, along with such additional material as a section on concurrency and proofs of the theorems in the text. The book is suitable as a text for an introductory graduate or advanced undergraduate programming languages course; it can also serve as a reference for researchers and practitioners.

Dynamic General Equilibrium Modeling: Computational Methods and Applications


Burkhard Heer - 2008
    In order to solve these models, economists need to use many mathematical tools. This book presents various methods in order to compute the dynamics of general equilibrium models. In part I, the representative-agent stochastic growth model is solved with the help of value function iteration, linear and linear quadratic approximation methods, parameterised expectations and projection methods. In order to apply these methods, fundamentals from numerical analysis are reviewed in detail. In particular, the book discusses issues that are often neglected in existing work on computational methods, e.g. how to find a good initial value.In part II, the authors discuss methods in order to solve heterogeneous-agent economies. In such economies, the distribution of the individual state variables is endogenous. This part of the book also serves as an introduction to the modern theory of distribution economics. Applications include the dynamics of the income distribution over the business cycle or the overlapping-generations model.In an accompanying home page to this book, computer codes to all applications can be downloaded.

Forth Application Techniques: Course Notebook


Elizabeth D. Rather - 2008
    We at FORTH, Inc. have trained several thousand programmers to use Forth with versions of this book. Over the years we have adapted the content to reflect changes in common Forth usage and evolving computer and OS technology. We have also continually updated the problems to reflect the kinds of issues programmers face in real-world programming. This Fifth Edition is the latest, updated in 2008.

Color Imaging: Fundamentals and Applications


Erik Reinhard - 2008
    The authors first treat the physics of light and its interaction with matter at the atomic level, so that the origins of color can be appreciated. The intimate relationship between energy levels, orbital states, and electromagnetic waves helps to explain why diamonds shimmer, rubies are red, and the feathers of the Blue Jay are blue. Then, color theory is explained from its origin to the current state of the art, including image capture and display as well as the practical use of color in disciplines such as computer graphics, computer vision, photography, and film.

Introduction to Java Programming [With Access Code]


Y. Daniel Liang - 2008
    The Brief version is suitable for a CS1 course.Regardless of major, students will be able to grasp concepts of problem-solving and programming -- thanks to Liang's fundamentals-first approach, students learn critical problem solving skills and core constructs before object-oriented programming. Liang's approach includes application-rich programming examples, which go beyond the traditional math-based problems found in most texts. Students are introduced to topics like control statements, methods, and arrays before learning to create classes. Later chapters introduce advanced topics including graphical user interface, exception handling, I/O, and data structures. Small, simple examples demonstrate concepts and techniques while longer examples are presented in case studies with overall discussions and thorough line-by-line explanations. In the Eighth Edition, only standard classes are used.

Technical Writing


B.N. Basu - 2008
    This book comprehensively teaches students the technicalities behind thesis writing. It shows how well-written journals and dissertations can help earn accolades in conferences or presentations.The book discusses elements to organize thesis paper in terms of numbering and referencing text. The book is also equipped with text-support materials such as figures, tables and mathematical equations. Some peripheral issues such as certificate and copyright have also been discussed in detail. Apart from that, the book is incorporated with a specimen copy of a thesis and a research paper. Intended for the researchers and fellow students, the book is equally beneficial for the engineers and scientists.

Pro Ubuntu Server Administration


Sander van Vugt - 2008
    After reading this book, you will be able to manage anything from simple file servers to multiple virtual servers to high-availability clusters. This is the capstone volume of the Apress Ubuntu trilogy that includes Beginning Ubuntu Linux, Third Edition and Beginning Ubuntu Server LTS Administration: From Novice to Professional, Second Edition. You will be able to make Ubuntu technology shine in a Fortune 500 environment and let Ubuntu server become the backbone of your infrastructure. Topics covered includePerformance monitoring and optimization High-availability clustering Advanced Lightweight Directory Access Protocol (LDAP) integrated networking

Beginning Microsoft Visual C# 2008


Karli Watson - 2008
    The book starts with absolute programming basics. It then moves into Web and Windows programming, data access (databases and XML), and more advanced technologies such as graphics programming with GDI+ and basic networking. The book is divided into sections including:The C# Language: Basic language skills using console application. Content moves from the absolute basics to fairly involved OOP skills.Windows Vista Programming: Using basic Windows applications, reinforcing earlier OOP and debugging skills.Web Programming: Putting together basic Web applications, highlighting differences between Web and Windows programming.Data Access: Accessing all kinds of data sources from Web and Windows applications, including SQL usage, XML, file system data, and Web Services.Additional Techniques: "The fun stuff," including Windows Presentation Foundation, Windows Workflow, Windows Communication Foundation, GDI+, networking, Windows Services, and so on. The book makes complicated subjects seem easy to learn, and it inspires readers to investigate areas further on their own by providing references to additional material, and exercise questions that require significant effort and personal research to complete.

Visual Data Mining: Theory, Techniques and Tools for Visual Analytics


Simeon Simoff - 2008
    Thenatureofwhatmakesaruleinterestingtoauserhasbeendiscussed 1 widely but most agree that it is a subjective quality based on the practical u- fulness of the information. Being subjective, the user needs to provide feedback to the system and, as is the case for all systems, the sooner the feedback is given the quicker it can in?uence the behavior of the system. There have been some impressive research activities over the past few years but the question to be asked is why is visual data mining only now being - vestigated commercially? Certainly, there have been arguments for visual data 2 mining for a number of years - Ankerst and others argued in 2002 that current (autonomous and opaque) analysis techniques are ine?cient, as they fail to - rectly embed the user in dataset exploration and that a better solution involves the user and algorithm being more tightly coupled. Grinstein stated that the "current state of the art data mining tools are automated, but the perfect data mining tool is interactive and highly participatory," while Han has suggested that the "data selection and viewing of mining results should be fully inter- tive, the mining process should be more interactive than the current state of the 2 art and embedded applications should be fairly automated . " A good survey on 3 techniques until 2003 was published by de Oliveira and Levkowitz .

The Ansi Common Lisp Reference Book


David Margolies - 2008
    is described with usage examples.* Related topics are linked (so alternative solutions can be considered).* Common features of different operators will typically be described specially. This indicates to users that they need only learn a feature once to use it in any context.* Short descriptions are provided so the relevance of a particular page can be quickly determined.* Special essays on general topics provide introductions to aspects of the Common Lisp language that the reader may not be familiar with.* An up-to-date reference manual designed for programmers actually using the Lisp language

Wavelet Methods in Statistics with R


G.P. Nason - 2008
    I believe that the same can be said about wavelets. Although particular wavelets were discovered many years ago, the substantial body of literature that we might today call 'wavelet theory' began to be established during the 1980s. Wavelets were introduced into statistics during the late 1980s and early 1990s, and they were initially popular in the curve estimation literature. From there they spread in di?erent ways to many areassuchassurvivalanalysis, statisticaltimeseriesanalysis, statisticalimage processing, inverse problems, and variance stabilization. The French Revolution was also the historical backdrop for the introd- tion of Fourier series which itself raised considerable objections from the s- enti?c establishment of the day, see Westheimer (2001). Despite those early objections, we ?nd that, 200 years later, many new Fourier techniques are regularly being invented in many di?erent ?elds. Wavelets are also a true s- enti?c revolution. Some of their interesting features are easy to appreciate: e.g., multiscale, localization, or speed. Other important aspects, such as the unconditional basis property, deserve to be better known. I hope that this book, in some small way, enables the creation of many new wavelet methods.

Numerical Geometry of Non-Rigid Shapes


Alexander Bronstein - 2008
    Practice problems follow at the end of each chapter, along with detailed solutions.

Architecting Software Intensive Systems: A Practitioners Guide


Anthony J. Lattanze - 2008
    Early design decisions establish the structures necessary for achieving broad systemic properties. However, today's organizations lack synergy between software their development processes and technological methodologies. Providing a thorough treatment of the latest theory and best practices, Architecting Software Intensive Systems: A Practitioner's Guide explains:How and when to design architectures How to weave architecture design processes into existing development processes What to do with architecture design artifacts once createdThe first section establishes key concepts in architectural design for software intensive systems, including architectural drivers, structures, and fundamental guidance for architectural design. The book goes on to describe the industry tested Architecture Centric Design Method. Each stage of the method is explained and the book provides all of the supporting templates and checklists. The last section discusses practical matters, including how to adopt disciplined architectural design practices into existing organizational development processes.With the principled understanding of design provided by this book, architects can temper their visceral instinct to react and be better prepared to address a broader range of design problems regardless of business context or their domain experience.

Shader X6: Advanced Rendering Techniques [With CDROM]


Wolfgang Engel - 2008
    This all-new volume is packed with a collection of insightful techniques, innovative approaches to common problems, and practical tools and tricks that provide you with a complete shader programming toolbox. Every article was developed from the research and experiences of industry pros and edited by shader experts, resulting in unbiased coverage of all hardware and developer tools. ShaderX6: Advanced Rendering Techniques provides coverage of the vertex and pixel shader methods used in high-end graphics and game development. These state-of-the-art, ready-to-use solutions will help you meet your everyday programming challenges and bring your graphics to a new level of realism. This collection offers time-saving solutions to help you become more effi cient and productive, and is a must-have reference for all shader programmers.

Practical Text Mining with Perl


Roger Bilisoly - 2008
    It covers mining ideas from several perspectives--statistics, data mining, linguistics, and information retrieval--and provides readers with the means to successfully complete text mining tasks on their own.The book begins with an introduction to regular expressions, a text pattern methodology, and quantitative text summaries, all of which are fundamental tools of analyzing text. Then, it builds upon this foundation to explore:Probability and texts, including the bag-of-words model Information retrieval techniques such as the TF-IDF similarity measure Concordance lines and corpus linguistics Multivariate techniques such as correlation, principal components analysis, and clustering Perl modules, German, and permutation tests Each chapter is devoted to a single key topic, and the author carefully and thoughtfully introduces mathematical concepts as they arise, allowing readers to learn as they go without having to refer to additional books. The inclusion of numerous exercises and worked-out examples further complements the book's student-friendly format.Practical Text Mining with Perl is ideal as a textbook for undergraduate and graduate courses in text mining and as a reference for a variety of professionals who are interested in extracting information from text documents.

Dependency Parsing


Sandra Kübler - 2008
    This book gives a thorough introduction to the methods that are most widely used today. After an introduction to dependency grammar and dependency parsing, followed by a formal characterization of the dependency parsing problem, the book surveys the three major classes of parsing models that are in current use: transition-based, graph-based, and grammar-based models. It continues with a chapter on evaluation and one on the comparison of different methods, and it closes with a few words on current trends and future prospects of dependency parsing. The book presupposes a knowledge of basic concepts in linguistics and computer science, as well as some knowledge of parsing methods for constituency-based representations. Table of Contents: Introduction / Dependency Parsing / Transition-Based Parsing / Graph-Based Parsing / Grammar-Based Parsing / Evaluation / Comparison / Final Thoughts

Computational Complexity


Oded Goldreich - 2008
    It addresses the looming question of what can be achieved within a limited amount of time with or without other limited natural computational resources. Can be used as an introduction for advanced undergraduate and graduate students as either a textbook or for self-study, or to experts, since it provides expositions of the various sub-areas of complexity theory such as hardness amplification, pseudorandomness and probabilistic proof systems.

Learning OpenCV: Computer Vision with the OpenCV Library


Gary Bradski - 2008
    Freeman, Computer Science and Artificial Intelligence Laboratory, Massachusetts Institute of TechnologyLearning OpenCV puts you in the middle of the rapidly expanding field of computer vision. Written by the creators of the free open source OpenCV library, this book introduces you to computer vision and demonstrates how you can quickly build applications that enable computers to "see" and make decisions based on that data. Computer vision is everywhere-in security systems, manufacturing inspection systems, medical image analysis, Unmanned Aerial Vehicles, and more. It stitches Google maps and Google Earth together, checks the pixels on LCD screens, and makes sure the stitches in your shirt are sewn properly. OpenCV provides an easy-to-use computer vision framework and a comprehensive library with more than 500 functions that can run vision code in real time.Learning OpenCV will teach any developer or hobbyist to use the framework quickly with the help of hands-on exercises in each chapter. This book includes:A thorough introduction to OpenCV Getting input from cameras Transforming images Segmenting images and shape matching Pattern recognition, including face detection Tracking and motion in 2 and 3 dimensions 3D reconstruction from stereo vision Machine learning algorithms Getting machines to see is a challenging but entertaining goal. Whether you want to build simple or sophisticated vision applications, Learning OpenCV is the book you need to get started.

Expert Oracle Database 11g Administration


Sam R. Alapati - 2008
    A comprehensive handbook for Oracle database administrators using the latest release of the Oracle Database, this guide covers all aspects of database administration including backup and recovery, day-to-day administration and monitoring, performance tuning, and more.

Decision Procedures: An Algorithmic Point of View


Daniel Kroening - 2008
    Here, the authors focus on theories that are expressive enough to model real problems, but are still decidable. Specifically, the book concentrates on decision procedures for first-order theories that are commonly used in automated verification and reasoning, theorem-proving, compiler optimization and operations research. The techniques described in the book draw from fields such as graph theory and logic, and are routinely used in industry.The authors introduce the basic terminology of satisfiability modulo theories and then, in separate chapters, study decision procedures for each of the following theories: propositional logic; equalities and uninterpreted functions; linear arithmetic; bit vectors; arrays; pointer logic; and quantified formulas. They also study the problem of deciding combined theories and dedicate a chapter to modern techniques based on an interplay between a SAT solver and a decision procedure for the investigated theory.This textbook has been used to teach undergraduate and graduate courses at ETH Zurich, at the Technion, Haifa, and at the University of Oxford. Each chapter includes a detailed bibliography and exercises. Lecturers' slides and a C++ library for rapid prototyping of decision procedures are available from the authors' website.

Beginning Ubuntu LTS Server Administration: From Novice to Professional (Expert's Voice in Linux)


Sander van Vugt - 2008
    Author Sander van Vugt introduces the most recent server edition of Ubuntu Linux, the most popular Linux distribution, to power users, system administrators, and programmers and demonstrates the power and flexibility that the Hardy–Heron Ubuntu Server Long Term Support Edition offers for small networks and corporate systems alike. This book covers: Installing and configuring Ubuntu to ensure secure installations Virtual Ubuntu Full network and web services management What you’ll learn Administer, install, and configure the 5–year Hardy–Heron Ubuntu Server Long Term Support Edition of the most popular Linux distribution in the world Use the new installation and GUI tools Familiarize yourself, whether you are a power user or system administrator Build a network infrastructure with Ubuntu Server Harden Ubuntu to withstand new security threats Use virtual services Who this book is forThis book will suit Linux system administrators of all levels. It also lets power users who want to familiarize themselves with network and web services relevant to their work acquire up–to–date specialized Ubuntu skills.