Book picks similar to
Computer Science: An Overview by Glenn Brookshear


computer-science-and-coding
computers
in-korea
life-reboot

Letters to a Law Student: A guide to studying law at university


Nicholas J McBride - 2017
    

Normal Accidents: Living with High-Risk Technologies


Charles Perrow - 1984
    Charles Perrow argues that the conventional engineering approach to ensuring safety--building in more warnings and safeguards--fails because systems complexity makes failures inevitable. He asserts that typical precautions, by adding to complexity, may help create new categories of accidents. (At Chernobyl, tests of a new safety system helped produce the meltdown and subsequent fire.) By recognizing two dimensions of risk--complex versus linear interactions, and tight versus loose coupling--this book provides a powerful framework for analyzing risks and the organizations that insist we run them.The first edition fulfilled one reviewer's prediction that it may mark the beginning of accident research. In the new afterword to this edition Perrow reviews the extensive work on the major accidents of the last fifteen years, including Bhopal, Chernobyl, and the Challenger disaster. The new postscript probes what the author considers to be the quintessential 'Normal Accident' of our time: the Y2K computer problem.

Digital Wars: Apple, Google, Microsoft and the Battle for the Internet


Charles Arthur - 2012
    Arthur looks at what are now the three best-known tech companies and through the voices of former and current staff examines their different strategies to try to win the battle to control the exploding network connecting the world. Microsoft was a giant -- soon to become the highest-valued company in the world, while Apple was a minnow and Google just a startup. By February 10 2012, Apple was worth more ($462bn) than both Microsoft ($258bn) and Google ($198bn) combined.The chance had come from tumultuous battles between the three. To win their battles: Apple used design, the vertical model of controlling the hardware and software and a relentless focus on the customer to the exclusion of others.Microsoft depended on the high quality of its employees' programming skills and its monopolies in software to try to move into new markets - such as search and music.Google focused on being quick, efficient and using the power of data analysis - not human "taste" - to make decisions and get ahead of would-be rivals.With exclusive information from interviews with current and former employees of the three companies Arthur also addresses:- What the inventors of the hard drive used in the iPod thought it would really be used for- How Apple transformed the smartphone market- Which of Android or Apple forced Microsoft to abandon Windows Mobile- What happened to Microsoft's tablet plans

Grand Theft Childhood: The Surprising Truth about Violent Video Games and What Parents Can Do


Lawrence Kutner - 2008
    Half of twelve-year-olds regularly play violent, Mature-rated games. And parents are worried... "I don't know if it's an addiction, but my son is just glued to it. It's the same with my daughter with her computer... and I can't be watching both of them all the time, to see if they're talking to strangers or if someone is getting killed in the other room on the PlayStation. It's just nerve-racking!" "I'm concerned that this game playing is just the kid and the TV screen... how is this going to affect his social skills?""I'm not concerned about the violence; I'm concerned about the way they portray the violence. It's not accidental; it's intentional. They're just out to kill people in some of these games." What should we as parents, teachers and public policy makers be concerned about? The real risks are subtle and aren't just about gore or sex. Video games don't affect all children in the same way; some children are at significantly greater risk. (You may be surprised to learn which ones!) Grand Theft Childhood gives parents practical, research-based advice on ways to limit many of those risks. It also shows how video games -- even violent games -- can benefit children and families in unexpected ways.In this groundbreaking and timely book, Drs. Lawrence Kutner and Cheryl Olson cut through the myths and hysteria, and reveal the surprising truth about kids and violent games.

Python 3 Object Oriented Programming


Dusty Phillips - 2010
    Many examples are taken from real-world projects. The book focuses on high-level design as well as the gritty details of the Python syntax. The provided exercises inspire the reader to think about his or her own code, rather than providing solved problems. If you're new to Object Oriented Programming techniques, or if you have basic Python skills and wish to learn in depth how and when to correctly apply Object Oriented Programming in Python, this is the book for you. If you are an object-oriented programmer for other languages, you too will find this book a useful introduction to Python, as it uses terminology you are already familiar with. Python 2 programmers seeking a leg up in the new world of Python 3 will also find the book beneficial, and you need not necessarily know Python 2.

The Pragmatic Programmer: From Journeyman to Master


Andy Hunt - 1999
    It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how toFight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.

Algorithms


Robert Sedgewick - 1983
    This book surveys the most important computer algorithms currently in use and provides a full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing -- including fifty algorithms every programmer should know. In this edition, new Java implementations are written in an accessible modular programming style, where all of the code is exposed to the reader and ready to use.The algorithms in this book represent a body of knowledge developed over the last 50 years that has become indispensable, not just for professional programmers and computer science students but for any student with interests in science, mathematics, and engineering, not to mention students who use computation in the liberal arts.The companion web site, algs4.cs.princeton.edu contains An online synopsis Full Java implementations Test data Exercises and answers Dynamic visualizations Lecture slides Programming assignments with checklists Links to related material The MOOC related to this book is accessible via the "Online Course" link at algs4.cs.princeton.edu. The course offers more than 100 video lecture segments that are integrated with the text, extensive online assessments, and the large-scale discussion forums that have proven so valuable. Offered each fall and spring, this course regularly attracts tens of thousands of registrants.Robert Sedgewick and Kevin Wayne are developing a modern approach to disseminating knowledge that fully embraces technology, enabling people all around the world to discover new ways of learning and teaching. By integrating their textbook, online content, and MOOC, all at the state of the art, they have built a unique resource that greatly expands the breadth and depth of the educational experience.

Effective Java


