Understanding the Digital World: What You Need to Know about Computers, the Internet, Privacy, and Security

Princeton University Press
2
Free sample

The basics of how computer hardware, software, and systems work, and the risks they create for our privacy and security

Computers are everywhere. Some of them are highly visible, in laptops, tablets, cell phones, and smart watches. But most are invisible, like those in appliances, cars, medical equipment, transportation systems, power grids, and weapons. We never see the myriad computers that quietly collect, share, and sometimes leak vast amounts of personal data about us. Through computers, governments and companies increasingly monitor what we do. Social networks and advertisers know far more about us than we should be comfortable with, using information we freely give them. Criminals have all-too-easy access to our data. Do we truly understand the power of computers in our world?

Understanding the Digital World explains how computer hardware, software, networks, and systems work. Topics include how computers are built and how they compute; what programming is and why it is difficult; how the Internet and the web operate; and how all of these affect our security, privacy, property, and other important social, political, and economic issues. This book also touches on fundamental ideas from computer science and some of the inherent limitations of computers. It includes numerous color illustrations, notes on sources for further exploration, and a glossary to explain technical terms and buzzwords.

Understanding the Digital World is a must-read for all who want to know more about computers and communications. It explains, precisely and carefully, not only how they operate but also how they influence our daily lives, in terms anyone can understand, no matter what their experience and knowledge of technology.

Read more
Collapse

About the author

Brian W. Kernighan is a professor in the Department of Computer Science at Princeton University. He is the coauthor of ten other books, including the computing classic The C Programming Language (Prentice Hall). He lives in Princeton, New Jersey.
Read more
Collapse
4.5
2 total
Loading…

Additional Information

Publisher
Princeton University Press
Read more
Collapse
Published on
Jan 9, 2017
Read more
Collapse
Pages
256
Read more
Collapse
ISBN
9781400884803
Read more
Collapse
Read more
Collapse
Read more
Collapse
Language
English
Read more
Collapse
Genres
Computers / Computer Science
Computers / Hardware / General
Computers / Networking / General
Computers / Programming / General
Computers / Security / General
Computers / Security / Networking
Computers / Software Development & Engineering / General
Read more
Collapse
Content protection
This content is DRM protected.
Read more
Collapse
Read aloud
Available on Android devices
Read more
Collapse
Eligible for Family Library

Reading information

Smartphones and Tablets

Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.

Laptops and Computers

You can read books purchased on Google Play using your computer's web browser.

eReaders and other devices

To read on e-ink devices like the Sony eReader or Barnes & Noble Nook, you'll need to download a file and transfer it to your device. Please follow the detailed Help center instructions to transfer the files to supported eReaders.
This book introduces the tools you'll need to program with the packetC language.

packetC speeds the development of applications that live within computer networks, the kind of programs that provide network functionality for connecting "clients" and "servers” and “clouds." The simplest examples provide packet switching and routing while more complex examples implement cyber security, broadband policies or cloud-based network infrastructure.

Network applications, such as those processing digital voice and video, must be highly scalable, secure and maintainable. Such application requirements translate to requirements for a network programming language that leverages massively-parallel systems and ensures a high level of security, while representing networking protocols and transactions in the simplest way possible.

packetC meets these requirements with an intuitive approach to coarse-grained parallelism, with strong-typing and controlled memory access for security and with new data types and operators that express the classic operations of the network-oriented world in familiar programming terms.

No other language has addressed the full breadth of requirements for tractable parallelism, secure processing and usable constructs. The packetC language is growing in adoption and has been used to develop solutions operating in some of the world’s largest networks.

This important new language, packetC, has now been successfully documented in this book, in which the language's authors provide the materials and tools you'll need in a readable and accessible form.

Examine the challenges of 4G in the light of impending and crucial future communication needs, and review the lessons learned from an implementation and system operation perspective with an eye towards the next generation – 5G. You'll investigate key changes and additions to 5G in terms of use cases. You'll also learn about the applications for and explorations of the technology.

Among all of the technological disruptions, two stand out in particular – mmWave and spectrum sharing technologies. Rolling Out 5G features detailed coverage of these two critical topics, and for the first time among 5G learning resources presents a holistic perspective on key ingredients for mobile communication in a 5G world.

