Practical C++ Programming


Steve Oualline - 1995
    But this high-level language is relatively difficult to master, even if you already know the C programming language.The 2nd edition of Practical C++ Programming is a complete introduction to the C++ language for programmers who are learning C++. Reflecting the latest changes to the C++ standard, this 2nd edition takes a useful down-to-earth approach, placing a strong emphasis on how to design clean, elegant code.In short, to-the-point chapters, all aspects of programming are covered including style, software engineering, programming design, object-oriented design, and debugging. It also covers common mistakes and how to find (and avoid) them. End of chapter exercises help you ensure you've mastered the material.Practical C++ Programming thoroughly covers: C++ Syntax Coding standards and style Creation and use of object classes Templates Debugging and optimization Use of the C++ preprocessor File input/output Steve Oualline's clear, easy-going writing style and hands-on approach to learning make Practical C++ Programming a nearly painless way to master this complex but powerful programming language.

Common Sense, the Turing Test, and the Quest for Real AI


Hector J. Levesque - 2017
    AI is all the rage, and the buzziest AI buzz surrounds adaptive machine learning computer systems that learn intelligent behavior from massive amounts of data. This is what powers a driverless car, for example. In this book, Hector Levesque shifts the conversation to -good old fashioned artificial intelligence, - which is based not on heaps of data but on understanding commonsense intelligence. This kind of artificial intelligence is equipped to handle situations that depart from previous patterns -- as we do in real life, when, for example, we encounter a washed-out bridge or when the barista informs us there's no more soy milk.Levesque considers the role of language in learning. He argues that a computer program that passes the famous Turing Test could be a mindless zombie, and he proposes another way to test for intelligence -- the Winograd Schema Test, developed by Levesque and his colleagues. -If our goal is to understand intelligent behavior, we had better understand the difference between making it and faking it, - he observes. He identifies a possible mechanism behind common sense and the capacity to call on background knowledge: the ability to represent objects of thought symbolically. As AI migrates more and more into everyday life, we should worry if systems without common sense are making decisions where common sense is needed.

Head First Design Patterns


Eric Freeman - 2004
     At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. If you've read a Head First book, you know what to expect--a visually rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.

What the Plus! Google+ for the Rest of Us


Guy Kawasaki - 2012
    That's all it takes. But don't take Guy's word for it. Here's what three experts have to say about What the Plus! Google+ for the Rest of Us:"We didn't expect over 100,000,000 people to join Google+ so quickly. If we had, we might have written a tutorial like this one. Lucky for us, Guy has written this wonderful introduction to Google+. Highly recommended!" Vic Gundotra, Senior Vice-President, Social, Google"What The Plus is the G+ motherlode! Guy's book will make you fall madly in love with Google+ and never look back!" Mari Smith, author The New Relationship Marketing and coauthor Facebook Marketing: An Hour A Day"People ask me why I like Google+ better. I struggle to find the words, but Guy Kawasaki not only figured it out but shows you how to get the most out of this new social network." Robert Scoble, Rackspace videoblogger

C: A Reference Manual


Samuel P. Harbison III - 1984
    It discusses the ongoing, international standardization of C++, explores the importance of Clean C code in the common subset of the ISO C and C++ languages, and demonstrates other ways to program in a style that is more compatible with C++.

Anatomy & Physiology


