58 Best 「cs」 Books of 2024| Books Explorer
- Structure and Interpretation of Computer Programs, second edition (MIT Electrical Engineering and Computer Science)
- Code Complete 2nd Edition(Dv-Professional)
- Code
- Everything You Need to Ace Computer Science and Coding in One Big Fat Notebook: The Complete Middle School Study Guide (Big Fat Notebooks)
- Design Patterns: Elements of Reusable Object-Oriented Software (Addison-Wesley Professional Computing Series)
- Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series)
- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
- C Programming Language (Prentice Hall Software)
- Feynman Lectures On Computation (Frontiers in Physics)
- Verification of Sequential and Concurrent Programs (Texts in Computer Science)
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.
From the editors of Brain Quest, America’s #1 educational bestseller! This Big Fat Notebook makes it all “sink in” with key concepts, mnemonic devices, definitions, diagrams, and doodles to help you understand computer science.Including:\nComputing systems\nBinary code\nAlgorithms\nComputational thinking\nLoops, events, and procedures\nProgramming in Scratch and Python\nBoolean Expressions\nWeb development\nCybersecurity\nHTML\nCSS\n…and more!\n\n The Big Fat Notebook series is built on a simple and irresistible conceit—borrowing the notes from the smartest kid in class. Each book in the series meets Common Core State Standards, Next Generation Science Standards, and state history standards, and are vetted by National and State Teacher of the Year Award–winning teachers. They make learning fun and are the perfect next step for every kid who grew up on Brain Quest.
Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.Noted software expert Robert C. Martin, presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin, who has helped bring agile principles from a practitioner’s point of view to tens of thousands of programmers, has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of software craftsman, and make you a better programmer―but only if you work at it.What kind of work will you be doing? You’ll be reading code―lots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly you will be challenged to reassess your professional values and your commitment to your craft.Clean Codeis divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code―of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.Readers will come away from this book understandingHow to tell the difference between good and bad code How to write good code and how to transform bad code into good code How to create good names, good functions, good objects, and good classes How to format code for maximum readability How to implement complete error handling without obscuring code logic How to unit test and practice test-driven development What “smells” and heuristics can help you identify bad code This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?In this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications. Peer under the hood of the systems you already use, and learn how to use and operate them more effectively Make informed decisions by identifying the strengths and weaknesses of different tools Navigate the trade-offs around consistency, scalability, fault tolerance, and complexity Understand the distributed systems research upon which modern databases are built Peek behind the scenes of major online services, and learn from their architectures
When, in 198486, Richard P. Feynman gave his famous course on computation at the California Institute of Technology, he asked Tony Hey to adapt his lecture notes into a book. Although led by Feynman, the course also featured, as occasional guest speakers, some of the most brilliant men in science at that time, including Marvin Minsky, Charles Bennett, and John Hopfield. Although the lectures are now thirteen years old, most of the material is timeless and presents a Feynmanesque” overview of many standard and some not-so-standard topics in computer science such as reversible logic gates and quantum computers.
HIS BOOK CONTAINS a most comprehensive text that presents syntax-directed and compositional methods for the formal veri?- T cation of programs. The approach is not language-bounded in the sense that it covers a large variety of programming models and features that appear in most modern programming languages. It covers the classes of - quential and parallel, deterministic and non-deterministic, distributed and object-oriented programs. For each of the classes it presents the various c- teria of correctness that are relevant for these classes, such as interference freedom, deadlock freedom, and appropriate notions of liveness for parallel programs. Also, special proof rules appropriate for each class of programs are presented. In spite of this diversity due to the rich program classes cons- ered, there exist a uniform underlying theory of veri?cation which is synt- oriented and promotes compositional approaches to veri?cation, leading to scalability of the methods. The text strikes the proper balance between mathematical rigor and - dactic introduction of increasingly complex rules in an incremental manner, adequately supported by state-of-the-art examples. As a result it can serve as a textbook for a variety of courses on di?erent levels and varying durations. It can also serve as a reference book for researchers in the theory of veri?- tion, in particular since it contains much material that never before appeared in book form. This is specially true for the treatment of object-oriented p- grams which is entirely novel and is strikingly elegant.
Some copies of this book have a printing error that causes the figures to be unreadable. If you have received one of these copies, please contact the Pragmatic Bookshelf at support@pragprog.com, and we will replace it for you.Algorithms and data structures are much more than abstract concepts. Mastering them enables you to write code that runs faster and more efficiently, which is particularly important for today’s web and mobile apps. This book takes a practical approach to data structures and algorithms, with techniques and real-world scenarios that you can use in your daily production code. Graphics and examples make these computer science concepts understandable and relevant. You can use these techniques with any language; examples in the book are in JavaScript, Python, and Ruby.Use Big O notation, the primary tool for evaluating algorithms, to measure and articulate the efficiency of your code, and modify your algorithm to make it faster. Find out how your choice of arrays, linked lists, and hash tables can dramatically affect the code you write. Use recursion to solve tricky problems and create algorithms that run exponentially faster than the alternatives. Dig into advanced data structures such as binary trees and graphs to help scale specialized applications such as social networks and mapping software. You’ll even encounter a single keyword that can give your code a turbo boost. Jay Wengrow brings to this book the key teaching practices he developed as a web development bootcamp founder and educator.Use these techniques today to make your code faster and more scalable.
An exploration of how computer algorithms can be applied to our everyday lives to solve common decision-making problems and illuminate the workings of the human mind.What should we do, or leave undone, in a day or a lifetime? How much messiness should we accept? What balance of the new and familiar is the most fulfilling? These may seem like uniquely human quandaries, but they are not. Computers, like us, confront limited space and time, so computer scientists have been grappling with similar problems for decades. And the solutions they’ve found have much to teach us.In a dazzlingly interdisciplinary work, Brian Christian and Tom Griffiths show how algorithms developed for computers also untangle very human questions. They explain how to have better hunches and when to leave things to chance, how to deal with overwhelming choices and how best to connect with others. From finding a spouse to finding a parking spot, from organizing one’s inbox to peering into the future, Algorithms to Live By transforms the wisdom of computer science into strategies for human living.
Your Complete Guide to Cloud Computing and Migrating to the Cloud. This book covers not only the technical details of how public and private cloud technology works but also the strategy, technical design, and in-depth implementation details required to migrate existing applications to the cloud. After reading this book, you will have a much better understanding of cloud technology and the steps required to quickly reap its benefits while at the same time lowering your IT implementation risk. Written by a proven expert in cloud computing, business management, network engineering, and IT security. This is a must-read for IT management, CIOs, senior IT engineers, and program managers in the government, DoD, and commercial sectors.
While many think of algorithms as specific to computer science, at its core algorithmic thinking is defined by the use of analytical logic to solve problems. This logic extends far beyond the realm of computer science and into the wide and entertaining world of puzzles. In Algorithmic Puzzles, Anany and Maria Levitin use many classic brainteasers as well as newer ex&les from job interviews with major corporations to show readers how to apply analytical thinking to solve puzzles requiring well-defined procedures.The book's unique collection of puzzles is supplemented with carefully developed tutorials on algorithm design strategies and analysis techniques intended to walk the reader step-by-step through the various approaches to algorithmic problem solving. Mastery of these strategies-exhaustive search, backtracking, and divide-and-conquer, among others-will aid the reader in solving not only the puzzles contained in this book, but also others encountered in interviews, puzzle collections, and throughout everyday life. Each of the 150 puzzles contains hints and solutions, along with commentary on the puzzle's origins and solution methods. The only book of its kind, Algorithmic Puzzles houses puzzles for all skill levels. Readers with only middle school mathematics will develop their algorithmic problem-solving skills through puzzles at the elementary level, while seasoned puzzle solvers will enjoy the challenge of thinking through more difficult puzzles.
The most comprehensive, up-to-date introduction to the theory and practice of artificial intelligence The long-anticipated revision of Artificial Intelligence: A Modern Approach explores the full breadth and depth of the field of artificial intelligence (AI). The 4th Edition brings readers up to date on the latest technologies, presents concepts in a more unified manner, and offers new or expanded coverage of machine learning, deep learning, transfer learning, multiagent systems, robotics, natural language processing, causality, probabilistic programming, privacy, fairness, and safe AI.
An introduction to a broad range of topics in deep learning, covering mathematical and conceptual background, deep learning techniques used in industry, and research perspectives.“Written by three experts in the field, Deep Learning is the only comprehensive book on the subject.”—Elon Musk, cochair of OpenAI; cofounder and CEO of Tesla and SpaceXDeep learning is a form of machine learning that enables computers to learn from experience and understand the world in terms of a hierarchy of concepts. Because the computer gathers knowledge from experience, there is no need for a human computer operator to formally specify all the knowledge that the computer needs. The hierarchy of concepts allows the computer to learn complicated concepts by building them out of simpler ones; a graph of these hierarchies would be many layers deep. This book introduces a broad range of topics in deep learning.The text offers mathematical and conceptual background, covering relevant concepts in linear algebra, probability theory and information theory, numerical computation, and machine learning. It describes deep learning techniques used by practitioners in industry, including deep feedforward networks, regularization, optimization algorithms, convolutional networks, sequence modeling, and practical methodology; and it surveys such applications as natural language processing, speech recognition, computer vision, online recommendation systems, bioinformatics, and videogames. Finally, the book offers research perspectives, covering such theoretical topics as linear factor models, autoencoders, representation learning, structured probabilistic models, Monte Carlo methods, the partition function, approximate inference, and deep generative models.Deep Learning can be used by undergraduate or graduate students planning careers in either industry or research, and by software engineers who want to begin using deep learning in their products or platforms. A website offers supplementary material for both readers and instructors.
In this introductory textbook the author explains the key topics in cryptography. He takes a modern approach, where defining what is meant by "secure" is as important as creating something that achieves that goal, and security definitions are central to the discussion throughout.The author balances a largely non-rigorous style ― many proofs are sketched only ― with appropriate formality and depth. For example, he uses the terminology of groups and finite fields so that the reader can understand both the latest academic research and "real-world" documents such as application programming interface descriptions and cryptographic standards. The text employs colour to distinguish between public and private information, and all chapters include summaries and suggestions for further reading.This is a suitable textbook for advanced undergraduate and graduate students in computer science, mathematics and engineering, and for self-study byprofessionals in information security. While the appendix summarizes most of the basic algebra and notation required, it is assumed that the reader has a basic knowledge of discrete mathematics, probability, and elementary calculus.
The #1 Easy, Commonsense Guide to Database Design! Michael J. Hernandez’s best-selling Database Design for Mere Mortals® has earned worldwide respect as the clearest, simplest way to learn relational database design. Now, he’s made this hands-on, software-independent tutorial even easier, while ensuring that his design methodology is still relevant to the latest databases, applications, and best practices. Step by step, Database Design for Mere Mortals ® , Third Edition, shows you how to design databases that are soundly structured, reliable, and flexible, even in modern web applications. Hernandez guides you through everything from database planning to defining tables, fields, keys, table relationships, business rules, and views. You’ll learn practical ways to improve data integrity, how to avoid common mistakes, and when to break the rules. Coverage includes Understanding database types, models, and design terminology Discovering what good database design can do for you—and why bad design can make your life miserable Setting objectives for your database, and transforming those objectives into real designs Analyzing a current database so you can identify ways to improve it Establishing table structures and relationships, assigning primary keys, setting field specifications, and setting up views Ensuring the appropriate level of data integrity for each application Identifying and establishing business rules Whatever relational database systems you use, Hernandez will help you design databases that are robust and trustworthy. Never designed a database before? Settling for inadequate generic designs? Running existing databases that need improvement? Start here.
For courses in Networking/CommunicationsMotivates readers with a top-down, layered approach to computer networkingUnique among computer networking texts, the Seventh Edition of the popular Computer Networking: A Top Down Approach builds on the author’s long tradition of teaching this complex subject through a layered approach in a “top-down manner.” The text works its way from the application layer down toward the physical layer, motivating readers by exposing them to important concepts early in their study of networking. Focusing on the Internet and the fundamentally important issues of networking, this text provides an excellent foundation for readers interested in computer science and electrical engineering, without requiring extensive knowledge of programming or mathematics. The Seventh Edition has been updated to reflect the most important and exciting recent advances in networking.
A New York Times Bestseller. A “fascinating” (Thomas L. Friedman, New York Times) look at how digital technology is transforming our work and our lives. In recent years, Google’s autonomous cars have logged thousands of miles on American highways and IBM’s Watson trounced the best human Jeopardy! players. Digital technologies―with hardware, software, and networks at their core―will in the near future diagnose diseases more accurately than doctors can, apply enormous data sets to transform retailing, and accomplish many tasks once considered uniquely human. In The Second Machine Age MIT’s Erik Brynjolfsson and Andrew McAfee―two thinkers at the forefront of their field―reveal the forces driving the reinvention of our lives and our economy. As the full impact of digital technologies is felt, we will realize immense bounty in the form of dazzling personal technology, advanced infrastructure, and near-boundless access to the cultural items that enrich our lives.\nAmid this bounty will also be wrenching change. Professions of all kinds―from lawyers to truck drivers―will be forever upended. Companies will be forced to transform or die. Recent economic indicators reflect this shift: fewer people are working, and wages are falling even as productivity and profits soar.\nDrawing on years of research and up-to-the-minute trends, Brynjolfsson and McAfee identify the best strategies for survival and offer a new path to prosperity. These include revamping education so that it prepares people for the next economy instead of the last one, designing new collaborations that pair brute processing power with human ingenuity, and embracing policies that make sense in a radically transformed landscape.\nA fundamentally optimistic book, The Second Machine Age alters how we think about issues of technological, societal, and economic progress.
This latest edition of the best-selling implementation guide to the Structured Query Language teaches SQL fundamentals while providing practical solutions for critical business applications. The Practical SQL Handbook, Fourth Edition now includes expanded platform SQL coverage and extensive real-world examples based on feedback from actual SQL users. The Practical SQL Handbook begins with a step-by-step introduction to SQL basics and examines the issues involved in designing SQL-based database applications. It fully explores SQLs most popular implementations from industry leaders, Oracle, Microsoft, Sybase, and Informix. Highlights include: \nDetailed coverage of SQL commands for creating databases, tables, and indexes, and for adding, changing, and deleting data Using the SELECT command to retrieve specific data Handling NULL values (missing information) in a relational database Joining tables, including self joins and outer joins (ANSI and WHERE-clause syntax) Working with nested queries (subqueries) to get data from multiple tables Creating views (virtual tables) to provide customized access to data Using SQL functions \nA bonus CD-ROM contains a time-limited, full-feature version of the Sybase® Adaptive Server Anywhere™ software as well as the sample database, scripts, and examples included in the book. The Practical SQL Handbook is the most complete reference available for day-to-day SQL implementations. 0201703092B05222001
A New York Times bestsellerSuperintelligence asks the questions: What happens when machines surpass humans in general intelligence? Will artificial agents save or destroy us? Nick Bostrom lays the foundation for understanding the future of humanity and intelligent life.The human brain has some capabilities that the brains of other animals lack. It is to these distinctive capabilities that our species owes its dominant position. If machine brains surpassed human brains in general intelligence, then this new superintelligence could become extremely powerful - possibly beyond our control. As the fate of the gorillas now depends more on humans than on the species itself, so would the fate of humankind depend on the actions of the machine superintelligence.But we have one advantage: we get to make the first move. Will it be possible to construct a seed Artificial Intelligence, to engineer initial conditions so as to make an intelligence explosion survivable? How could one achieve a controlled detonation?This profoundly ambitious and original book breaks down a vast track of difficult intellectual terrain. After an utterly engrossing journey that takes us to the frontiers of thinking about the human condition and the future of intelligent life, we find in Nick Bostrom's work nothing less than a reconceptualization of the essential task of our time.
Winner of the Pulitzer PrizeA metaphorical fugue on minds and machines in the spirit of Lewis CarrollDouglas Hofstadter's book is concerned directly with the nature of "maps" or links between formal systems. 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.
Modern Operating Systems, Fourth Edition, is intended for introductory courses in Operating Systems in Computer Science, Computer Engineering, and Electrical Engineering programs. It also serves as a useful reference for OS professionals ¿ The widely anticipated revision of this worldwide best-seller incorporates the latest developments in operating systems (OS) technologies. The Fourth Edition includes up-to-date materials on relevant¿OS. Tanenbaum also provides information on current research based on his experience as an operating systems researcher. ¿ Modern Operating Systems, Third Editionwas the recipient of the 2010 McGuffey Longevity Award. The McGuffey Longevity Award recognizes textbooks whose excellence has been demonstrated over time.¿http://taaonline.net/index.html ¿¿ Teaching and Learning Experience This program will provide a better teaching and learning experience–for you and your students. It will help: ¿ \n Provide Practical Detail on the Big Picture Concepts: A clear and entertaining writing style outlines the concepts every OS designer needs to master. Keep Your Course Current: This edition includes information on the latest OS technologies and developments Enhance Learning with Student and Instructor Resources: Students will gain hands-on experience using the simulation exercises and lab experiments.
“One of the most significant books in my life.” —Obie Fernandez, Author, The Rails Way“Twenty years ago, the first edition of The Pragmatic Programmer completely changed the trajectory of my career. This new edition could do the same for yours.” —Mike Cohn, Author of Succeeding with Agile, Agile Estimating and Planning, and User Stories Applied“. filled with practical advice, both technical and professional, that will serve you and your projects well for years to come.” —Andrea Goulet, CEO, Corgibytes, Founder, LegacyCode.Rocks“. . . lightning does strike twice, and this book is proof.” —VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper NetworksThe Pragmatic Programmer is one of those rare tech books you’ll read, re-read, and read again over the years. Whether you’re new to the field or an experienced practitioner, you’ll come away with fresh insights each and every time.Dave Thomas and Andy Hunt wrote the first edition of this influential book in 1999 to help their clients create better software and rediscover the joy of coding. These lessons have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories.Now, twenty years later, this new edition re-examines what it means to be a modern programmer. Topics range 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 to:Fight software rot Learn continuously Avoid the trap of duplicating knowledge Write flexible, dynamic, and adaptable code Harness the power of basic tools Avoid programming by coincidence Learn real requirements Solve the underlying problems of concurrent code Guard against security vulnerabilities Build teams of Pragmatic Programmers Take responsibility for your work and career Test ruthlessly and effectively, including property-based testing Implement the Pragmatic Starter Kit Delight your users Written as a series of self-contained sections and filled with classic and fresh anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best approaches 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.Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
The latest edition of the essential text and professional reference, with substantial new material on such topics as vEB trees, multithreaded algorithms, dynamic programming, and edge-based flow.Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. The book covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.The first edition became a widely used text in universities worldwide as well as the standard reference for professionals. The second edition featured new chapters on the role of algorithms, probabilistic analysis and randomized algorithms, and linear programming. The third edition has been revised and updated throughout. It includes two completely new chapters, on van Emde Boas trees and multithreaded algorithms, substantial additions to the chapter on recurrence (now called "Divide-and-Conquer"), and an appendix on matrices. It features improved treatment of dynamic programming and greedy algorithms and a new notion of edge-based flow in the material on flow networks. Many exercises and problems have been added for this edition. The international paperback edition is no longer available; the hardcover is available worldwide.
This classic book on formal languages, automata theory, and computational complexity has been updated to present theoretical concepts in a concise and straightforward manner with the increase of hands-on, practical applications. This new edition comes with Gradiance, an online assessment tool developed for computer science. Gradiance is the most advanced online assessment tool developed for the computer science discipline. With its innovative underlying technology, Gradiance turns basic homework assignments and programming labs into an interactive learning experience for students. By using a series of root questions and hints, it not only tests a student's capability, but actually simulates a one-on-one teacher-student tutorial that allows for the student to more easily learn the material. Through the programming labs, instructors are capable of testing, tracking, and honing their students' skills, both in terms of syntax and semantics, with an unprecedented level of assessment never before offered. For more information about Gradiance, please visit www.aw.com/gradiance.
What does the world want? According to John Battelle, a company that answers that question—in all its shades of meaning—can unlock the most intractable riddles of business and arguably of human culture itself. And for the past few years, that’s exactly what Google has been doing.\nBut The Search offers much more than the inside story of Google’s triumph. It’s a big-picture book about the past, present, and future of search technology and the enormous impact it’s starting to have on marketing, media, pop culture, dating, job hunting, international law, civil liberties, and just about every other sphere of human interest.
Updated for C11Write powerful C programs...without becoming a technical expert! This book is the fastest way to get comfortable with C, one incredibly clear and easy step at a time. You’ll learn all the basics: how to organize programs, store and display data, work with variables, operators, I/O, pointers, arrays, functions, and much more. C programming has neverbeen this simple!Who knew how simple C programming could be?This is today’s best beginner’s guide to writing C programs–and to learning skills you can use with practically any language. Its simple, practical instructions will help you start creating useful, reliable C code, from games to mobile apps. Plus, it’s fully updated for the new C11 standard and today’s free, open source tools! Here’s a small sample of what you’ll learn:• Discover free C programming tools for Windows, OS X, or Linux• Understand the parts of a C program and how they fit together• Generate output and display it on the screen• Interact with users and respond to their input• Make the most of variables by using assignments and expressions• Control programs by testing data and using logical operators• Save time and effort by using loops and other techniques• Build powerful data-entry routines with simple built-in functions• Manipulate text with strings• Store information, so it’s easy to access and use• Manage your data with arrays, pointers, and data structures• Use functions to make programs easier to write and maintain• Let C handle all your program’s math for you• Handle your computer’s memory as efficiently as possible• Make programs more powerful with preprocessing directives
Gain a clear understanding of even the most complex, highly theoretical computational theory topics in the approachable presentation found only in the market-leading INTRODUCTION TO THE THEORY OF COMPUTATION, 3E. The number one choice for today's computational theory course, this revision continues the book's well-know, approachable style with timely revisions, additional practice, and more memorable examples in key areas. A new first-of-its-kind theoretical treatment of deterministic context-free languages is ideal for a better understanding of parsing and LR(k) grammars. You gain a solid understanding of the fundamental mathematical properties of computer hardware, software, and applications with a blend of practical and philosophical coverage and mathematical treatments, including advanced theorems and proofs. INTRODUCTION TO THE THEORY OF COMPUTATION, 3E's comprehensive coverage makes this a valuable reference for your continued studies in theoretical computing.
Since Don’t Make Me Think was first published in 2000, hundreds of thousands of Web designers and developers have relied on usability guru Steve Krug’s guide to help them understand the principles of intuitive navigation and information design. Witty, commonsensical, and eminently practical, it’s one of the best-loved and most recommended books on the subject.Now Steve returns with fresh perspective to reexamine the principles that made Don’t Make Me Think a classic–with updated examples and a new chapter on mobile usability. And it’s still short, profusely illustrated…and best of all–fun to read.If you’ve read it before, you’ll rediscover what made Don’t Make Me Think so essential to Web designers and developers around the world. If you’ve never read it, you’ll see why so many people have said it should be required reading for anyone working on Web sites.“After reading it over a couple of hours and putting its ideas to work for the past five years, I can say it has done more to improve my abilities as a Web designer than any other book.”–Jeffrey Zeldman, author of Designing with Web Standards .
4th Edition - New for 2022 A great intro to Computer Science concepts for all ages. Perfect for: AP Computer Science Principles Teacher Certification Tests (PRAXIS, GACE, etc.) Integrated Digital Technology CS Foundations Curious kids and adults Everyone!--- The 4th edition comes with several updates, including: Easier to read code Visualizing data Misrepresenting Data An intro to SQL More on graphics InfoSec's CIA triad JavaScript event listeners More alternative software options and more!---\nComputer science is the world's fastest growing field of study, and this growth is showing no signs of slowing down. As a new field, computer science can seem intimidating, but it should not be scary to learn or difficult to understand. If you have ever turned on a phone or surfed the Internet then you have used a computer and should have a basic understanding of what happens when you click the mouse or touch the screen—and how fast it happens! Computer Science Principles introduces the creative side of computing. Once you've made your way through this book, you'll be editing photos, designing websites, coding JavaScript, and getting organized with spreadsheets—and along the way you'll learn the foundational concepts of computer science. How do computers convert information into ones and zeros and send it thousands of miles in a blink of the eye? What is an IP address? What do TCP/IP, DNS, HTML, and CSS stand for? How can a hard drive store large movies and thousands of songs? How can secrets be sent in plain sight? These questions—and more—are answered in Computer Science Principles.\\n---\\nUnits include: Hardware, Software, Number Systems, and Boolean Expressions Pixels and Images\n2.5. Adobe Photoshop Compressing Data Storing Data: Spreadsheets and Databases Protecting Data: Heuristics, Security, and Encryption The Internet Web Design: HTML and CSS\n7.5. Adobe Dreamweaver Programming: JavaScript Impact of Computing Important Vocabulary
Lisp has been hailed as the world’s most powerful programming language, but its cryptic syntax and academic reputation can be enough to scare off even experienced programmers. Those dark days are finally over—Land of Lisp brings the power of functional programming to the people!With his brilliantly quirky comics and out-of-this-world games, longtime Lisper Conrad Barski teaches you the mysteries of Common Lisp. You’ll start with the basics, like list manipulation, I/O, and recursion, then move on to more complex topics like macros, higher order programming, and domain-specific languages. Then, when your brain overheats, you can kick back with an action-packed comic book interlude!Along the way you’ll create (and play) games like Wizard Adventure, a text adventure with a whiskey-soaked twist, and Grand Theft Wumpus, the most violent version of Hunt the Wumpus the world has ever seen.You'll learn to:–Master the quirks of Lisp’s syntax and semantics–Write concise and elegant functional programs–Use macros, create domain-specific languages, and learn other advanced Lisp techniques–Create your own web server, and use it to play browser-based games–Put your Lisp skills to the test by writing brain-melting games like Dice of Doom and Orc BattleWith Land of Lisp, the power of functional programming is yours to wield.
I am not a recruiter. I am a software engineer. And as such, I know what it's like to be asked to whip up brilliant algorithms on the spot and then write flawless code on a whiteboard. I've been through this as a candidate and as an interviewer.Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I've coached and interviewed hundreds of software engineers. The result is this book.Learn how to uncover the hints and hidden details in a question, discover how to break down a problem into manageable chunks, develop techniques to unstick yourself when stuck, learn (or re-learn) core computer science concepts, and practice on 189 interview questions and solutions.These interview questions are real; they are not pulled out of computer science textbooks. They reflect what's truly being asked at the top companies, so that you can be as prepared as possible. WHAT'S INSIDE? 189 programming interview questions, ranging from the basics to the trickiest algorithm problems. A walk-through of how to derive each solution, so that you can learn how to get there yourself. Hints on how to solve each of the 189 questions, just like what you would get in a real interview. Five proven strategies to tackle algorithm questions, so that you can solve questions you haven't seen. Extensive coverage of essential topics, such as big O time, data structures, and core algorithms. A behind the scenes look at how top companies like Google and Facebook hire developers. Techniques to prepare for and ace the soft side of the interview: behavioral questions. For interviewers and companies: details on what makes a good interview question and hiring process.Illustrations noteIllustrations: Illustrations, black and white
The New State of the Art in Information Security: Now Covers Cloud Computing, the Internet of Things, and Cyberwarfare Students and IT and security professionals have long relied on Security in Computing as the definitive guide to computer security attacks and countermeasures. Now, the authors have thoroughly updated this classic to reflect today’s newest technologies, attacks, standards, and trends. Security in Computing, Fifth Edition, offers complete, timely coverage of all aspects of computer security, including users, software, devices, operating systems, networks, and data. Reflecting rapidly evolving attacks, countermeasures, and computing environments, this new edition introduces best practices for authenticating users, preventing malicious code execution, using encryption, protecting privacy, implementing firewalls, detecting intrusions, and more. More than two hundred end-of-chapter exercises help the student to solidify lessons learned in each chapter. Combining breadth, depth, and exceptional clarity, this comprehensive guide builds carefully from simple to complex topics, so you always understand all you need to know before you move forward. You’ll start by mastering the field’s basic terms, principles, and concepts. Next, you’ll apply these basics in diverse situations and environments, learning to ”think like an attacker” and identify exploitable weaknesses. Then you will switch to defense, selecting the best available solutions and countermeasures. Finally, you’ll go beyond technology to understand crucial management issues in protecting infrastructure and data. New coverage includes \nA full chapter on securing cloud environments and managing their unique risks Extensive new coverage of security issues associated with user—web interaction New risks and techniques for safeguarding the Internet of Things A new primer on threats to privacy and how to guard it An assessment of computers and cyberwarfare–recent attacks and emerging risks Security flaws and risks associated with electronic voting systems
This practically-focused textbook presents a concise tutorial on data structures and algorithms using the object-functional language Scala. The material builds upon the foundation established in the title Programming with Scala: Language Exploration by the same author, which can be treated as a companion text for those less familiar with Scala.Topics and features: discusses data structures and algorithms in the form of design patterns; covers key topics on arrays, lists, stacks, queues, hash tables, binary trees, sorting, searching, and graphs; describes examples of complete and running applications for each topic; presents a functional approach to implementations for data structures and algorithms (excepting arrays); provides numerous challenge exercises (with solutions), encouraging the reader to take existing solutions and improve upon them; offers insights from the author’s extensive industrial experience; includes a glossary, and an appendix supplying an overview of discrete mathematics.Highlighting the techniques and skills necessary to quickly derive solutions to applied problems, this accessible text will prove invaluable to time-pressured students and professional software engineers.
One of the world's great designers shares his vision of "the fundamental principles of great and meaningful design", that's "even more relevant today than it was when first published" (Tim Brown, CEO, IDEO).Even the smartest among us can feel inept as we fail to figure out which light switch or oven burner to turn on, or whether to push, pull, or slide a door.The fault, argues this ingenious -- even liberating -- book, lies not in ourselves, but in product design that ignores the needs of users and the principles of cognitive psychology. The problems range from ambiguous and hidden controls to arbitrary relationships between controls and functions, coupled with a lack of feedback or other assistance and unreasonable demands on memorization.The Design of Everyday Things shows that good, usable design is possible. The rules are simple: make things visible, exploit natural relationships that couple function and control, and make intelligent use of constraints. The goal: guide the user effortlessly to the right action on the right control at the right time.The Design of Everyday Things is a powerful primer on how -- and why -- some products satisfy customers while others only frustrate them.
The Self-Taught Computer Scientist is Cory Althoff's follow-up to The Self-Taught Programmer, which inspired hundreds of thousands of professionals to learn how to program outside of school. In The Self-Taught Programmer, Cory showed readers why you don't need a computer science degree to program professionally and taught the programming fundamentals he used to go from a complete beginner to a software engineer at eBay without one. In The Self-Taught Computer Scientist, Cory teaches you the computer science concepts that all self-taught programmers should understand to have outstanding careers. The Self-Taught Computer Scientist will not only make you a better programmer; it will also help you pass your technical interview: the interview all programmers have to pass to land a new job. Whether you are preparing to apply for jobs or sharpen your computer science knowledge, reading The Self-Taught Computer Scientist will improve your programming career. It's written for complete beginners, so you should have no problem reading it even if you've never studied computer science before.
A comprehensive introduction to type systems and programming languages.A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of type systemsand of programming languages from a type-theoretic perspectivehas important applications in software engineering, language design, high-performance compilers, and security.This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages. The approach is pragmatic and operational; each new concept is motivated by programming examples and the more theoretical sections are driven by the needs of implementations. Each chapter is accompanied by numerous exercises and solutions, as well as a running implementation, available via the Web. Dependencies between chapters are explicitly identified, allowing readers to choose a variety of paths through the material.The core topics include the untyped lambda-calculus, simple type systems, type reconstruction, universal and existential polymorphism, subtyping, bounded quantification, recursive types, kinds, and type operators. Extended case studies develop a variety of approaches to modeling the features of object-oriented languages.
Charles Forbin has dedicated the last ten years of his life to the construction of his own supercomputer, Colossus, rejecting romantic and social endeavors in order to create the United States' very first Artificially Intelligent defense system. Colossus is a supercomputer capable of in-taking and analyzing data rapidly, allowing it to make real time decisions about the nation's defense. But Colossus soon exceeds even Forbin's calculated expectations, learning to think independently of the Colossus Programming Office, processing data over one hundred times faster than Forbin and his team had originally anticipated. The President hands off full control of the nation's missiles and other defense protocols to Colossus and makes the announcement to the world that he has ensured peace. However, the USSR quickly announces that it too has a supercomputer, Guardian, with capabilities similar to that of Colossus. Forbin is concerned when Colossus asks-asks-to communicate with Guardian. The computer he built shouldn't be able to ask at all . . .
With this extraordinary first volume in an epoch-making masterpiece, Neal Stephenson hacks into the secret histories of nations and the private obsessions of men, decrypting with dazzling virtuosity the forces that shaped this century.\nIn 1942, Lawrence Pritchard Waterhouse—mathematical genius and young Captain in the U.S. Navy—is assigned to detachment 2702. It is an outfit so secret that only a handful of people know it exists, and some of those people have names like Churchill and Roosevelt. The mission of Waterhouse and Detachment 2702—commanded by Marine Raider Bobby Shaftoe-is to keep the Nazis ignorant of the fact that Allied Intelligence has cracked the enemy's fabled Enigma code. It is a game, a cryptographic chess match between Waterhouse and his German counterpart, translated into action by the gung-ho Shaftoe and his forces.\nFast-forward to the present, where Waterhouse's crypto-hacker grandson, Randy, is attempting to create a "data haven" in Southeast Asia—a place where encrypted data can be stored and exchanged free of repression and scrutiny. As governments and multinationals attack the endeavor, Randy joins forces with Shaftoe's tough-as-nails granddaughter, Amy, to secretly salvage a sunken Nazi submarine that holds the key to keeping the dream of a data haven afloat. But soon their scheme brings to light a massive conspiracy with its roots in Detachment 2702 linked to an unbreakable Nazi code called Arethusa. And it will represent the path to unimaginable riches and a future of personal and digital liberty...or to universal totalitarianism reborn.\nA breathtaking tour de force, and Neal Stephenson's most accomplished and affecting work to date, Cryptonomicon is profound and prophetic, hypnotic and hyper-driven, as it leaps forward and back between World War II and the World Wide Web, hinting all the while at a dark day-after-tomorrow. It is a work of great art, thought and creative daring; the product of a truly iconoclastic imagination working with white-hot intensity.
"Have you lost your mind? They'll kill you. Are you willing to literally bet your life on-" "On my own technical expertise? Yes. Always." It was supposed to be just another software job. It wasn't supposed to involve dodging bullets, igniting explosions, out-driving hitmen, or bluffing his way through the dens of international crime lords. Danny's big brain has always served him well at a workstation or a soldering bench, but will he be smart enough to survive the engineering challenge of a lifetime? Onetime computer whiz-kid Danny still dreams of making it big as an inventor and technologist in the "digital revolution". But when a fat-fingered email flub from tech investor Jason Tuttle destroys Danny's latest company, he takes stock of his career and realizes that that ship's long since sailed. Using some inconvenient information, Danny "persuades" Jason to give him another employment opportunity. But his new assignment may be much more than he bargained for. Jason has his sights set on a small, highly secretive biotechnology company called Tungsten Medical Technologies. They've been impossibly tight-lipped about what they're developing in there, but Jason is willing to use any means necessary to find out. That's where Danny comes in. His mission: hack into Tungsten and steal their pharmaceutical research. At first, Danny and his team of semi-competent geeks relish the chance to play-act as cybercriminals, but they soon discover they aren't the only ones interested in the inscrutable biotech firm. Their ill-timed computer shenanigans interrupt an armed break-in of the laboratory by the Russian mafia, and Danny lands squarely in the crosshairs of a local cocaine kingpin. He soon finds himself hunted by drug dealers and exploited by Machiavellian corporate moguls in a battle over a test tube of genetically engineered bacteria. With the help of Tina, an amateur microbiologist desperate for professional recognition, Danny must use his technical skills to elude his powerful pursuers - and, with luck, even beat them at their own game.
Robert A. Heinlein was the most influential science fiction writer of his era, an influence so large that, as Samuel R. Delany notes, "modern critics attempting to wrestle with that influence find themselves dealing with an object rather like the sky or an ocean." He won the Hugo Award for best novel four times, a record that still stands. The Moon is a Harsh Mistress was the last of these Hugo-winning novels, and it is widely considered his finest work.It is a tale of revolution, of the rebellion of the former Lunar penal colony against the Lunar Authority that controls it from Earth. It is the tale of the disparate people--a computer technician, a vigorous young female agitator, and an elderly academic--who become the rebel movement's leaders. And it is the story of Mike, the supercomputer whose sentience is known only to this inner circle, and who for reasons of his own is committed to the revolution's ultimate success.The Moon is a Harsh Mistress is one of the high points of modern science fiction, a novel bursting with politics, humanity, passion, innovative technical speculation, and a firm belief in the pursuit of human freedom.The Moon is a Harsh Mistress is the winner of the 1967 Hugo Award for Best Novel.
When a sophisticated computer endowed with artificial intelligence begins to create poetry and exhibits human behavior, his creators attempt to shut him down
#1 NEW YORK TIMES BEST SELLER • At last, a book that shows you how to build—design—a life you can thrive in, at any age or stage • “Life has questions. They have answers.” —The New York TimesDesigners create worlds and solve problems using design thinking. Look around your office or home—at the tablet or smartphone you may be holding or the chair you are sitting in. Everything in our lives was designed by someone. And every design starts with a problem that a designer or team of designers seeks to solve.In this book, Bill Burnett and Dave Evans show us how design thinking can help us create a life that is both meaningful and fulfilling, regardless of who or where we are, what we do or have done for a living, or how young or old we are. The same design thinking responsible for amazing technology, products, and spaces can be used to design and build your career and your life, a life of fulfillment and joy, constantly creative and productive, one that always holds the possibility of surprise.
The New Normal: Evaluating Social and Ethical Concerns in the Information Age New technologies have brought us many benefits, but they have also raised many social and ethical concerns. The authors view in Ethics for the Information Age is that we ought to approach every new technology in a thoughtful manner, considering not just its short-term benefits, but also how its long-term use will affect our lives. A thoughtful response to information technology requires a basic understanding of its history, an awareness of current information-technology- related issues, and a familiarity with ethics. In the Seventh Edition, Quinn provides an impartial look at the problems technology both solves and creates. As in previous editions, he presents information in a manner that leads you to arrive at your own conclusions on crucial ethics questions. Weaving in a vital dose of IT history, the new topics keep the book relevant and can function as either a sole reference or a supplemental guide for computer ethics courses.
INSTANT NEW YORK TIMES BESTSELLER“One of the most important books I’ve ever read―an indispensable guide to thinking clearly about the world.” – Bill Gates“Hans Rosling tells the story of ‘the secret silent miracle of human progress’ as only he can. But Factfulness does much more than that. It also explains why progress is so often secret and silent and teaches readers how to see it clearly.” ―Melinda Gates"Factfulness by Hans Rosling, an outstanding international public health expert, is a hopeful book about the potential for human progress when we work off facts rather than our inherent biases." - Former U.S. President Barack ObamaFactfulness: The stress-reducing habit of only carrying opinions for which you have strong supporting facts.When asked simple questions about global trends―what percentage of the world’s population live in poverty; why the world’s population is increasing; how many girls finish school―we systematically get the answers wrong. So wrong that a chimpanzee choosing answers at random will consistently outguess teachers, journalists, Nobel laureates, and investment bankers.In Factfulness, Professor of International Health and global TED phenomenon Hans Rosling, together with his two long-time collaborators, Anna and Ola, offers a radical new explanation of why this happens. They reveal the ten instincts that distort our perspective―from our tendency to divide the world into two camps (usually some version of us and them) to the way we consume media (where fear rules) to how we perceive progress (believing that most things are getting worse).Our problem is that we don’t know what we don’t know, and even our guesses are informed by unconscious and predictable biases.It turns out that the world, for all its imperfections, is in a much better state than we might think. That doesn’t mean there aren’t real concerns. But when we worry about everything all the time instead of embracing a worldview based on facts, we can lose our ability to focus on the things that threaten us most.Inspiring and revelatory, filled with lively anecdotes and moving stories, Factfulness is an urgent and essential book that will change the way you see the world and empower you to respond to the crises and opportunities of the future.---“This book is my last battle in my life-long mission to fight devastating ignorance…Previously I armed myself with huge data sets, eye-opening software, an energetic learning style and a Swedish bayonet for sword-swallowing. It wasn’t enough. But I hope this book will be.” Hans Rosling, February 2017.
"[How the Mind Works] marks out the territory on which the coming century's debate about human nature will be held."―Oliver Morton, The New Yorker In this extraordinary bestseller, Steven Pinker, one of the world's leading cognitive scientists, does for the rest of the mind what he did for language in his 1994 book, The Language Instinct. He explains what the mind is, how it evolved, and how it allows us to see, think, feel, laugh, interact, enjoy the arts, and ponder the mysteries of life. And he does it with the wit that prompted Mark Ridley to write in the New York Times Book Review, "No other science writer makes me laugh so much. . . . [Pinker] deserves the superlatives that are lavished on him." The arguments in the book are as bold as its title. Pinker rehabilitates some unfashionable ideas, such as that the mind is a computer and that human nature was shaped by natural selection, and challenges fashionable ones, such as that passionate emotions are irrational, that parents socialize their children, and that nature is good and modern society corrupting. Winner of the Los Angeles Times Book Prize A New York Times Notable Book of the Year and Publishers Weekly Best Book of 1997 Featured in Time magazine, the New York Times Magazine, The New Yorker, Nature, Science, Lingua Franca, and Science Times Front-page reviews in the Washington Post Book World, the Boston Globe Book Section, and the San Diego Union Book Review Illustrations