Joshua Bloch - 2001
    The principal enhancement in Java 8 was the addition of functional programming constructs to Java's object-oriented roots. Java 7, 8, and 9 also introduced language features, such as the try-with-resources statement, the diamond operator for generic types, default and static methods in interfaces, the @SafeVarargs annotation, and modules. New library features include pervasive use of functional interfaces and streams, the java.time package for manipulating dates and times, and numerous minor enhancements such as convenience factory methods for collections. In this new edition of Effective Java, Bloch updates the work to take advantage of these new language and library features, and provides specific best practices for their use. Java's increased support for multiple paradigms increases the need for best-practices advice, and this book delivers. As in previous editions, each chapter consists of several "items," each presented in the form of a short, standalone essay that provides specific advice, insight into Java platform subtleties, and updated code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why. Coverage includes:Updated techniques and best practices on classic topics, including objects, classes, methods, libraries, and generics How to avoid the traps and pitfalls of commonly misunderstood subtleties of the platform Focus on the language and its most fundamental libraries, such as java.lang and java.util

Working Effectively with Legacy Code


Michael C. Feathers - 2004
    This book draws on material Michael created for his renowned Object Mentor seminars, techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control. The topics covered include: Understanding the mechanics of software change, adding features, fixing bugs, improving design, optimizing performance Getting legacy code into a test harness Writing tests that protect you against introducing new problems Techniques that can be used with any language or platform, with examples in Java, C++, C, and C# Accurately identifying where code changes need to be made Coping with legacy systems that aren't object-oriented Handling applications that don't seem to have any structureThis book also includes a catalog of twenty-four dependency-breaking techniques that help you work with program elements in isolation and make safer changes.

Masters of Deception: The Gang That Ruled Cyberspace


Michelle Slatalla - 1995
    "An immensely fun and -- one cannot emphasize this enough -- accessible history of the first outlaws in cyberspace."--Glamour

A Theory of Fun for Game Design


Raph Koster - 2004
    It features a novel way of teaching interactive designers how to create and improve their designs to incorporate the highest degree of fun. As the book shows, designing for fun is all about making interactive products like games highly entertaining, engaging, and addictive. The book's unique approach of providing a highly visual storyboard approach combined with a narrative on the art and practice of designing for fun is sure to be a hit with game and interactive designers.At first glance A Theory of Fun for Game Design is a book that will truly inspire and challenge game designers to think in new ways; however, its universal message will influence designers from all walks of life. This book captures the real essence of what drives us to seek out products and experiences that are truly fun and entertaining. The author masterfully presents his engaging theory by showing readers how many designs are lacking because they are predictable and not engaging enough. He then explains how great designers use different types of elements in new ways to make designs more fun and compelling. Anyone who is interested in design will enjoy how the book works on two levels--as a quick inspiration guide to game design, or as an informative discussion that details the insightful thinking from a great mind in the game industry.

Prom Changed Everything


N.L. Paradox - 2017
    He never expected to be dragged into a terrifying series of events that culminates in a single moment of horror, one that would forever change his life in a way no teenager should have to endure. Now Eric must face an uncertain future while combating the ghosts of the past that threaten to rip away any happiness in his life.

Complexity: A Guided Tour


Melanie Mitchell - 2009
    Based on her work at the Santa Fe Institute and drawing on its interdisciplinary strategies, Mitchell brings clarity to the workings of complexity across a broad range of biological, technological, and social phenomena, seeking out the general principles or laws that apply to all of them. Richly illustrated, Complexity: A Guided Tour--winner of the 2010 Phi Beta Kappa Book Award in Science--offers a wide-ranging overview of the ideas underlying complex systems science, the current research at the forefront of this field, and the prospects for its contribution to solving some of the most important scientific questions of our time.

Learn You a Haskell for Great Good!


Miran Lipovača - 2011
    Learn You a Haskell for Great Good! introduces programmers familiar with imperative languages (such as C++, Java, or Python) to the unique aspects of functional programming. Packed with jokes, pop culture references, and the author's own hilarious artwork, Learn You a Haskell for Great Good! eases the learning curve of this complex language, and is a perfect starting point for any programmer looking to expand his or her horizons. The well-known web tutorial on which this book is based is widely regarded as the best way for beginners to learn Haskell, and receives over 30,000 unique visitors monthly.

Overconnected: The Promise and Threat of the Internet


William H. Davidow - 2010
    pThe benefits of our recently arrived-at state of connectivity have been myriad from the ease with which it has been possible to buy a new house to the convenience of borrowing and investing money profitably. But the luxuries of the connected age have taken on a momentum all of their own. By counter-intuitively anatomizing how being overconnected tends to create systems of positive feedback that have largely negative consequences, Davidow explains everything from the recent Subprime mortgage crisis to the meltdown of Iceland, from the loss of people s privacy to the spectacular fall of the stock market. All because we were so miraculously wired together.pExplaining how such symptoms of Internet connection as unforeseeable accidents and how thought contagions acted to accelerate the downfall and make us permanently vulnerable to catastrophe, Davidow places our recent experience in historical perspective and offers a set of practical steps to minimize similar disasters in the future.pWilliam Davidow is a successful Silicon Valley venture capitalist, philanthropist, and author, and as a senior vice-president of Intel Corporation, he was responsible for the design of the Intel microprocessor chip. He has written three previous books Marketing High Technology (The Free Press, 1986) and Total Customer Service (Harper, 1989), both with Bro Uttal, and The Virtual Corporation" (Harper, 1992), with Michael Malone as well as columns for Forbes and numerous op-ed pieces. He graduated from Dartmouth College, has a masters degree from the California Institute of Technology, and a Ph.D. from Stanford University. He serves on the boards of Cal Tech, the California Nature Conservancy, and the Stanford Institute for Economic Policy Research.