Making Embedded Systems: Design Patterns for Great Software


Elecia White - 2011
    This easy-to-read guide helps you cultivate a host of good development practices, based on classic software design patterns and new patterns unique to embedded programming. Learn how to build system architecture for processors, not operating systems, and discover specific techniques for dealing with hardware difficulties and manufacturing requirements.Written by an expert who’s created embedded systems ranging from urban surveillance and DNA scanners to children’s toys, this book is ideal for intermediate and experienced programmers, no matter what platform you use.Optimize your system to reduce cost and increase performanceDevelop an architecture that makes your software robust in resource-constrained environmentsExplore sensors, motors, and other I/O devicesDo more with less: reduce RAM consumption, code space, processor cycles, and power consumptionLearn how to update embedded code directly in the processorDiscover how to implement complex mathematics on small processorsUnderstand what interviewers look for when you apply for an embedded systems job"Making Embedded Systems is the book for a C programmer who wants to enter the fun (and lucrative) world of embedded systems. It’s very well written—entertaining, even—and filled with clear illustrations." —Jack Ganssle, author and embedded system expert.

Managing Humans: Biting and Humorous Tales of a Software Engineering Manager


Michael Lopp - 2007
    Drawing on Lopp's management experiences at Apple, Netscape, Symantec, and Borland, this book is full of stories based on companies in the Silicon Valley where people have been known to yell at each other. It is a place full of dysfunctional bright people who are in an incredible hurry to find the next big thing so they can strike it rich and then do it all over again. Among these people are managers, a strange breed of people who through a mystical organizational ritual have been given power over your future and your bank account.Whether you're an aspiring manager, a current manager, or just wondering what the heck a manager does all day, there is a story in this book that will speak to you.

C++ Programming: From Problem Analysis to Program Design


D.S. Malik - 2002
    Best-selling author D.S. Malik employs a student-focused approach, using complete programming examples to teach introductory programming concepts. This third edition has been enhanced to further demonstrate the use of OOD methodology, to introduce sorting algorithms (bubble sort and insertion sort), and to present additional material on abstract classes. In addition, the exercise sets at the end of each chapter have been expanded, and now contain several calculus and engineering-related exercises. Finally, all programs have been written, compiled, and quality-assurance tested with Microsoft Visual C++ .NET, available as an optional compiler with this text.

Deep Thinking: Where Machine Intelligence Ends and Human Creativity Begins


Garry Kasparov - 2017
    It was the dawn of a new era in artificial intelligence: a machine capable of beating the reigning human champion at this most cerebral game. That moment was more than a century in the making, and in this breakthrough book, Kasparov reveals his astonishing side of the story for the first time. He describes how it felt to strategize against an implacable, untiring opponent with the whole world watching, and recounts the history of machine intelligence through the microcosm of chess, considered by generations of scientific pioneers to be a key to unlocking the secrets of human and machine cognition. Kasparov uses his unrivaled experience to look into the future of intelligent machines and sees it bright with possibility. As many critics decry artificial intelligence as a menace, particularly to human jobs, Kasparov shows how humanity can rise to new heights with the help of our most extraordinary creations, rather than fear them. Deep Thinking is a tightly argued case for technological progress, from the man who stood at its precipice with his own career at stake.

Doing Data Science


Cathy O'Neil - 2013
    But how can you get started working in a wide-ranging, interdisciplinary field that’s so clouded in hype? This insightful book, based on Columbia University’s Introduction to Data Science class, tells you what you need to know.In many of these chapter-long lectures, data scientists from companies such as Google, Microsoft, and eBay share new algorithms, methods, and models by presenting case studies and the code they use. If you’re familiar with linear algebra, probability, and statistics, and have programming experience, this book is an ideal introduction to data science.Topics include:Statistical inference, exploratory data analysis, and the data science processAlgorithmsSpam filters, Naive Bayes, and data wranglingLogistic regressionFinancial modelingRecommendation engines and causalityData visualizationSocial networks and data journalismData engineering, MapReduce, Pregel, and HadoopDoing Data Science is collaboration between course instructor Rachel Schutt, Senior VP of Data Science at News Corp, and data science consultant Cathy O’Neil, a senior data scientist at Johnson Research Labs, who attended and blogged about the course.

Make Your Own Neural Network


Tariq Rashid - 2016
     Neural networks are a key element of deep learning and artificial intelligence, which today is capable of some truly impressive feats. Yet too few really understand how neural networks actually work. This guide will take you on a fun and unhurried journey, starting from very simple ideas, and gradually building up an understanding of how neural networks work. You won't need any mathematics beyond secondary school, and an accessible introduction to calculus is also included. The ambition of this guide is to make neural networks as accessible as possible to as many readers as possible - there are enough texts for advanced readers already! You'll learn to code in Python and make your own neural network, teaching it to recognise human handwritten numbers, and performing as well as professionally developed networks. Part 1 is about ideas. We introduce the mathematical ideas underlying the neural networks, gently with lots of illustrations and examples. Part 2 is practical. We introduce the popular and easy to learn Python programming language, and gradually builds up a neural network which can learn to recognise human handwritten numbers, easily getting it to perform as well as networks made by professionals. Part 3 extends these ideas further. We push the performance of our neural network to an industry leading 98% using only simple ideas and code, test the network on your own handwriting, take a privileged peek inside the mysterious mind of a neural network, and even get it all working on a Raspberry Pi. All the code in this has been tested to work on a Raspberry Pi Zero.

Make Your Own Neural Network: An In-depth Visual Introduction For Beginners


Michael Taylor - 2017
    A step-by-step visual journey through the mathematics of neural networks, and making your own using Python and Tensorflow.

Gödel, Escher, Bach: An Eternal Golden Braid


