From object technology pioneer and ETH Zurich professor Bertrand Meyer, winner of the Jolt award and the ACM Software System Award, a revolutionary textbook that makes learning programming fun and rewarding. Meyer builds his presentation on a rich object-oriented software system supporting graphics and multimedia, which students can use to produce impressive applications from day one, then understand inside out as they learn new programming techniques. Unique to Touch of Class is a combination of a practical, hands-on approach to programming with the introduction of sound theoretical support focused on helping students learn the construction of high quality software. The use of full color brings exciting programming concepts to life. Among the useful features of the book is the use of Design by Contract, critical to software quality and providing a gentle introduction to formal methods. Will give students a major advantage by teaching professional-level techniques in a literate, relaxed and humorous way.
From an award-winning project comes an inspiring, collaborative book that makes data artistic, personal - and open to all Each week for a year, Giorgia and Stefanie sent each other a postcard describing what had happened to them during that week around a particular theme. But they didn´t write it, they drew it: a week of smiling, a week of apologies, a week of desires. Presenting their fifty-two cards, along with thoughts and ideas about the data-drawing process, Dear Data hopes to inspire you to draw, slow down and make connections with other people, to see the world through a new lens, where everything and anything can be a creative starting point for play and expression.
Computer Architecture: A Quantitative Approach, Sixth Edition has been considered essential reading by instructors, students and practitioners of computer design for over 20 years. The sixth edition of this classic textbook from Hennessy and Patterson, winners of the 2017 ACM A.M. Turing Award recognizing contributions of lasting and major technical importance to the computing field, is fully revised with the latest developments in processor and system architecture. The text now features examples from the RISC-V (RISC Five) instruction set architecture, a modern RISC instruction set developed and designed to be a free and openly adoptable standard. It also includes a new chapter on domain-specific architectures and an updated chapter on warehouse-scale computing that features the first public information on Google´s newest WSC. True to its original mission of demystifying computer architecture, this edition continues the longstanding tradition of focusing on areas where the most exciting computing innovation is happening, while always keeping an emphasis on good engineering design. Includes a new chapter on domain-specific architectures, explaining how they are the only path forward for improved performance and energy efficiency given the end of Moore´s Law and Dennard scaling Features the first publication of several DSAs from industry Features extensive updates to the chapter on warehouse-scale computing, with the first public information on the newest Google WSC Offers updates to other chapters including new material dealing with the use of stacked DRAM; data on the performance of new NVIDIA Pascal GPU vs. new AVX-512 Intel Skylake CPU; and extensive additions to content covering multicore architecture and organization Includes ´´Putting It All Together´´ sections near the end of every chapter, providing real-world technology examples that demonstrate the principles covered in each chapter Includes review appendices in the printed text and additional reference appendices available online Includes updated and improved case studies and exercises ACM named John L. Hennessy and David A. Patterson, recipients of the 2017 ACM A.M. Turing Award for pioneering a systematic, quantitative approach to the design and evaluation of computer architectures with enduring impact on the microprocessor industry
Software is everywhere today, but countless software products and projects die a slow death without ever making any impact. The result is a tremendous amount of time and money wasted due to wrong assumptions, lack of focus, poor communication of objectives, lack of understanding and misalignment with overall goals. There has to be a better way to deliver! This handbook is a practical guide to impact mapping, a simple yet incredibly effective method for collaborative strategic planning that helps organisations make an impact with software. Impact mapping helps to create better plans and roadmaps that ensure alignment of business and delivery, and are easily adaptable to change. Impact mapping fits nicely into several current trends in software product management and release planning, including goal-oriented requirements engineering, frequent iterative delivery, agile and lean software methods, lean startup product development cycles, and design thinking. About the Author Gojko Adzic is a strategic software delivery consultant who works with ambitious teams to improve the quality of their software products and processes. Gojko won the 2012 Jolt Award for the best book, was voted by peers as the most influential agile testing professional in 2011, and his blog won the UK Agile Award for the best online publication in 2010.
No pleasure lasts long unless there is variety in it. Publilius Syrus, Moral Sayings We´ve been very fortunate to receive fantastic feedback from our readers during the last four years, since the first edition of How to Solve It: Modern Heuristics was published in 1999. It´s heartening to know that so many people appreciated the book and, even more importantly, were using the book to help them solve their problems. One professor, who published a review of the book, said that his students had given the best course reviews he´d seen in 15 years when using our text. There can be hardly any better praise, except to add that one of the book reviews published in a SIAM journal received the best review award as well. We greatly appreciate your kind words and personal comments that you sent, including the few cases where you found some typographical or other errors. Thank you all for this wonderful support.
´´It´s been a long time since any book has given me the excitement I remember from reading Hawking and Feynman in my teens. This book does exactly that. It reminds me why I love computer science. MacCormick´s explanations are easy to understand yet they tell the real story of how these algorithms actually work. This is a book that deserves not just to be admired, but celebrated.´´--Andrew Fitzgibbon, creator of Emmy-winning camera software and consultant for the Xbox 360 Kinect´´This book is for those who have wondered, ´What actually goes on in my computer?´ MacCormick clearly explains some of the algorithms used by hundreds of millions of people daily. Not the simple algorithms like arithmetic and sorting, but more complex things such as how to determine the importance of web pages, if and when we are justified in trusting a computer-mediated conversation with another person, and the puzzling issue of what cannot be computed. I recommend it highly.´´--Chuck Thacker, winner of the 2010 Turing Award´´This is a delightful exploration, in layman´s terms, of nine beautiful algorithms that are essential to today´s computers. Using clever analogies, MacCormick gives readers a greater knowledge of both the technology they use every day and the intellectual underpinnings of computing. He combines a mathematician´s appreciation of powerful ideas and an educator´s skill at explaining them in an engaging way.´´--Sharon Perl, Google´´MacCormick picks nine algorithms for his version of ´genius awards,´ and they are good ones. The reader comes away with a new sense of what genius in computer science looks like. And MacCormick leaves room for a future genius, perhaps inspired by this book, to someday make it a top ten list.´´--William H. Press, coauthor of Numerical Recipes´´John MacCormick has taken many of the algorithms that we rely on every day and explained them in a way that you can understand even if you have a meager mathematical background. I particularly like how he explains public-key cryptography by analogy to mixing paint.´´--Thomas H. Cormen, Dartmouth College´´MacCormick does a great job of explaining sophisticated ideas in a simple way, and his analogies are wonderful. I particularly enjoyed the thoughtful and detailed historical asides.´´--Amy N. Langville, coauthor of Google´s PageRank and Beyond: The Science of Search Engine Rankings
This book will help you write better stories, spot and fix common issues, split stories so that they are smaller but still valuable, and deal with difficult stuff like crosscutting concerns, long-term effects and non-functional requirements. Above all, this book will help you achieve the promise of agile and iterative delivery: to ensure that the right stuff gets delivered through productive discussions between delivery team members and business stakeholders. Who is this book for? This is a book for anyone working in an iterative delivery environment, doing planning with user stories. The ideas in this book are useful both to people relatively new to user stories and those who have been working with them for years. People who work in software delivery, regardless of their role, will find plenty of tips for engaging stakeholders better and structuring iterative plans more effectively. Business stakeholders working with software teams will discover how to provide better information to their delivery groups, how to set better priorities and how to outrun the competition by achieving more with less software. What´s inside? Unsurprisingly, the book contains exactly fifty ideas. They are grouped into five major parts: - Creating stories: This part deals with capturing information about stories before they get accepted into the delivery pipeline. You´ll find ideas about what kind of information to note down on story cards and how to quickly spot potential problems. - Planning with stories: This part contains ideas that will help you manage the big-picture view, set milestones and organise long-term work. - Discussing stories: User stories are all about effective conversations, and this part contains ideas to improve discussions between delivery teams and business stakeholders. You´ll find out how to discover hidden assumptions and how to facilitate effective conversations to ensure shared understanding. - Splitting stories: The ideas in this part will help you deal with large and difficult stories, offering several strategies for dividing them into smaller chunks that will help you learn fast and deliver value quickly. - Managing iterative delivery: This part contains ideas that will help you work with user stories in the short and mid term, manage capacity, prioritise and reduce scope to achieve the most with the least software. About the authors: Gojko Adzic is a strategic software delivery consultant who works with ambitious teams to improve the quality of their software products and processes. Gojko´s book Specification by Example was awarded the #2 spot on the top 100 agile books for 2012 and won the Jolt Award for the best book of 2012. In 2011, he was voted by peers as the most influential agile testing professional, and his blog won the UK agile award for the best online publication in 2010. David Evans is a consultant, coach and trainer specialising in the field of Agile Quality. David helps organisations with strategic process improvement and coaches teams on effective agile practice. He is regularly in demand as a conference speaker and has had several articles published in international journals.
Usability Testing Essentials provides readers with the tools and techniques needed to begin usability testing or to advance their knowledge in this area. The book begins by presenting the essentials of usability testing, which include focusing on the user and not the product; knowing when to conduct small or large studies; and thinking of usability as hill climbing. It then reviews testing options and places usability testing into the context of a user-centered design (UCD). It goes on to discuss the planning, preparation, and implementation of a usability test. The remaining chapters cover the analysis and reporting of usability test findings, and the unique aspects of international usability testing. This book will be useful to anyone else involved in the development or support of any type of product, such as software or web developers, engineers, interaction designers, information architects, technical communicators, visual or graphic designers, trainers, user-assistance specialists, and instructional technologists. Provides a comprehensive, step-by-step guide to usability testing, a crucial part of every product´s development The fully updated four-color edition now features important usability issues such as international testing, persona creation, remote testing, and accessibility Follow-up to Usability Testing and Research (9780205315192, Longman, 2001), winner of the highest-level award from the Society for Technical Communication
Testing at Google Scale Product Description 2012 Jolt Award finalist! Pioneering the Future of Software Test Do you need to get it right, too? Then, learn from Google . Legendary testing expert James Whittaker, until recently a Google testing leader, and two top Google experts reveal exactly how Google tests software, offering brand-new best practices you can use even if you?re not quite Google?s size? yet! Breakthrough Techniques You Can Actually Use Discover 100% practical, amazingly scalable techniques for analyzing risk and planning tests?thinking like real users?implementing exploratory, black box, white box, and acceptance testing?getting usable feedback?tracking issues?choosing and creating tools?testing ?Docs & Mocks,? interfaces, classes, modules, libraries, binaries, services, and infrastructure?reviewing code and refactoring?using test hooks, presubmit scripts, queues, continuous builds, and more. With these techniques, you can transform testing from a bottleneck into an accelerator ?and make your whole organization more productive! Features + Benefits Presents pioneering testing techniques that can help any company moving to the cloud Shows how to achieve web-level scale for integration and system testing Offers expert guidance on managing end-to-end testing, including superior automation strategies Foreword by Alberto Savoia xiii Foreword by Patrick Copeland xvii Preface xxiii Chapter 1: Introduction to Google Software Testing 1 Quality?Test 5 Roles 6 Organizational Structure 8 Crawl, Walk, Run 10 Types of Tests 12 Chapter 2: The Software Engineer in Test 15 The Life of an SET 17 Development and Test Workflow 17 Who Are These SETs Anyway? 22 The Early Phase of a Project 22 Team Structure 24 Design Docs 25 Interfaces and Protocols 27 Automation Planning 28 Testability 29 SET Workflow: An Example 32 Test Execution 40 Test Size Definitions 41 Use of Test Sizes in Shared Infrastructure 44 Benefits of Test Sizes 46 Test Runtime Requirements 48 Case 1: Change in Common Library 52 Test Certified 54 An Interview with the Founders of the Test Certified Program 57 Interviewing SETs 62 An Interview with Tool Developer Ted Mao 68 An Interview with Web Driver Creator Simon Stewart 70 Chapter 3: The Test Engineer 75 A User-Facing Test Role 75 The Life of a TE 76 Test Planning 79 Risk 97 Life of a Test Case 108 Life of a Bug 113 Recruiting TEs 127 Test Leadership at Google 134 Maintenance Mode Testing 137 Quality Bots Experiment 141 BITE Experiment 153 Google Test Analytics 163 Free Testing Workflow 169 External Vendors 173 An Interview with Google Docs TE Lindsay Webster 175 An Interview with YouTube TE Apple Chow 181 Chapter 4: The Test Engineering Manager 187 The Life of a TEM 187 Getting Projects and People 189 Impact 191 An Interview with Gmail TEM Ankit Mehta 193 An Interview with Android TEM Hung Dang 198 An Interview with Chrome TEM Joel Hynoski 202 The Test Engineering Director 206 An Interview with Search and Geo Test Director Shelton Mar 207 An Interview with Engineering Tools Director Ashish Kumar 211 An Interview with Google India Test Director Sujay Sahni 214 An Interview with Engineering Manager Brad Green 219 An Interview with James Whittaker 222 Chapter 5: Improving How Google Tests Software 229 Fatal Flaws in Google´s Process 229 The Future of the SET 231 The Future of the TE 233 The Future of the Test Director and Manager 234 The Future of Test Infrastructure 234 In Conclusion 235 Appendix A: Chrome OS Test Plan 237 Overview of Themes 237 Risk Analysis 238 Per-Build Baseline Testing 239 Per-LKG Day Testing 239 Per-Release Testing 239 Manual Versus Automation 240 Dev Versus Test Quality Focus 240 Release Channels 240 User Input 241 Test Case Repositories 241 Test Dashboarding 241 Virtualization 241 Performance 242 Stress, Long-Running, and Stability 242 Test Execution Framework (Autotest) 242 OEMs 242 Hardware Lab 242 E2E Farm Automation 243 Testing the Browser AppManager 243 Browser Testability 243 Hardware 244 Timeline 244 Primary Test Drivers 246 Relevant Documents 246 Appendix B: Test Tours for Chrome 247 The Shopping Tour 247 The Student Tour 248 Suggested Areas to Test 248 The International Calling Tour 249 Suggested Areas to Test 249 The Landmark Tour 249 Suggested Landmarks in Chrome 249 The All Nighter Tour 250 Suggested Areas to Test 250 The Artisan´s Tour 251 Tools in Chrome 251 The Bad Neighborhood Tour 251 Bad Neighborhoods in Chrome OS 251 The Personalization Tour 252 Ways to Customize
Computer Organization and Design, Fifth Edition, is the latest update to the classic introduction to computer organization. The text now contains new examples and material highlighting the emergence of mobile computing and the cloud. It explores this generational change with updated content featuring tablet computers, cloud infrastructure, and the ARM (mobile computing devices) and x86 (cloud computing) architectures. The book uses a MIPS processor core to present the fundamentals of hardware technologies, assembly language, computer arithmetic, pipelining, memory hierarchies and I/O.Because an understanding of modern hardware is essential to achieving good performance and energy efficiency, this edition adds a new concrete example, Going Faster, used throughout the text to demonstrate extremely effective optimization techniques. There is also a new discussion of the Eight Great Ideas of computer architecture. Parallelism is examined in depth with examples and content highlighting parallel hardware and software topics. The book features the Intel Core i7, ARM Cortex-A8 and NVIDIA Fermi GPU as real-world examples, along with a full set of updated and improved exercises. This new edition is an ideal resource for professional digital system designers, programmers, application developers, and system software developers. It will also be of interest to undergraduate students in Computer Science, Computer Engineering and Electrical Engineering courses in Computer Organization, Computer Design, ranging from Sophomore required courses to Senior Electives. Winner of a 2014 Texty Award from the Text and Academic Authors Association Includes new examples, exercises, and material highlighting the emergence of mobile computing and the cloud Covers parallelism in depth with examples and content highlighting parallel hardware and software topics Features the Intel Core i7, ARM Cortex-A8 and NVIDIA Fermi GPU as real-world examples throughout the book Adds a new concrete example, ´´Going Faster,´´ to demonstrate how understanding hardware can inspire software optimizations that improve performance by 200 times Discusses and highlights the ´´Eight Great Ideas´´ of computer architecture: Performance via Parallelism; Performance via Pipelining; Performance via Prediction; Design for Moore´s Law; Hierarchy of Memories; Abstraction to Simplify Design; Make the Common Case Fast; and Dependability via Redundancy Includes a full set of updated and improved exercises