DNA or Deoxyribonucleic Acid computing is an emerging branch of computing that uses DNA sequence, biochemistry, and hardware for encoding genetic information in computers. Here, information is represented by using the four genetic alphabets or DNA bases, namely A (Adenine), G (Guanine), C (Cytosine), and T (Thymine), instead of the binary representation (1 and 0) used by traditional computers. This is achieved because short DNA molecules of any arbitrary sequence of A, G, C, and T can be synthesized to order. DNA computing is mainly popular for three reasons: (i) speed (ii) minimal storage requirements, and (iii) minimal power requirements. There are many applications of DNA computing in the field of computer science. Nowadays, DNA computing is widely used in cryptography for achieving a strong security technique, so that unauthorized users are unable to retrieve the original data content. In DNA-based encryption, data are encrypted by using DNA bases (A, T, G, and C) instead of 0 and 1. As four DNA bases are used in the encryption process, DNA computing supports more randomness and makes it more complex for attackers or malicious users to hack the data. DNA computing is also used for data storage because a large number of data items can be stored inside the condensed volume. One gram of DNA holds approx DNA bases or approx 700 TB. However, it takes approx 233 hard disks to store the same data on 3 TB hard disks, and the weight of all these hard disks can be approx 151 kilos. In a cloud environment, the Data Owner (DO) stores their confidential encrypted data outside of their own domain, which attracts many attackers and hackers. DNA computing can be one of the best solutions to protect the data of a cloud server. Here, the DO can use DNA bases to encrypt the data by generating a long DNA sequence. Another application of DNA computing is in Wireless Sensor Network (WSN). Many researchers are trying to improve the security of WSN by using DNA computing. Here, DNA cryptography is used along with Secure Socket Layer (SSL) that supports a secure medium to exchange information. However, recent research shows some limitations of DNA computing. One of the critical issues is that DNA cryptography does not have a strong mathematical background like other cryptographic systems. This edited book is being planned to bring forth all the information of DNA computing. Along with the research gaps in the currently available books/literature, this edited book presents many applications of DNA computing in the fields of computer science. Moreover, research challenges and future work directions in DNA computing are also provided in this edited book.
Principles of Big Graph: In-depth Insight, Volume 128 in the Advances in Computer series, highlights new advances in the field with this new volume presenting interesting chapters on a variety of topics, including CESDAM: Centered subgraph data matrix for large graph representation, Bivariate, cluster and suitability analysis of NoSQL Solutions for big graph applications, An empirical investigation on Big Graph using deep learning, Analyzing correlation between quality and accuracy of graph clustering, geneBF: Filtering protein-coded gene graph data using bloom filter, Processing large graphs with an alternative representation, MapReduce based convolutional graph neural networks: A comprehensive review. Fast exact triangle counting in large graphs using SIMD acceleration, A comprehensive investigation on attack graphs, Qubit representation of a binary tree and its operations in quantum computation, Modified ML-KNN: Role of similarity measures and nearest neighbor configuration in multi label text classification on big social network graph data, Big graph based online learning through social networks, Community detection in large-scale real-world networks, Power rank: An interactive web page ranking algorithm, GA based energy efficient modelling of a wireless sensor network, The major challenges of big graph and their solutions: A review, and An investigation on socio-cyber crime graph.
*Textbook and Academic Authors Association (TAA) Textbook Excellence Award Winner, 2024*Engineering a Compiler, Third Edition covers the latest developments in compiler technology, with new chapters focusing on semantic elaboration (the problems that arise in generating code from the ad-hoc syntax-directed translation schemes in a generated parser), on runtime support for naming and addressability, and on code shape for expressions, assignments and control-structures. Leading educators and researchers, Keith Cooper and Linda Torczon, have revised this popular text with a fresh approach to learning important techniques for constructing a modern compiler, combining basic principles with pragmatic insights from their own experience building state-of-the-art compilers.
Programming Massively Parallel Processors: A Hands-on Approach shows both students and professionals alike the basic concepts of parallel programming and GPU architecture. Concise, intuitive, and practical, it is based on years of road-testing in the authors' own parallel computing courses. Various techniques for constructing and optimizing parallel programs are explored in detail, while case studies demonstrate the development process, which begins with computational thinking and ends with effective and efficient parallel programs. The new edition includes updated coverage of CUDA, including the newer libraries such as CuDNN. New chapters on frequently used parallel patterns have been added, and case studies have been updated to reflect current industry practices.
MATLAB Programming for Biomedical Engineers and Scientists, Second Edition provides an easy-to-learn introduction to the fundamentals of computer programming in MATLAB. The book explains the principles of good programming practice, while also demonstrating how to write efficient and robust code that analyzes and visualizes biomedical data. Aimed at the biomedical engineering student, biomedical scientist and medical researcher with little or no computer programming experience, this is an excellent resource for learning the principles and practice of computer programming using MATLAB. The book enables the reader to analyze problems and apply structured design methods to produce elegant, efficient and well-structured program designs, implement a structured program design in MATLAB, write code that makes good use of MATLAB programming features, including control structures, functions and advanced data types, and much more.
MATLAB: A Practical Introduction to Programming and Problem Solving, winner of TAA’s 2017 Textbook Excellence Award ("Texty"), guides the reader through both programming and built-in functions to easily exploit MATLAB’s extensive capabilities for tackling engineering and scientific problems. Assuming no knowledge of programming, this book starts with programming concepts, such as variables, assignments, and selection statements, moves on to loops, and then solves problems using both the programming concept and the power of MATLAB. The sixth edition has been updated to reflect the functionality of the current version of MATLAB (R2021a), including the introduction of machine learning concepts and the Machine Learning Toolbox, and new sections on data formats and data scrubbing.
Cloud Computing: Theory and Practice, Third Edition provides students and IT professionals with an in-depth analysis of the cloud from the ground up. After an introduction to network-centric computing and network-centric content, the book reviews basic concepts of concurrency and parallel and distributed systems, presents critical components of the cloud ecosystem as cloud service providers, cloud access, cloud data storage, and cloud hardware and software, covers cloud applications and cloud security, and presents research topics in cloud computing. Specific topics covered include resource virtualization, resource management and scheduling, and advanced topics like the impact of scale on efficiency, cloud scheduling subject to deadlines, alternative cloud architectures, and vehicular clouds. An included glossary covers terms grouped in several categories, from general to services, virtualization, desirable attributes and security.
Multicore and GPU Programming: An Integrated Approach, Second Edition offers broad coverage of key parallel computing tools, essential for multi-core CPU programming and many-core "massively parallel" computing. Using threads, OpenMP, MPI, CUDA and other state-of-the-art tools, the book teaches the design and development of software capable of taking advantage of modern computing platforms that incorporate CPUs, GPUs and other accelerators. Presenting material refined over more than two decades of teaching parallel computing, author Gerassimos Barlas minimizes the challenge of transitioning from sequential programming to mastering parallel platforms with multiple examples, extensive case studies, and full source code. By using this book, readers will better understand how to develop programs that run over distributed memory machines using MPI, create multi-threaded applications with either libraries or directives, write optimized applications that balance the workload between available computing resources, and profile and debug programs targeting parallel machines.
An Introduction to Parallel Programming, Second Edition presents a tried-and-true tutorial approach that shows students how to develop effective parallel programs with MPI, Pthreads and OpenMP.As the first undergraduate text to directly address compiling and running parallel programs on multi-core and cluster architecture, this second edition carries forward its clear explanations for designing, debugging and evaluating the performance of distributed and shared-memory programs while adding coverage of accelerators via new content on GPU programming and heterogeneous programming. New and improved user-friendly exercises teach students how to compile, run and modify example programs.
The Blockchain Technology for Secure and Smart Applications across Industry Verticals, Volume 121, presents the latest information on a type of distributed ledger used for maintaining a permanent and tamper-proof record of transactional data. The book presents a novel compendium of existing and budding Blockchain technologies for various smart applications. Chapters in this new release include the Basics of Blockchain, The Blockchain History, Architecture of Blockchain, Core components of Blockchain, Blockchain 2.0: Smart Contracts, Empowering Digital Twins with Blockchain, Industrial Use Cases at the Cusp of the IoT and Blockchain Paradigms, Blockchain Components and Concepts, Digital Signatures, Accumulators, Financial Systems, and more. This book is a unique effort to illuminate various techniques to represent, improve and authorize multi-institutional and multidisciplinary research in a different type of smart applications, like the financial system, smart grid, transportation system, etc. Readers in identity-privacy, traceability, immutability, transparency, auditability, and security will find it to be a valuable resource.