The authors represent highly experienced experts with valuable know-how in the field of wireless communications related research projects defining future technological trends. This unique group of talents will be able to consider the 5G technology evolution from all angles mentioned: long-term research, standardization and regulation, product design and marketization. This approach allows this much-needed book to capture the views of all key decision making stake-holders involved in the 5G definition process, and to serve readers in their roles connected with wireless communication's next generation of products and services.


What You'll Learn

See how 5G is expected to overcome 4G insufficiencies and challenges
Examine expected 5G features, including usage of millimeter wave communication and licensed shared access
Review key milestones of the next generation wireless communication technology including key standardization and regulation bodies
Study new technologies and upcoming changes in feature sets and client expectations.

Who This Book Is For

Engineers of mobile device and infrastructure manufacturing industries, development engineers of semiconductor manufacturing industries, and engineers with a general interest in the field. Mobile network operators, along with students and business professionals in the telecommunications domain will also find the topic of interest.

Despite means of fault prevention such as extensive testing or formal veri?cation, errors inevitably occur during system operation. To avoid subsequent system fa- ures, critical distributed systems, therefore, require engineering of means for fault tolerance. Achieving fault tolerance requires some redundancy, which, unfor- nately, is bound to limitations. Appropriate fault models are needed to describe which types of faults and how many faults are tolerable in a certain context. Pre- ous research on distributed systems has often introduced fault models that abstract too many relevant system properties such as dependent and propagating com- nent failures. In this research work, Timo Warns introduces new structural failure models that are both accurate (to cover relevant properties) and tractable (to be - alyzable). These new failure models cover dependent failures (for instance, failure correlation by geographic proximity) and propagating failures (for instance, pr- agation by service utilization). To evaluate the new failure models, Timo Warns shows how some seminal problems in distributed systems can be solved with - proved resilience and ef?ciency, as compared to existing solutions. Particularly, the textbook-style introduction to distributed systems and the r- orous presentation of the new failure models and their evaluation may serve as an example for other software engineering research projects – which is why this book is a valuable addition to both a researcher’s and a student’s library.
The Go Programming Language is the authoritative resource for any programmer who wants to learn Go. It shows how to write clear and idiomatic Go to solve real-world problems. The book does not assume prior knowledge of Go nor experience with any specific language, so you’ll find it accessible whether you’re most comfortable with JavaScript, Ruby, Python, Java, or C++. The first chapter is a tutorial on the basic concepts of Go, introduced through programs for file I/O and text processing, simple graphics, and web clients and servers. Early chapters cover the structural elements of Go programs: syntax, control flow, data types, and the organization of a program into packages, files, and functions. The examples illustrate many packages from the standard library and show how to create new ones of your own. Later chapters explain the package mechanism in more detail, and how to build, test, and maintain projects using the go tool. The chapters on methods and interfaces introduce Go’s unconventional approach to object-oriented programming, in which methods can be declared on any type and interfaces are implicitly satisfied. They explain the key principles of encapsulation, composition, and substitutability using realistic examples. Two chapters on concurrency present in-depth approaches to this increasingly important topic. The first, which covers the basic mechanisms of goroutines and channels, illustrates the style known as communicating sequential processes for which Go is renowned. The second covers more traditional aspects of concurrency with shared variables. These chapters provide a solid foundation for programmers encountering concurrency for the first time. The final two chapters explore lower-level features of Go. One covers the art of metaprogramming using reflection. The other shows how to use the unsafe package to step outside the type system for special situations, and how to use the cgo tool to create Go bindings for C libraries.

The book features hundreds of interesting and practical examples of well-written Go code that cover the whole language, its most important packages, and a wide range of applications. Each chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download from http://gopl.io/ and may be conveniently fetched, built, and installed using the go get command.

©2020 GoogleSite Terms of ServicePrivacyDevelopersArtistsAbout Google|Location: United StatesLanguage: English (United States)
By purchasing this item, you are transacting with Google Payments and agreeing to the Google Payments Terms of Service and Privacy Notice.