If you know basic high-school math, you can quickly learn and apply the core concepts of computer science with this concise, hands-on book. Led by a team of experts, you’ll quickly understand the difference between computer science and computer programming, and you’ll learn how algorithms help you solve computing problems.
Each chapter builds on material introduced earlier in the book, so you can master one core building block before moving on to the next. You’ll explore fundamental topics such as loops, arrays, objects, and classes, using the easy-to-learn Ruby programming language. Then you’ll put everything together in the last chapter by programming a simple game of tic-tac-toe.
- Learn how to write algorithms to solve real-world problems
- Understand the basics of computer architecture
- Examine the basic tools of a programming language
- Explore sequential, conditional, and loop programming structures
- Understand how the array data structure organizes storage
- Use searching techniques and comparison-based sorting algorithms
- Learn about objects, including how to build your own
- Discover how objects can be created from other objects
- Manipulate files and use their data in your software
Andy Hunt - Pragmatic Thinking and Learning
Software development happens in your head. Not in an editor, IDE, or design tool. You’re well educated on how to work with software and hardware, but what about wetware—our own brains? Learning new skills and new technology is critical to your career, and it’s all in your head. In this book by Andy Hunt, you’ll learn how our brains are wired, and how to take advantage of your brain’s architecture. You’ll learn new tricks and tips to learn more, faster, and retain more of what you learn. You need a pragmatic approach to thinking and learning. You need to Refactor Your Wetware.
Andrew S. Tanenbaum - Modern Operating Systems
For software development professionals and computer science students, Modern Operating Systems gives a solid conceptual overview of operating system design, including detailed case studies of Unix/Linux and Windows 2000. What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD. Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls). The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets." It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms. Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals. "Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart.” - Pete Ostenson
Ray Kurzweil - How to Create a Mind
Ray Kurzweil is arguably today’s most influential—and often controversial—futurist. In How to Create a Mind, Kurzweil presents a provocative exploration of the most important project in human-machine civilization—reverse engineering the brain to understand precisely how it works and using that knowledge to create even more intelligent machines. Kurzweil discusses how the brain functions, how the mind emerges from the brain, and the implications of vastly increasing the powers of our intelligence in addressing the world’s problems. He thoughtfully examines emotional and moral intelligence and the origins of consciousness and envisions the radical possibilities of our merging with the intelligent technology we are creating. Certain to be one of the most widely discussed and debated science books of the year, How to Create a Mind is sure to take its place alongside Kurzweil’s previous classics which include Fantastic Voyage: Live Long Enough to Live Forever and The Age of Spiritual Machines
Harold Abelson - Gerald Jay Sussmann - Julie Sussmann - Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited revision contains changes throughout the text.There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published.A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises.In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.
Martin Ford - Rise of the Robots
What are the jobs of the future? How many will there be? And who will have them? We might imagine—and hope—that today’s industrial revolution will unfold like the last: even as some jobs are eliminated, more will be created to deal with the new innovations of a new era. In Rise of the Robots, Silicon Valley entrepreneur Martin Ford argues that this is absolutely not the case. As technology continues to accelerate and machines begin taking care of themselves, fewer people will be necessary. Artificial intelligence is already well on its way to making “good jobs” obsolete: many paralegals, journalists, office workers, and even computer programmers are poised to be replaced by robots and smart software. As progress continues, blue and white collar jobs alike will evaporate, squeezing working- and middle-class families ever further. At the same time, households are under assault from exploding costs, especially from the two major industries—education and health care—that, so far, have not been transformed by information technology. The result could well be massive unemployment and inequality as well as the implosion of the consumer economy itself. In Rise of the Robots, Ford details what machine intelligence and robotics can accomplish, and implores employers, scholars, and policy makers alike to face the implications. The past solutions to technological disruption, especially more training and education, aren’t going to work, and we must decide, now, whether the future will see broad-based prosperity or catastrophic levels of inequality and economic insecurity. Rise of the Robots is essential reading for anyone who wants to understand what accelerating technology means for their own economic prospects—not to mention those of their children—as well as for society as a whole.
Nir Eyal - Hooked
How do successful companies create products people can’t put down? Why do some products capture widespread attention while others flop? What makes us engage with certain products out of sheer habit? Is there a pattern underlying how technologies hook us? Nir Eyal answers these questions (and many more) by explaining the Hook Model—a four-step process embedded into the products of many successful companies to subtly encourage customer behavior. Through consecutive “hook cycles,” these products reach their ultimate goal of bringing users back again and again without depending on costly advertising or aggressive messaging. Hooked is based on Eyal’s years of research, consulting, and practical experience. He wrote the book he wished had been available to him as a start-up founder—not abstract theory, but a how-to guide for building better products. Hooked is written for product managers, designers, marketers, start-up founders, and anyone who seeks to understand how products influence our behavior. Eyal provides readers with: • Practical insights to create user habits that stick. • Actionable steps for building products people love. • Fascinating examples from the iPhone to Twitter, Pinterest to the Bible App, and many other habit-forming products.
Doug Lowe - Networking All-in-One For Dummies
The bestselling guide for network administrators, fully updated for Windows 8 If you're responsible for a network, large or small, this book is your one-stop resource for all the essential details you need to know. Fully updated to cover Windows 8 and Windows Server 2012, it features the latest on broadband technologies, storage, backup procedures, and all the current networking trends. Nine handy minibooks cover the basics, building a network, administration and security, TCP/IP and the Internet, wireless networking, mobile networking, Windows Server 2012, using other Windows servers, and managing Linux systems. - A proven bestseller, with more than 111,000 copies sold in four previous editions - Written by veteran IT expert Doug Lowe, who has more than 50 technology books to his credit - Provides one-stop shopping for everything networking professionals need to keep large or small networks functioning efficiently - Updated with the latest information on building and administering a network, security, wireless and mobile networking, using Windows servers, working with Linux systems, and much more Networking All-in-One For Dummies, 5th Edition provides what network administrators need to know in a handy, easy-to-use reference.
John Viega - The Myths of Security
If you think computer security has improved in recent years, The Myths of Security will shake you out of your complacency. Longtime security professional John Viega, formerly Chief Security Architect at McAfee, reports on the sorry state of the industry, and offers concrete suggestions for professionals and individuals confronting the issue. Why is security so bad? With many more people online than just a few years ago, there are more attackers -- and they're truly motivated. Attacks are sophisticated, subtle, and harder to detect than ever. But, as Viega notes, few people take the time to understand the situation and protect themselves accordingly. This book tells you: - Why it's easier for bad guys to "own" your computer than you think - Why anti-virus software doesn't work well -- and one simple way to fix it - Whether Apple OS X is more secure than Windows - What Windows needs to do better - How to make strong authentication pervasive - Why patch management is so bad - Whether there's anything you can do about identity theft - Five easy steps for fixing application security, and more Provocative, insightful, and always controversial, The Myths of Security not only addresses IT professionals who deal with security issues, but also speaks to Mac and PC users who spend time online.
Lincoln Child - Utopia
Fasten your seat belts–the white-knuckle thrills at Utopia, the world’s most fantastic theme park, escalate to nightmare proportions in this intricately imagined techno-thriller by New York Times bestselling author Lincoln Child. Rising out of the stony canyons of Nevada, Utopia is a world on the cutting edge of technology. A theme park attracting 65,000 visitors each day, its dazzling array of robots and futuristic holograms make it a worldwide sensation. But ominous mishaps are beginning to disrupt the once flawless technology. A friendly robot goes haywire, causing panic, and a popular roller coaster malfunctions, nearly killing a teenaged rider. Dr. Andrew Warne, the brilliant computer engineer who designed much of the park’s robotics, is summoned from the East Coast to get things back on track. On the day Warne arrives, however, Utopia is caught in the grip of something far more sinister. A group of ruthless criminals has infiltrated the park’s computerized infrastructure, giving them complete access to all of Utopia’s attractions and systems. Their communication begins with a simple and dire warning: If their demands are met, none of the 65,000 people in the park that day will ever know they were there; if not, chaos will descend, and every man, woman, and child will become a target. As one of the brains behind Utopia, Warne finds himself thrust into a role he never imagined–trying to save the lives of thousands of innocent people. And as the minutes tick away, Warne’s struggle to outsmart his opponents grows ever more urgent, for his only daughter is among the unsuspecting crowds in the park. Lincoln Child evokes the technological wonders of Utopia with such skill and precision it is hard to believe the park exists only in the pages of this extraordinary book. Like Jurassic Park, Utopia sweeps readers into a make-believe world of riveting suspense, technology, and adventure. UTOPIA -- Where technology dazzles–and then turns deadly!
Ray Kurzweil - The Singularity Is Near
For over three decades, Ray Kurzweil has been one of the most respected and provocative advocates of the role of technology in our future. In his classic _The Age of Spiritual Machines_, he argued that computers would soon rival the full range of human intelligence at its best. Now he examines the next step in this inexorable evolutionary process: the union of human and machine, in which the knowledge and skills embedded in our brains will be combined with the vastly greater capacity, speed, and knowledge-sharing ability of our creations.
Kevin D. Mitnick - William L. Simon - The Art of Deception - Controlling The Human Element of Security
The world's most infamous hacker offers an insider's view of the low-tech threats to high-tech security Kevin Mitnick's exploits as a cyber-desperado and fugitive form one of the most exhaustive FBI manhunts in history and have spawned dozens of articles, books, films, and documentaries. Since his release from federal prison, in 1998, Mitnick has turned his life around and established himself as one of the most sought-after computer security experts worldwide. Now, in The Art of Deception, the world's most notorious hacker gives new meaning to the old adage, "It takes a thief to catch a thief." Focusing on the human factors involved with information security, Mitnick explains why all the firewalls and encryption protocols in the world will never be enough to stop a savvy grifter intent on rifling a corporate database or an irate employee determined to crash a system. With the help of many fascinating true stories of successful attacks on business and government, he illustrates just how susceptible even the most locked-down information systems are to a slick con artist impersonating an IRS agent. Narrating from the points of view of both the attacker and the victims, he explains why each attack was so successful and how it could have been prevented in an engaging and highly readable style reminiscent of a true-crime novel. And, perhaps most importantly, Mitnick offers advice for preventing these types of social engineering hacks through security protocols, training programs, and manuals that address the human element of security.
Charles M. Kozierok - The TCP/IP Guide
The TCP/IP Guide is both an encyclopedic and comprehensible guide to the TCP/IP protocol suite that will appeal to newcomers and the seasoned professional. It details the core protocols that make TCP/IP internetworks function, and the most important classical TCP/IP applications. Its personal, easy-going writing style lets anyone understand the dozens of protocols and technologies that run the Internet, with full coverage of PPP, ARP, IP, IPv6, IP NAT, IPSec, Mobile IP, ICMP, RIP, BGP, TCP, UDP, DNS, DHCP, SNMP, FTP, SMTP, NNTP, HTTP, Telnet and much more. The author offers not only a detailed view of the TCP/IP protocol suite, but also describes networking fundamentals and the important OSI Reference Model. "A New TCP/IP Classic" - Slashdot, December 14, 2005 "A rocking, well-organized, profusely illustrated book . . . Probably the best new introduction and reference book around." - NetPerformance.com, June 12, 2006 "It's informative and easy to read, even when discussing rather nasty protocols." - ;login:, April 2006 "Nicely organized, from an introduction to networking through administration and troubleshooting, the book clearly explains each topic." - Library Journal, January 15, 2006 "The TCP/IP Guide is great for anyone and everyone . . . it can act both as a reference guide and a textbook." - Linux Security, April 6, 2006 "The most comprehensive guide to TCP/IP protocols we have ever come across . . . [and] the most readable . . . we highly recommend it." - Network World, November 28, 2005 "This book is the Real Deal . . . you will appreciate the mastery of Kozierok's achievement." - WatchGuard Wire "This is a really well-done book, . . . easy-to-digest information about TCP/IP." - IBM’s DeveloperWorks, January 18, 2006 "Well-organized, well-illustrated, and has a conversational tone that makes it easy to read and learn even for networking novices." - Windows Networking, May 10, 2006
Brian W. Fitzpatrick - Ben Collins-Sussman - Team Geek
In a perfect world, software engineers who produce the best code are the most successful. But in our perfectly messy world, success also depends on how you work with people to get your job done. In this highly entertaining book, Brian Fitzpatrick and Ben Collins-Sussman cover basic patterns and anti-patterns for working with other people, teams, and users while trying to develop software. This is valuable information from two respected software engineers whose popular series of talks—including "Working with Poisonous People"—has attracted hundreds of thousands of followers. Writing software is a team sport, and human factors have as much influence on the outcome as technical factors. Even if you’ve spent decades learning the technical side of programming, this book teaches you about the often-overlooked human component. By learning to collaborate and investing in the "soft skills" of software engineering, you can have a much greater impact for the same amount of effort.
Mark S. Gockenbach - Understanding and Implementing the Finite Element Method
The ﬁnite element method is the most powerful general-purpose technique for computing accurate solutions to partial differential equations. Understanding and Implementing the Finite Element Method is essential reading for those interested in understanding both the theory and the implementation of the ﬁnite element method for equilibrium problems. This book contains a thorough derivation of the finite element equations as well as sections on programming the necessary calculations, solving the finite element equations, and using a posteriori error estimates to produce validated solutions. Accessible introductions to advanced topics, such as multigrid solvers, the hierarchical basis conjugate gradient method, and adaptive mesh generation, are provided. Each chapter ends with exercises to help readers master these topics. Understanding and Implementing the Finite Element Method includes a carefully documented collection of MATLAB® programs implementing the ideas presented in the book. Readers will beneﬁt from a careful explanation of data structures and speciﬁc coding strategies and will learn how to write a ﬁnite element code from scratch. Students can use the MATLAB codes to experiment with the method and extend them in various ways to learn more about programming ﬁnite elements. This practical book should provide an excellent foundation for those who wish to delve into advanced texts on the subject, including advanced undergraduates and beginning graduate students in mathematics, engineering, and the physical sciences. Preface; Part I: The Basic Framework for Stationary Problems. Chapter 1: Some Model PDEs; Chapter 2: The weak form of a BVP; Chapter 3: The Galerkin method; Chapter 4: Piecewise polynomials and the finite element method; Chapter 5: Convergence of the finite element method; Part II Data Structures and Implementation. Chapter 6: The mesh data structure; Chapter 7: Programming the finite element method: Linear Lagrange triangles; Chapter 8: Lagrange triangles of arbitrary degree; Chapter 9: The finite element method for general BVPs; Part III: Solving the Finite Element Equations. Chapter 10: Direct solution of sparse linear systems; Chapter 11: Iterative methods: Conjugate gradients; Chapter 12: The classical stationary iterations; Chapter 13: The multigrid method; Part IV: Adaptive Methods. Chapter 14: Adaptive mesh generation; Chapter 15: Error estimators and indicators; Bibliography; Index. "Upon completion of this book a student or researcher would be well prepared to employ finite elements for an application problem or proceed to the cutting edge of research in finite element methods. The accuracy and the thoroughness of the book are excellent." — Anthony Kearsley, research mathematician, National Institute of Standards and Technology.
Steve Wozniak - iWoz
“‘The Woz’ built the first [personal computer]—by hand, by himself.”—USA Today Before slim laptops that fit into briefcases, computers looked like strange vending machines, with cryptic switches and pages of encoded output. But in 1977 Steve Wozniak revolutionized the computer industry with his invention of the first personal computer. As the sole inventor of the Apple I and II computers, Wozniak has enjoyed wealth, fame, and the most coveted awards an engineer can receive, and he tells his story here for the first time.
Michael Margolis - Arduino Cookbook
Want to create devices that interact with the physical world? This cookbook is perfect for anyone who wants to experiment with the popular Arduino microcontroller and programming environment. You’ll find more than 200 tips and techniques for building a variety of objects and prototypes such as toys, detectors, robots, and interactive clothing that can sense and respond to touch, sound, position, heat, and light. You don’t need experience with Arduino or programming to get started. Updated for the Arduino 1.0 release, the recipes in this second edition include practical examples and guidance to help you begin, expand, and enhance your projects right away—whether you’re an artist, designer, hobbyist, student, or engineer.
Ellen Ullman - The Bug
In 1984, at the dawn of the personal-computer era, novice software tester Roberta Walton stumbles across a bug. She brings it to its inadvertent creator, longtime programmer Ethan Levin, and the two embark on a hunt for the elusive bug, nicknamed “The Jester” for its tendency to appear randomly and only at the least opportune moments, jeopardizing the fate of the company. Ethan’s attempts to find a solution soon become a frightening obsession that threatens to destroy both his professional and personal life. Roberta, on the other hand, is drawn to the challenge. Forced to learn how to program, and seeking refuge from her own private troubles, she becomes enthralled with learning to speak the computer’s language. Expertly merging code with prose, big ideas with intensely personal stories, Ellen Ullman brilliantly illuminates the space between human beings and computers—a space we occupy every day as we peer into our monitors.
Christopher Steiner - Automate This
The rousing story of the last gasp of human agency and how today’s best and brightest minds are endeavoring to put an end to it. It used to be that to diagnose an illness, interpret legal documents, analyze foreign policy, or write a newspaper article you needed a human being with specific skills - and maybe an advanced degree or two. These days, high-level tasks are increasingly being handled by algorithms that can do precise work not only with speed but also with nuance. These “bots” started with human programming and logic, but now their reach extends beyond what their creators ever expected. In this fascinating, frightening book, Christopher Steiner tells the story of how algorithms took over - and shows why the “bot revolution” is about to spill into every aspect of our lives, often silently, without our knowledge. The May 2010 “Flash Crash” exposed Wall Street’s reliance on trading bots to the tune of a 998-point market drop and $1 trillion in vanished market value. But that was just the beginning. In Automate This, we meet bots that are driving cars, penning haiku, and writing music mistaken for Bach’s. They listen in on our customer service calls and figure out what Iran would do in the event of a nuclear standoff. There are algorithms that can pick out the most cohesive crew of astronauts for a space mission or identify the next Jeremy Lin. Some can even ingest statistics from baseball games and spit out pitch-perfect sports journalism indistinguishable from that produced by humans. The interaction of man and machine can make our lives easier. But what will the world look like when algorithms control our hospitals, our roads, our culture, and our national security? What happens to businesses when we automate judgment and eliminate human instinct? And what role will be left for doctors, lawyers, writers, truck drivers, and many others? Who knows - maybe there’s a bot learning to do your job this minute.
Reto Meier - Professional Android 2 Application Development
Android is a powerful, flexible, open source platform for mobile devices and its popularity is growing at an unprecedented pace. This update to the bestselling first edition dives in to cover the exciting new features of the latest release of the Android mobile platform. Providing in-depth coverage of how to build mobile applications using the next major release of the Android SDK, this invaluable resource takes a hands-on approach to discussing Android with a series of projects, each of which introduces a new feature and highlights techniques and best practices to get the most out of Android. - The Android SDK is a powerful, flexible, open source platform for mobile devices - Shares helpful techniques and best practices to maximize the capabilities of Android - Explains the possibilities of Android through the use of a series of detailed projects - Demonstrates how to create real-world mobile applications for Android phones - Includes coverage of the latest version of Android Providing concise and compelling examples, Professional Android Application Development is an updated guide aimed at helping you create mobile applications for mobile devices running the latest version of Android.
Martin Bean - Laravel 5 Essentials
Laravel has established itself as one of the most popular PHP frameworks over the past couple of years. Its popularity comes due to its ease of use, expressive syntax, and the number of components it has, allowing you to achieve practically any task in a modern PHP application. If you've not had the opportunity to dive into Laravel yet, then this book will be the perfect companion, as it covers the fundamentals Laravel is built on in a thorough yet easy-to-follow manner. To make this book your best learning source, we have covered integral topics such as preparing an environment for working with Laravel applications, creating your first Laravel application from start to finish, a tour of Laravel's ORM Eloquent, and more advanced topics such as testing, user authentication, and security. Being one of the most interesting features in Laravel, we also cover an overview of Artisan, including descriptions of some of its tasks. Post this, we talk about testing and security. By the end of this book, you will be able to create robust PHP websites and web applications quickly and efficiently.