Boundless - 2013
    Boundless works with subject matter experts to select the best open educational resources available on the web, review the content for quality, and create introductory, college-level textbooks designed to meet the study needs of university students.<br><br>This textbook covers:<br><br><b>Human Anatomy and Physiology Introduction</b> -- Anatomy and Physiology Overview, Life, Homeostasis, Anatomical Terms, Clinical Cases<br><br><b>General Chemistry</b> -- Matter and Energy, Element Properties: Atomic structure, Chemical Bonds, Chemical Reactions, Inorganic Compounds, Organic Compounds<br><br><b>Cellular Structure and Function</b> -- the study of cells, Cell membranes and the fluid mosaic model, Transport across membranes, How reception works in cell signaling, Nucleus and Ribosomes, Organelles, The Cytoskeleton, External cellular components, Cell division: process and importance, The cell cycle, Transcription and translation, RNA processing, Translation to a polypeptide, Transcription, Apoptosis signals an orderly cell death<br><br><b>Tissues</b> -- Epithelial Tissue, Cell Junctions, Clinical Cases, Tissue Repair, Tissue Development, Cancer, Connective Tissue, Membranes, Nervous Tissue<br><br><b>The Integumentary System</b> -- The Skin, Accessory Structures of the Skin, Functions of the Integumentary System, Wound Healing, Integumentary System Development, Skin Disorders, Imbalances, Diseases, and Clinical Cases<br><br><b>Skeletal Tissue</b> -- Cartilage, Bone Classification, Bone Formation, Bone and Calcium, Bone Development, Bone Diseases, Disorders, Imbalances, and Clinical Cases<br><br><b>The Skeletal System</b> -- Overview of the Musculoskeletal system, Divisions of the Skeletal System, The Axial Skeleton, Skull, Hyoid Bone, Vertebral Column, Thorax, Clinical Cases of the Axial Skeleton, The Appendicular Skeleton, The Pectoral (Shoulder) Girdle, Upper Limb, The Pelvic (Hip) Girdle, Lower Limb, Skeletal System Development, Clinical Cases of the Appendicular Skeleton<br><br><b>Joints</b> -- Classification of Joints, Synovial Joints, Joint Development, Clinical Cases<br><br><b>Muscle Tissue</b> -- Overview of Muscle Tissue, Skeletal Muscle, Control of Muscle Tension, Muscle Metabolism, Exercise and Skeletal Muscle Tissue, Smooth Muscle, Clinical Cases: Muscle Disorders, Development of Muscle<br><br><b>The Muscular System</b> -- Overview of the Muscular System, Head And Neck Muscles, Trunk Muscles, Muscles of the Upper Limb, Muscles of the Lower Limb, Clinical Cases and Muscular System Disorders<br><br><b>Nervous Tissue</b> -- Overview of the Nervous System, Neuroglia, Neurons, Collections of Nervous Tissue, Neurophysiology<br><br><b>Central Nervous System (CNS)</b> -- The Brain, Consciousness, Sleep, Language, and Memory, Protection of the Brain, Parts of The Brain Stem, The Cerebellum, The Diencephalon, Cerebral Cortex (or Cerebral Hemispheres), Functional Systems of the Cerebral Cortex, Development of the CNS, Brain Disorders and Clinical Cases, The Spinal Cord, Spinal Cord Anatomy, Disorders and Clinical Cases of the Spinal Cord<br><br><b>Peripheral Nervous System (PNS)</b> -- Sensation, Sensory Receptors, Somatosensory System, Nerves, Cranial Nerves, Spinal Nerves, Distribution of Spinal Nerves, Motor Activity, Motor Pathways, Reflexes, Pain, Development of the Nervous System, Disorders of Spinal Nerves and Clinical Cases<br><br><b>Autonomic Nervous System (ANS)</b> -- Autonomic Nervous System, ANS Anatomy, Physiology of ANS,

Mastering Bitcoin: Unlocking Digital Cryptocurrencies


Andreas M. Antonopoulos - 2014
    Whether you're building the next killer app, investing in a startup, or simply curious about the technology, this practical book is essential reading.Bitcoin, the first successful decentralized digital currency, is still in its infancy and it's already spawned a multi-billion dollar global economy. This economy is open to anyone with the knowledge and passion to participate. Mastering Bitcoin provides you with the knowledge you need (passion not included).This book includes:A broad introduction to bitcoin--ideal for non-technical users, investors, and business executivesAn explanation of the technical foundations of bitcoin and cryptographic currencies for developers, engineers, and software and systems architectsDetails of the bitcoin decentralized network, peer-to-peer architecture, transaction lifecycle, and security principlesOffshoots of the bitcoin and blockchain inventions, including alternative chains, currencies, and applicationsUser stories, analogies, examples, and code snippets illustrating key technical concepts

Out of Their Minds: The Lives and Discoveries of 15 Great Computer Scientists


Dennis E. Shasha - 1995
    The latter half of our century has seen its own Renaissance - informations technology has changed irrevocable the way we live, work, and think about the world. We are fortunate, therefore, that the authors of Out of Their Minds have been able to talk so candidly with the founders of computer science. In Out of their Minds, readers will hear the Newtons and Euclids of the computer age as they talk about their discoveries in information technology that have changed forever the way we live, work, and think about the world. Based on interviews by freelance writer Cathy Lazere and the expertise of computer scientist Dennis Shasha, Out of their Minds introduces readers to fifteen of the planet's foremost computer scientists, including eight winners of the Turing Award, computing's Nobel Prize. The scientists reveal themselves in fascinating anecdotes about their early inspirations and influences, their contributions to computer science, and their thoughts on its explosive future. These are the programmers whose work

