For thousands of years, people have been saying that the world is changing and will never again be the same. Yet the profound changes happening today are different, because they result from a specific technological development.
It is now possible, in principle, to remember everything that anyone says, writes, sings, draws, or photographs. Everythi...
This open book presents the proceedings of the 3rd Indo-German Conference on Sustainability in Engineering held at Birla Institute of Technology and Science, Pilani, India, on September 16 - 17, 2019. Intended to foster the synergies between research and education, the conference is one of the joint activities of the BITS Pilani and TU Braunschweig...
Platform Embedded Security Technology Revealed is an in-depth introduction to Intel's platform embedded solution: the security and management engine. The engine is shipped inside most Intel platforms for servers, personal computers, tablets, and smartphones. The engine realizes advanced security and management functionalities and protects appl...
This book discusses both the theory and practical applications of self-correcting data, commonly known as error-correcting codes. The applications included demonstrate the importance of these codes in a wide range of everyday technologies, from smartphones to secure communications and transactions. Written in a readily understandable style, the boo...
Digital Video Concepts, Methods, and Metrics: Quality, Compression, Performance, and Power Trade-off Analysis is a concise reference for professionals in a wide range of applications and vocations. It focuses on giving the reader mastery over the concepts, methods and metrics of digital video coding, so that readers have sufficient understanding to...
The next frontier for wireless LANs is 802.11ac, a standard that increases throughput beyond one gigabit per second. This concise guide provides in-depth information to help you plan for 802.11ac, with technical details on design, network operations, deployment, and monitoring.
Author Matthew Gast - an industry expert who led the development of ...
In this book, you will learn how digital signals are captured, represented, processed, communicated, and stored in computers. The specific topics we will cover include: physical properties of the source information (such as sound or images), devices for information capture (microphones, cameras), digitization, compression, digital signal representa...
An Introduction to Computer Networks, a free and open general-purpose computer-networking free book, complete with diagrams and exercises. It covers the LAN, internetworking and transport layers, focusing primarily on TCP/IP. Particular attention is paid to congestion; other special topics include queuing, real-time traffic, network management, sec...
This book for courses in Digital Systems Design introduces students to the fundamental hardware used in modern computers. Coverage includes both the classical approach to digital system design (i.e., pen and paper) in addition to the modern hardware description language (HDL) design approach (computer-based). Using this textbook enables readers to ...
This book for courses in Digital Systems Design introduces students to the fundamental hardware used in modern computers. Coverage includes both the classical approach to digital system design (i.e., pen and paper) in addition to the modern hardware description language (HDL) design approach (computer-based). Using this textbook enables readers to ...
This book has been designed for a first course on digital design for engineering and computer science students. It offers an extensive introduction on fundamental theories, from Boolean algebra and binary arithmetic to sequential networks and finite state machines, together with the essential tools to design and simulate systems composed of a contr...
This book provides a starter's guide to Verilog, to be used in conjunction with a one-semester course in Digital Systems Design, or on its own for readers who only need an introduction to the language. This book is designed to match the way the material is actually taught in the classroom. Topics are presented in a manner which builds foundati...
This textbook introduces readers to the fundamental hardware used in modern computers. The only pre-requisite is algebra, so it can be taken by college freshman or sophomore students or even used in Advanced Placement courses in high school. This book presents both the classical approach to digital system design (i.e., pen and paper) in addition ...
Crypto 101 is an introductory course on cryptography, freely available for programmers of all ages and skill levels.
Learn how to exploit common cryptographic flaws, armed with nothing but a little time and your favorite programming language.
Forge administrator cookies, recover passwords, and even backdoor your own random number generator....
Cryptography is an indispensable tool used to protect information in computing systems. It is used everywhere and by billions of people worldwide on a daily basis. It is used to protect data at rest and data in motion. Cryptographic systems are an integral part of standard protocols, most notably the Transport Layer Security (TLS) protocol, making ...
This book has extensive coverage of interfacing assembly and C code and so might be of interest to C programmers who want to learn about how C works under the hood. All the examples use the free NASM (Netwide) assembler. The tutorial only covers programming under 32-bit protected mode and requires a 32-bit protected mode compiler. It is possible to...
The OS kernel and this book were produced as part of an advanced individual course at the Royal Institute of Technology, Stockholm. The authors had previously taken courses in OS theory, but had only minor practical experience with OS kernel development. In order to get more insight and a deeper understanding of how the theory from the previous OS ...
SAT/SMT solvers can be viewed as solvers of huge systems of equations. The difference is that SMT solvers takes systems in arbitrary format, while SAT solvers are limited to boolean equations in CNF 1 form. A lot of real world problems can be represented as problems of solving system of equations....
This book presents a series of activities to teach the basics of computer networks. While you will not learn all aspects of computer networking, we hope that it will serve as a good starting point.
To network micro:bits, we use custom micro:bit radio to radio communication. When one hears the word radio, what comes to mind is the radio that blas...
With its novel XOR-based metric topology, Kademlia is the first peer-to-peer system to combine provable consistency and performance, latency-minimizing routing, and a symmetric, unidirectional topology. In The Kademlia Protocol Succinctly, author Marc Clifton leads readers through the positive aspects of Kademlia's decentralized specifications...
Security in software development should be a first-order requirement, but it's often implemented in projects as an afterthought. With Application Security in .NET Succinctly, author Stan Drapkin provides a refresher of .NET security practices and fills common knowledge gaps for experienced developers and novices alike. Learn about hashes, mach...
This is an optimization manual for advanced C++ programmers. This book are not for beginners.
Topics include:
- The choice of platform and operating system.
- Choice of compiler and framework.
- Finding performance bottlenecks.
- The efficiency of different C++ constructs.
- Multi-core systems.
- Parallelization with vector operations.
- CPU dispa...
Java is a high-level, cross-platform, object-oriented programming language that allows applications to be written once and run on a multitude of different devices. Java applications are ubiquitous, and the language is consistently ranked as one of the most popular and dominant in the world. Christopher Rose's Java Succinctly Part 1 describes t...
This book is aimed at readers who are interested in software development but have very little to no prior experience. The book focuses on teaching the core principles around software development. It uses several technologies to this goal (e.g. C, Python, JavaScript, HTML, etc.) but is not a book about the technologies themselves. The reader will le...
An experienced programmer accumulates a set of tools, tricks, and techniques to make his or her programs better. C++ Hacker's Guide collects more than 120 of the best C++ veteran secrets and puts them in one accessible place. The techniques presented have all been used in actual programs, and more importantly, have made actual programs better....
Raspberry Pi Pico is a new low-cost, high-performance microcontroller board with flexible digital interfaces. Microcontrollers are computers stripped back to their bare essentials. You don't use monitors or keyboards, but program them to take their input from, and send their output to the input/output pins. Using these programmable connections...
C is a general-purpose, procedural computer programming language supporting structured programming, lexical variable scope, and recursion, with a static type system.
The C Programming Language Handbook follows the 80/20 rule: learn in 20% of the time the 80% of a topic. In particular, the goal is to get you up to speed quickly with C....
Anyone can be a scientist, and this issue we'll show you how. Whether you're interested in space, traffic, the oceans, or something else, there's a citizen science project for you. The world has never been more connected - so let's use that connectivity to make our planet better!
- We talk to a real-like scientist about the e...
Covering the design and implementation of assemblers and loaders, this comprehensive book opens with an introduction to one-pass and two-pass assemblers. Important concepts such as absolute and relocatable object files are discussed, as are assembler features such as local labels and multiple location counters. The format, meaning and implementatio...
Each chapter comprises a separate study on some optimization problem giving both an introductory look into the theory the problem comes from and some new developments invented by author(s). Usually some elementary knowledge is assumed, yet all the required facts are quoted mostly in examples, remarks or theorems....
Lecture notes for the Yale Computer Science course CPSC 469/569 Randomized Algorithms. Suitable for use as a supplementary text for an introductory graduate or advanced undergraduate course on randomized algorithms. Discusses tools from probability theory, including random variables and expectations, union bound arguments, concentration bounds, app...
Computer Networks: A Systems Approach, Sixth Edition, explores the key principles of computer networking, using real world examples from network and protocol design. Using the Internet as the primary example, this best-selling classic textbook explains various protocols and networking technologies. The systems-oriented approach encourages students ...