Douglas R. Hofstadter - 1979
    However, according to Hofstadter, the formal system that underlies all mental activity transcends the system that supports it. If life can grow out of the formal chemical substrate of the cell, if consciousness can emerge out of a formal system of firing neurons, then so too will computers attain human intelligence. Gödel, Escher, Bach is a wonderful exploration of fascinating ideas at the heart of cognitive science: meaning, reduction, recursion, and much more.

LATEX: A Document Preparation System: User's Guide and Reference Manual


Leslie Lamport - 1985
    The new edition features additional styles and functions, improved font handling, and enhanced graphics capabilities. Other parts of the book have been revised to reflect user comments and suggestions. Selected sections have been rewritten to explain challenging concepts or functions, and the descriptions of both MakeIndex and BibTEX have been updated. New LATEX users will want to start with this book, and current users, particularly as they upgrade to the LATEX2e software, will be eager to obtain the most up-to-date version of its associated manual. Features Revised version of the authoritative user's guide and reference manual for the LATEX computer typesetting system. Features the new standard software release - LATEX2e. Sections rewritten to explain difficult concepts or functions.

Microwave Engineering


David M. Pozar - 1990
    The author successfully introduces Maxwell's equations, wave propagation, network analysis, and design principles as applied to modern microwave engineering. A considerable amount of material in this book is related to the design of specific microwave circuits and components, for both practical and motivational value. It also presents the analysis and logic behind these designs so that the reader can see and understand the process of applying the fundamental concepts to arrive at useful results. The derivations are well laid out and the majority of each chapter's formulas are displayed in a nice tabular format every few pages. This Third Edition offers greatly expanded coverage with new material on: Noise; Nonlinear effects; RF MEMs; transistor power amplifiers; FET mixers; oscillator phase noise; transistor oscillators and frequency multiplier.

C++ Concurrency in Action: Practical Multithreading


Anthony Williams - 2009
    This book will show you how to write robust multithreaded applications in C++ while avoiding many common pitfalls.About the TechnologyMultiple processors with multiple cores are the norm these days. The C++11 version of the C++ language offers beefed-up support for multithreaded applications, and requires that you master the principles, techniques, and new language features of concurrency to stay ahead of the curve.About the BookWithout assuming you have a background in the subject, CC++ Concurrency in Action gradually enables you to write robust and elegant multithreaded applications in C++11. You'll explore the threading memory model, the new multithreading support library, and basic thread launching and synchronization facilities. Along the way, you'll learn how to navigate the trickier bits of programming for concurrency.Written for C++ programmers who are new to concurrency and others who may have written multithreaded code using other languages, APIs, or platforms.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.What's InsideWritten for the new C++11 Standard Programming for multiple cores and processors Small examples for learning, big examples for practice====================Table of ContentsHello, world of concurrency in C++! Managing threads Sharing data between threads Synchronizing concurrent operations The C++ memory model and operations on atomic types Designing lock-based concurrent data structures Designing lock-free concurrent data structures Designing concurrent code Advanced thread management Testing and debugging multithreaded applications

Facing the Intelligence Explosion


Luke Muehlhauser - 2013
    This event—the “intelligence explosion”—will be the most important event in our history, and navigating it wisely will be the most important thing we can ever do.Luminaries from Alan Turing and I. J. Good to Bill Joy and Stephen Hawking have warned us about this. Why do I think Hawking and company are right, and what can we do about it?Facing the Intelligence Explosion is my attempt to answer these questions.

Core Java, Volume II--Advanced Features


Cay S. Horstmann - 1999
    It contains sample programs to illustrate practical solutions to the type of real-world problems professional developers encounter.

Computer Science Illuminated


Nell B. Dale - 2002
    Written By Two Of Today'S Most Respected Computer Science Educators, Nell Dale And John Lewis, The Text Provides A Broad Overview Of The Many Aspects Of The Discipline From A Generic View Point. Separate Program Language Chapters Are Available As Bundle Items For Those Instructors Who Would Like To Explore A Particular Programming Language With Their Students. The Many Layers Of Computing Are Thoroughly Explained Beginning With The Information Layer, Working Through The Hardware, Programming, Operating Systems, Application, And Communication Layers, And Ending With A Discussion On The Limitations Of Computing. Perfect For Introductory Computing And Computer Science Courses, Computer Science Illuminated, Third Edition's Thorough Presentation Of Computing Systems Provides Computer Science Majors With A Solid Foundation For Further Study, And Offers Non-Majors A Comprehensive And Complete Introduction To Computing.

Introducing Elixir: Getting Started in Functional Programming


Simon St.Laurent - 2013
    If you're new to Elixir, its functional style can seem difficult, but with help from this hands-on introduction, you'll scale the learning curve and discover how enjoyable, powerful, and fun this language can be. Elixir combines the robust functional programming of Erlang with an approach that looks more like Ruby and reaches toward metaprogramming with powerful macro features.Authors Simon St. Laurent and J. David Eisenberg show you how to write simple Elixir programs by teaching you one skill at a time. You’ll learn about pattern matching, recursion, message passing, process-oriented programming, and establishing pathways for data rather than telling it where to go. By the end of your journey, you’ll understand why Elixir is ideal for concurrency and resilience.* Get comfortable with IEx, Elixir's command line interface* Become familiar with Elixir’s basic structures by working with numbers* Discover atoms, pattern matching, and guards: the foundations of your program structure* Delve into the heart of Elixir processing with recursion, strings, lists, and higher-order functions* Create processes, send messages among them, and apply pattern matching to incoming messages* Store and manipulate structured data with Erlang Term * Storage (ETS) and the Mnesia database* Build resilient applications with the Open Telecom Platform (OTP)* Define macros with Elixir's meta-programming tools.