Mindstorms: Children, Computers, And Powerful Ideas


Seymour Papert - 1980
    We have Mindstorms to thank for that. In this book, pioneering computer scientist Seymour Papert uses the invention of LOGO, the first child-friendly programming language, to make the case for the value of teaching children with computers. Papert argues that children are more than capable of mastering computers, and that teaching computational processes like de-bugging in the classroom can change the way we learn everything else. He also shows that schools saturated with technology can actually improve socialization and interaction among students and between students and teachers.

Bit by Bit: How P2P Is Freeing the World


Jeffrey Tucker - 2015
    Jeffrey Tucker, CLO of Liberty.me and Distinguished Fellow of the Foundation for Economic Education, argues that peer-to-peer technology is forging a new and brighter social, economic, and political order. People tend to look at innovations in isolation. Here is my new e-reader. Here is an app I like. Here is my new mobile device and computer. Even bitcoin is routinely analyzed and explained in terms of its properties as an alternative to national currencies, as if there were no more than that at stake.But actually there is a historical trajectory at work here, one that we can trace through its logic, implementation, and spread. It’s the same logic that led from the dial phone at the county store, operated by people pulling and plugging in wires, to the wireless smartphone in your pocket that contains the whole store of human knowledge. It’s all about technology in the service of individuation.Once you understand the driving ethos — voluntarism, creativity, networks, individual initiative — you can see the outlines of a new social structure emerging within our time, an order that defies a century of top-down planning and nation-state restrictionism.It is coming about not because of political reform. It is not any one person’s creation. It is not happening because a group of elite intellectuals advocated it. The new world is emerging organically, and messily, from the ground up, as an extension of unrelenting creativity and experimentation. In the end, it is emerging out of an anarchist order that no one in particular controls and no one in particular can fully understand."The building of universal prosperity is a process that unfolds bit by bit through decentralized decision making and improvements at the margin through trial-and-error. To continue this process, we need understanding, patience, and dreams. Jeffrey Tucker’s book is an excellent guide to all three.” ~ Patrick Byrne, CEO of Overstock.com, from the introduction. “In Bitcoin’s brief existence Jeffrey Tucker has become one of its leading proponents. In this book we can see exactly why. Many people think of bitcoin as just money, but Mr. Tucker is able to explain, in a way that is easily understandable by all, the tsunami of innovation that bitcoin is about to release upon the world.” ~ Roger Ver, Bitcoin investor, from the Foreword

The Psychology of Computer Programming


Gerald M. Weinberg - 1971
    Weinberg adds new insights and highlights the similarities and differences between now and then. Using a conversational style that invites the reader to join him, Weinberg reunites with some of his most insightful writings on the human side of software engineering.Topics include egoless programming, intelligence, psychological measurement, personality factors, motivation, training, social problems on large projects, problem-solving ability, programming language design, team formation, the programming environment, and much more.Dorset House Publishing is proud to make this important text available to new generations of programmers -- and to encourage readers of the first edition to return to its valuable lessons.

When Skeptics Ask


Norman L. Geisler - 1990
    Is Christianity true--or even reasonable? Helpful question & answer format gives readers quick access to clear explanations.

Domain-Driven Design: Tackling Complexity in the Heart of Software


