![]() |
Welcome to Loot.co.za!
Sign in / Register |Wishlists & Gift Vouchers |Help | Advanced search
|
Your cart is empty |
||
|
Books > Computing & IT > Computer programming > Programming languages
mental improvements during the same period. What is clearly needed in verification techniques and technology is the equivalent of a synthesis productivity breakthrough. In the second edition of Writing Testbenches, Bergeron raises the verification level of abstraction by introducing coverage-driven constrained-random transaction-level self-checking testbenches all made possible through the introduction of hardware verification languages (HVLs), such as e from Verisity and OpenVera from Synopsys. The state-of-art methodologies described in Writing Test benches will contribute greatly to the much-needed equivalent of a synthesis breakthrough in verification productivity. I not only highly recommend this book, but also I think it should be required reading by anyone involved in design and verification of today's ASIC, SoCs and systems. Harry Foster Chief Architect Verplex Systems, Inc. xviii Writing Testbenches: Functional Verification of HDL Models PREFACE If you survey hardware design groups, you will learn that between 60% and 80% of their effort is now dedicated to verification."
Based on the author's experience in teaching data science for more than 10 years, Mathematics and Programming for Machine Learning with R: From the Ground Up reveals how machine learning algorithms do their magic and explains how these algorithms can be implemented in code. It is designed to provide readers with an understanding of the reasoning behind machine learning algorithms as well as how to program them. Written for novice programmers, the book progresses step-by-step, providing the coding skills needed to implement machine learning algorithms in R. The book begins with simple implementations and fundamental concepts of logic, sets, and probability before moving to the coverage of powerful deep learning algorithms. The first eight chapters deal with probability-based machine learning algorithms, and the last eight chapters deal with machine learning based on artificial neural networks. The first half of the book does not require mathematical sophistication, although familiarity with probability and statistics would be helpful. The second half assumes the reader is familiar with at least one semester of calculus. The text guides novice R programmers through algorithms and their application and along the way; the reader gains programming confidence in tackling advanced R programming challenges. Highlights of the book include: More than 400 exercises A strong emphasis on improving programming skills and guiding beginners to the implementation of full-fledged algorithms Coverage of fundamental computer and mathematical concepts including logic, sets, and probability In-depth explanations of machine learning algorithms
An Active Learning Approach to Teaching the Main Ideas in Computing Explorations in Computing: An Introduction to Computer Science and Python Programming teaches computer science students how to use programming skills to explore fundamental concepts and computational approaches to solving problems. Tbook gives beginning students an introduction to computer science concepts and computer programming. Designed for CS0 and CS1 courses, it is very well suited for alternative lecture styles, including flipped classrooms. Prepares Students for Advanced Work in Computer ScienceA revised and updated version of the author's Explorations in Computing: An Introduction to Computer Science, this text incorporates two major differences. It now uses Python, instead of Ruby, as the lab software so that students can seamlessly transition from introductory projects to more advanced studies in later courses. The book also introduces Python programming, providing students with sufficient programming skills so they can implement their own programs. Practical, Step-by-Step ProjectsThe interactive lab projects in each chapter allow students to examine important ideas in computer science, particularly how algorithms offer computational solutions to problems. Students can type expressions, view results, and run experiments that help them understand the concepts in a hands-on way. Web ResourcesThe Python software modules for each lab project are available on the author's website. The modules include data files and sample Python code that students can copy and modify. In addition, the site provides a lab manual of installation instructions and tips for editing programs and running commands in a terminal emulator.
Perfectly intelligent programmers often struggle when forced to
work with SQL. Why? Joe Celko believes the problem lies with their
procedural programming mindset, which keeps them from taking full
advantage of the power of declarative languages. The result is
overly complex and inefficient code, not to mention lost
productivity.
Recent advances in electronic and computer technologies have paved the way for the proliferation of ubiquitous computing and innovative applications that incorporate these technologies. This proceedings book describes these new and innovative technologies, and covers topics like Ubiquitous Communication and Networks, Security Systems, Smart Devices and Applications, Cloud and Grid Systems, Service-oriented and Web Service Computing, Embedded Hardware and Image Processing and Multimedia.
The first edition of Exercises in Programming Style was honored as an ACM Notable Book and praised as "The best programming book of the decade." This new edition retains the same presentation but has been upgraded to Python 3, and there is a new section on neural network styles. Using a simple computational task (term frequency) to illustrate different programming styles, Exercises in Programming Style helps readers understand the various ways of writing programs and designing systems. It is designed to be used in conjunction with code provided on an online repository. The book complements and explains the raw code in a way that is accessible to anyone who regularly practices the art of programming. The book can also be used in advanced programming courses in computer science and software engineering programs. The book contains 40 different styles for writing the term frequency task. The styles are grouped into ten categories: historical, basic, function composition, objects and object interactions, reflection and metaprogramming, adversity, data-centric, concurrency, interactivity, and neural networks. The author states the constraints in each style and explains the example programs. Each chapter first presents the constraints of the style, next shows an example program, and then gives a detailed explanation of the code. Most chapters also have sections focusing on the use of the style in systems design as well as sections describing the historical context in which the programming style emerged.
Metaheuristic algorithms are considered as generic optimization tools that can solve very complex problems characterized by having very large search spaces. Metaheuristic methods reduce the effective size of the search space through the use of effective search strategies. Book Features: Provides a unified view of the most popular metaheuristic methods currently in use Includes the necessary concepts to enable readers to implement and modify already known metaheuristic methods to solve problems Covers design aspects and implementation in MATLAB (R) Contains numerous examples of problems and solutions that demonstrate the power of these methods of optimization The material has been written from a teaching perspective and, for this reason, this book is primarily intended for undergraduate and postgraduate students of artificial intelligence, metaheuristic methods, and/or evolutionary computation. The objective is to bridge the gap between metaheuristic techniques and complex optimization problems that profit from the convenient properties of metaheuristic approaches. Therefore, engineer practitioners who are not familiar with metaheuristic computation will appreciate that the techniques discussed are beyond simple theoretical tools, since they have been adapted to solve significant problems that commonly arise in such areas.
GPU Parallel Program Development using CUDA teaches GPU programming by showing the differences among different families of GPUs. This approach prepares the reader for the next generation and future generations of GPUs. The book emphasizes concepts that will remain relevant for a long time, rather than concepts that are platform-specific. At the same time, the book also provides platform-dependent explanations that are as valuable as generalized GPU concepts. The book consists of three separate parts; it starts by explaining parallelism using CPU multi-threading in Part I. A few simple programs are used to demonstrate the concept of dividing a large task into multiple parallel sub-tasks and mapping them to CPU threads. Multiple ways of parallelizing the same task are analyzed and their pros/cons are studied in terms of both core and memory operation. Part II of the book introduces GPU massive parallelism. The same programs are parallelized on multiple Nvidia GPU platforms and the same performance analysis is repeated. Because the core and memory structures of CPUs and GPUs are different, the results differ in interesting ways. The end goal is to make programmers aware of all the good ideas, as well as the bad ideas, so readers can apply the good ideas and avoid the bad ideas in their own programs. Part III of the book provides pointer for readers who want to expand their horizons. It provides a brief introduction to popular CUDA libraries (such as cuBLAS, cuFFT, NPP, and Thrust),the OpenCL programming language, an overview of GPU programming using other programming languages and API libraries (such as Python, OpenCV, OpenGL, and Apple's Swift and Metal,) and the deep learning library cuDNN.
The first edition of Exercises in Programming Style was honored as an ACM Notable Book and praised as "The best programming book of the decade." This new edition retains the same presentation but has been upgraded to Python 3, and there is a new section on neural network styles. Using a simple computational task (term frequency) to illustrate different programming styles, Exercises in Programming Style helps readers understand the various ways of writing programs and designing systems. It is designed to be used in conjunction with code provided on an online repository. The book complements and explains the raw code in a way that is accessible to anyone who regularly practices the art of programming. The book can also be used in advanced programming courses in computer science and software engineering programs. The book contains 40 different styles for writing the term frequency task. The styles are grouped into ten categories: historical, basic, function composition, objects and object interactions, reflection and metaprogramming, adversity, data-centric, concurrency, interactivity, and neural networks. The author states the constraints in each style and explains the example programs. Each chapter first presents the constraints of the style, next shows an example program, and then gives a detailed explanation of the code. Most chapters also have sections focusing on the use of the style in systems design as well as sections describing the historical context in which the programming style emerged.
Just Enough R! An Interactive Approach to Machine Learning and Analytics presents just enough of the R language, machine learning algorithms, statistical methodology, and analytics for the reader to learn how to find interesting structure in data. The approach might be called "seeing then doing" as it first gives step-by-step explanations using simple, understandable examples of how the various machine learning algorithms work independent of any programming language. This is followed by detailed scripts written in R that apply the algorithms to solve nontrivial problems with real data. The script code is provided, allowing the reader to execute the scripts as they study the explanations given in the text. Features Gets you quickly using R as a problem-solving tool Uses RStudio's integrated development environment Shows how to interface R with SQLite Includes examples using R's Rattle graphical user interface Requires no prior knowledge of R, machine learning, or computer programming Offers over 50 scripts written in R, including several problem-solving templates that, with slight modification, can be used again and again Covers the most popular machine learning techniques, including ensemble-based methods and logistic regression Includes end-of-chapter exercises, many of which can be solved by modifying existing scripts Includes datasets from several areas, including business, health and medicine, and science About the Author Richard J. Roiger is a professor emeritus at Minnesota State University, Mankato, where he taught and performed research in the Computer and Information Science Department for over 30 years.
This book provides a high-level description, together with a mathematical and an experimental analysis, of Java and of the Java Virtual Machine (JVM), including a standard compiler of Java programs to JVM code and the security critical bytecode verifier component of the JVM. The description is structured into language layers and machine components. It comes with a natural executable refinement (written in AsmGofer and provided on CD ROM) which can be used for testing code. The method developed for this purpose is based on Abstract State Machines (ASMs) and can be applied to other virtual machines and to other programming languages as well. The book is written for advanced students and for professionals and practitioners in research and development who need a complete and transparent definition and an executable model of the language and of the virtual machine underlying its intended implementation.The CD ROM contains the entire text of the book and numerous examples and exercises.
This book, written entirely by hand, is an introduction to programming in Pascal. It starts with the fundamental concept of a stored program and works through to the manipulation of records in dynamic storage. The style of presentation is pictorial. This book may be used as a self-contained reference manual for Pascal to BS 6192 and ISO 7185. Besides defining the statements and structures of Pascal this book illustrates the use of such features in small but complete programs. These programs introduce fundamental techniques of programming such as symbol-state tables, bubble sort, quicksoft, stacks and queues, reverse Polish notation, linked lists, shortest-route technique, doubly linked rings, binary trees, hashing technique and other tools of the programmer's trade.
As part of the best-selling Pocket Primer series, this book is designed to provide a thorough introduction to Java development for people who are relatively new to the Java programming language. It is intended to be a fast-paced introduction to the core concepts of Java and Java APIs, illustrated with code samples using primarily Java 8. Companion files with source code are available. FEATURES: Covers Boolean logic, loops, arrays, recursion, OOP concepts, data structures, streams, SQL, and more. Lists new features in Java 9 through Java 13. Features numerous code samples throughout. Includes companion files with source code.
This book shows readers how to get the most out of C# using Object Orientation. The author takes a hands-on approach to learning C# and object orientation, using lots of worked examples. The text provides an ideal base from which to start programming. After introducing the C# language and object orientation, John Hunt goes on to explain: how to construct a user interface for a simple editor; how to obtain information on files and directories and how objects can be stored and restored using serialization... -Presents C# and object-orientation as a coherent whole, using one to strengthen the presentation of the other -Includes lots of complete and worked examples to clarify readers'understanding -The source code for the examples is available at: http://www.guide-to-csharp.net -Hunt is a successful Springer author, and this book is written in the same style as his Java for Practitioners
This book provides readers with a single-source reference to static-single assignment (SSA)-based compiler design. It is the first (and up to now only) book that covers in a deep and comprehensive way how an optimizing compiler can be designed using the SSA form. After introducing vanilla SSA and its main properties, the authors describe several compiler analyses and optimizations under this form. They illustrate how compiler design can be made simpler and more efficient, thanks to the SSA form. This book also serves as a valuable text/reference for lecturers, making the teaching of compilers simpler and more effective. Coverage also includes advanced topics, such as code generation, aliasing, predication and more, making this book a valuable reference for advanced students and practicing engineers.
"TCP/IP sockets in C# is an excellent book for anyone interested in
writing network applications using Microsoft .Net frameworks. It is
a unique combination of well written concise text and rich
carefully selected set of working examples. For the beginner of
network programming, it's a good starting book; on the other hand
professionals could also take advantage of excellent handy sample
code snippets and material on topics like message parsing and
asynchronous programming." The popularity of the C# language and the .NET framework is ever
rising due to its ease of use, the extensive class libraries
available in the .NET Framework, and the ubiquity of the Microsoft
Windows operating system, to name a few advantages. TCP/IP Sockets
in C# focuses on the Sockets API, the de facto standard for writing
network applications in any programming language. Starting with
simple client and server programs that use TCP/IP (the Internet
protocol suite), students and practitioners quickly learn the
basics and move on to firsthand experience with advanced topics
including non-blocking sockets, multiplexing, threads, asynchronous
programming, and multicasting. Key network programming concepts
such as framing, performance and deadlocks are illustrated through
hands-on examples. Using a detailed yet clear, concise approach,
this book includes numerous code examples and focused discussions
to provide a solid understanding of programming TCP/IP sockets in
C#.
Fortran is a computer language that has been around for a quarter of a century, and is still much used despite predictions throughout its life that it would be replaced by more elegant languages. But Fortran is still the only language in which it is possible to write truly portable programs. Using his own special formula, Donald Alcock now does for Fortran what he did for BASIC in his earlier book, Illustrating BASIC. The Fortran described and illustrated is that defined by the American National Standards Institute in 1966 but with allusions to the same Institute's standard published in 1978. For both the person who is new to computers and programming, and the person who has met only BASIC before, this book will give an excellent introduction to standard Fortran; it also provides a reference manual for the language.
Because of its portability and platform-independence, Java is the ideal computer programming language to use when working on graph algorithms and other mathematical programming problems. Collecting some of the most popular graph algorithms and optimization procedures, A Java Library of Graph Algorithms and Optimization provides the source code for a library of Java programs that can be used to solve problems in graph theory and combinatorial optimization. Self-contained and largely independent, each topic starts with a problem description and an outline of the solution procedure, followed by its parameter list specification, source code, and a test example that illustrates the usage of the code. The book begins with a chapter on random graph generation that examines bipartite, regular, connected, Hamilton, and isomorphic graphs as well as spanning, labeled, and unlabeled rooted trees. It then discusses connectivity procedures, followed by a paths and cycles chapter that contains the Chinese postman and traveling salesman problems, Euler and Hamilton cycles, and shortest paths. The author proceeds to describe two test procedures involving planarity and graph isomorphism. Subsequent chapters deal with graph coloring, graph matching, network flow, and packing and covering, including the assignment, bottleneck assignment, quadratic assignment, multiple knapsack, set covering, and set partitioning problems. The final chapters explore linear, integer, and quadratic programming. The appendices provide references that offer further details of the algorithms and include the definitions of many graph theory terms used in the book.
This book guides the reader through the subject of heat transfer, covering the analytical, coding, finite element, and hybrid methods of thermal modeling. It leads the reader through the processes of model creation for heat transfer analysis and validating them using analytical techniques and partial differential equations. The primary focus is on the MATLAB (R) and COMSOL Multiphysics (R) software packages. The content can be utilized in a variety of engineering disciplines including mechanical, aerospace, biomedical, chemical, civil, and electrical. Mathematicians, analysts, and scientists might also benefit from the content, because it provides the reader with an introduction to the heat transfer science as well as numerical and analytical thermal modeling. Companion files with models and full color figures from the book are included. FEATURES: Includes 2D and 3D thermal modeling examples created with COMSOL Multiphysics version 5.6 (Heat Transfer Module) as well as general guidance on geometry creation and import Covers 2D and 3D thermal modeling examples created with the MATLAB PDE Toolbox and axisymmetric 2D thermal modeling examples created with the MATLAB PDE Modeler Provides case studies and example models which enable the reader to implement conceptual material in practical scenarios with broad industrial applications Validation of FEM analyses with analytical approaches Features an introduction to MATLAB v.R2021 for readers with no prior knowledge of the software Includes companion files with the models created with COMSOL Multiphysics and MATLAB.
Part I of this book is a practical introduction to working with the Isabelle proof assistant. It teaches you how to write functional programs and inductive definitions and how to prove properties about them in Isabelle's structured proof language. Part II is an introduction to the semantics of imperative languages with an emphasis on applications like compilers and program analysers. The distinguishing feature is that all the mathematics has been formalised in Isabelle and much of it is executable. Part I focusses on the details of proofs in Isabelle; Part II can be read even without familiarity with Isabelle's proof language, all proofs are described in detail but informally. The book teaches the reader the art of precise logical reasoning and the practical use of a proof assistant as a surgical tool for formal proofs about computer science artefacts. In this sense it represents a formal approach to computer science, not just semantics. The Isabelle formalisation, including the proofs and accompanying slides, are freely available online, and the book is suitable for graduate students, advanced undergraduate students, and researchers in theoretical computer science and logic.
Formal Languages and Computation: Models and Their Applications gives a clear, comprehensive introduction to formal language theory and its applications in computer science. It covers all rudimental topics concerning formal languages and their models, especially grammars and automata, and sketches the basic ideas underlying the theory of computation, including computability, decidability, and computational complexity. Emphasizing the relationship between theory and application, the book describes many real-world applications, including computer science engineering techniques for language processing and their implementation. Covers the theory of formal languages and their models, including all essential concepts and properties Explains how language models underlie language processors Pays a special attention to programming language analyzers, such as scanners and parsers, based on four language models-regular expressions, finite automata, context-free grammars, and pushdown automata Discusses the mathematical notion of a Turing machine as a universally accepted formalization of the intuitive notion of a procedure Reviews the general theory of computation, particularly computability and decidability Considers problem-deciding algorithms in terms of their computational complexity measured according to time and space requirements Points out that some problems are decidable in principle, but they are, in fact, intractable problems for absurdly high computational requirements of the algorithms that decide them In short, this book represents a theoretically oriented treatment of formal languages and their models with a focus on their applications. It introduces all formalisms concerning them with enough rigors to make all results quite clear and valid. Every complicated mathematic
C++ is one of the most important and influential programming languages for application development. It supports the modular, object- oriented and generic programming models and its flexibility has been one of the main reasons why it has been so successful. With the emergence of the Boost Libraries (www.boost.org) we see that C++ is brought to a new level, namely a set of reusable and modular template libraries that C++ developers can use in their applications. This book is dedicated to a number of Boost libraries for higher-order functions, data types and data structures, libraries for text and string processing, multi-threading, random number generation and more. We also discuss how Boost and design patterns are used to promote the flexibility of code. Each library is described in a step-by-step manner. Numerous examples are given to show the functionality of each library. The full source code is freely available to purchasers of the book. Coverage Includes Understanding and using 30 major Boost libraries. Learn about higher-order functions, data structures, memory management, multi-threading and more. Using Boost in new and existing applications. Integrating Boost and the Gang-Of-Four design patterns. Ready-to-run projects for Visual Studio. Appendices and exercises."
NVIDIA's Full-Color Guide to Deep Learning: All You Need to Get Started and Get Results "To enable everyone to be part of this historic revolution requires the democratization of AI knowledge and resources. This book is timely and relevant towards accomplishing these lofty goals." -- From the foreword by Dr. Anima Anandkumar, Bren Professor, Caltech, and Director of ML Research, NVIDIA "Ekman uses a learning technique that in our experience has proven pivotal to success-asking the reader to think about using DL techniques in practice. His straightforward approach is refreshing, and he permits the reader to dream, just a bit, about where DL may yet take us." -- From the foreword by Dr. Craig Clawson, Director, NVIDIA Deep Learning Institute Deep learning (DL) is a key component of today's exciting advances in machine learning and artificial intelligence. Learning Deep Learning is a complete guide to DL. Illuminating both the core concepts and the hands-on programming techniques needed to succeed, this book is ideal for developers, data scientists, analysts, and others--including those with no prior machine learning or statistics experience. After introducing the essential building blocks of deep neural networks, such as artificial neurons and fully connected, convolutional, and recurrent layers, Magnus Ekman shows how to use them to build advanced architectures, including the Transformer. He describes how these concepts are used to build modern networks for computer vision and natural language processing (NLP), including Mask R-CNN, GPT, and BERT. And he explains how a natural language translator and a system generating natural language descriptions of images. Throughout, Ekman provides concise, well-annotated code examples using TensorFlow with Keras. Corresponding PyTorch examples are provided online, and the book thereby covers the two dominating Python libraries for DL used in industry and academia. He concludes with an introduction to neural architecture search (NAS), exploring important ethical issues and providing resources for further learning. Explore and master core concepts: perceptrons, gradient-based learning, sigmoid neurons, and back propagation See how DL frameworks make it easier to develop more complicated and useful neural networks Discover how convolutional neural networks (CNNs) revolutionize image classification and analysis Apply recurrent neural networks (RNNs) and long short-term memory (LSTM) to text and other variable-length sequences Master NLP with sequence-to-sequence networks and the Transformer architecture Build applications for natural language translation and image captioning NVIDIA's invention of the GPU sparked the PC gaming market. The company's pioneering work in accelerated computing--a supercharged form of computing at the intersection of computer graphics, high-performance computing, and AI--is reshaping trillion-dollar industries, such as transportation, healthcare, and manufacturing, and fueling the growth of many others. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
If you program in C++ you've been neglected. Test-driven
development (TDD) is a modern software development practice that
can dramatically reduce the number of defects in systems, produce
more maintainable code, and give you the confidence to change your
software to meet changing needs. But C++ programmers have been
ignored by those promoting TDD--until now. In this book, Jeff Langr
gives you hands-on lessons in the challenges and rewards of doing
TDD in C++.
Text analytics (TA) covers a very wide research area. Its overarching goal is to discover and present knowledge - facts, rules, and relationships - that is otherwise hidden in the textual content. The authors of this book guide us in a quest to attain this knowledge automatically, by applying various machine learning techniques.This book describes recent development in multilingual text analysis. It covers several specific examples of practical TA applications, including their problem statements, theoretical background, and implementation of the proposed solution. The reader can see which preprocessing techniques and text representation models were used, how the evaluation process was designed and implemented, and how these approaches can be adapted to multilingual domains. |
You may like...
Introducing Delphi Programming - Theory…
John Barrow, Linda Miller, …
Paperback
(1)R751 Discovery Miles 7 510
Introduction to Computational Economics…
Hans Fehr, Fabian Kindermann
Hardcover
R4,258
Discovery Miles 42 580
Dark Silicon and Future On-chip Systems…
Suyel Namasudra, Hamid Sarbazi-Azad
Hardcover
R3,940
Discovery Miles 39 400
|