Eric Evans - 2003
    "His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric thinks that learning about your problem domain is as likely to happen at the end of your project as at the beginning, and so refactoring is a big part of his technique. "The book is a fun read. Eric has lots of interesting stories, and he has a way with words. I see this book as essential reading for software developers--it is a future classic." --Ralph Johnson, author of Design Patterns "If you don't think you are getting value from your investment in object-oriented programming, this book will tell you what you've forgotten to do. "Eric Evans convincingly argues for the importance of domain modeling as the central focus of development and provides a solid framework and set of techniques for accomplishing it. This is timeless wisdom, and will hold up long after the methodologies du jour have gone out of fashion." --Dave Collins, author of Designing Object-Oriented User Interfaces "Eric weaves real-world experience modeling--and building--business applications into a practical, useful book. Written from the perspective of a trusted practitioner, Eric's descriptions of ubiquitous language, the benefits of sharing models with users, object life-cycle management, logical and physical application structuring, and the process and results of deep refactoring are major contributions to our field." --Luke Hohmann, author of Beyond Software Architecture "This book belongs on the shelf of every thoughtful software developer." --Kent Beck "What Eric has managed to capture is a part of the design process that experienced object designers have always used, but that we have been singularly unsuccessful as a group in conveying to the rest of the industry. We've given away bits and pieces of this knowledge...but we've never organized and systematized the principles of building domain logic. This book is important." --Kyle Brown, author of Enterprise Java(TM) Programming with IBM(R) WebSphere(R) The software development community widely acknowledges that domain modeling is central to software design. Through domain models, software developers are able to express rich functionality and translate it into a software implementation that truly serves the needs of its users. But despite its obvious importance, there are few practical resources that explain how to incorporate effective domain modeling into the software development process. Domain-Driven Design fills that need. This is not a book about specific technologies. It offers readers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software development. Readers learn how to use a domain model to make a complex development effort more focused and dynamic. A core of best practices and standard patterns provides a common language for the development team. A shift in emphasis--refactoring not just the code but the model underlying the code--in combination with the frequent iterations of Agile development leads to deeper insight into domains and enhanced communication between domain expert and programmer. Domain-Driven Design then builds on this foundation, and addresses modeling and design for complex systems and larger organizations.Specific topics covered include:Getting all team members to speak the same language Connecting model and implementation more deeply Sharpening key distinctions in a model Managing the lifecycle of a domain object Writing domain code that is safe to combine in elaborate ways Making complex code obvious and predictable Formulating a domain vision statement Distilling the core of a complex domain Digging out implicit concepts needed in the model Applying analysis patterns Relating design patterns to the model Maintaining model integrity in a large system Dealing with coexisting models on the same project Organizing systems with large-scale structures Recognizing and responding to modeling breakthroughs With this book in hand, object-oriented developers, system analysts, and designers will have the guidance they need to organize and focus their work, create rich and useful domain models, and leverage those models into quality, long-lasting software implementations.

The Algorithm Design Manual


Steven S. Skiena - 1997
    Drawing heavily on the author's own real-world experiences, the book stresses design and analysis. Coverage is divided into two parts, the first being a general guide to techniques for the design and analysis of computer algorithms. The second is a reference section, which includes a catalog of the 75 most important algorithmic problems. By browsing this catalog, readers can quickly identify what the problem they have encountered is called, what is known about it, and how they should proceed if they need to solve it. This book is ideal for the working professional who uses algorithms on a daily basis and has need for a handy reference. This work can also readily be used in an upper-division course or as a student reference guide. THE ALGORITHM DESIGN MANUAL comes with a CD-ROM that contains: * a complete hypertext version of the full printed book. * the source code and URLs for all cited implementations. * over 30 hours of audio lectures on the design and analysis of algorithms are provided, all keyed to on-line lecture notes.

The Emperor's New Mind: Concerning Computers, Minds and the Laws of Physics


Roger Penrose - 1989
    Admittedly, computers now play chess at the grandmaster level, but do they understand the game as we do? Can a computer eventually do everything a human mind can do? In this absorbing and frequently contentious book, Roger Penrose--eminent physicist and winner, with Stephen Hawking, of the prestigious Wolf prize--puts forward his view that there are some facets of human thinking that can never be emulated by a machine. Penrose examines what physics and mathematics can tell us about how the mind works, what they can't, and what we need to know to understand the physical processes of consciousness. He is among a growing number of physicists who think Einstein wasn't being stubborn when he said his little finger told him that quantum mechanics is incomplete, and he concludes that laws even deeper than quantum mechanics are essential for the operation of a mind. To support this contention, Penrose takes the reader on a dazzling tour that covers such topics as complex numbers, Turing machines, complexity theory, quantum mechanics, formal systems, Godel undecidability, phase spaces, Hilbert spaces, black holes, white holes, Hawking radiation, entropy, quasicrystals, the structure of the brain, and scores of other subjects. The Emperor's New Mind will appeal to anyone with a serious interest in modern physics and its relation to philosophical issues, as well as to physicists, mathematicians, philosophers and those on either side of the AI debate.