![]() |
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
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.
The Unified Modeling Language (UML) is an evolutionary general-purpose, tool-supported, and industry-standardized (OMG) modeling language for specifying, visualizing, constructing, and documenting the artifacts of a system-intensive process. "Guide to Applying the UML" offers a practical bridge between tutorials and reference works, demonstrating how all of the elements of the UML fit together holistically and cohesively. It closes the gap between the UML and process using a ¿roadmap¿ that addresses the key decision points and their relationships, providing a comprehensive framework. The focus is on rules of usage and principles of composition, style guidelines, practical real-world examples, and a tool-, process-, and technology-independent roadmap for effectively and successfully applying the UML. Topics and features: * Essential rules for using the UML and composing UML models are collated around important UML constructs *Presents a broad introduction to applying the UML, without having to prematurely adopt a particular process *Provides detailed examples, enabling readers to make informed decisions when modeling across the system development life cycle *Demonstrates how UML elements are related and how the UML supports traceability and scales for the life cycle process *Clear, well-developed diagrams simplify learning and applying core concepts and techniques With its focused, yet highly accessible approach, this guide strikes an integrated balance between UML rules and practices. It is an authoritative and comprehensive reference for software practitioners and professionals involved in the design, development, and management of UML-related software projects. About the author: Sinan Si Alhir is a highly respected consultant and has extensive information systems/technology experience, and breadth and depth in all phases of the system development life cycle. With experience in both high- and low-level project work, and broad and deep knowledge of technology and methodology, he endeavors to deliver quality solution-oriented results within various application domains using a multitude of technologies and approaches. He specializes in object-orientation, methodology/process, the Unified Modeling Language (UML), and various other disciplines and subjects, and focuses on empowering organizations to benefit from their application.
This edited book presents scientific results of the 14th International Conference on Software Engineering, Artificial Intelligence Research, Management and Applications (SERA 2016) held on June 8-10, 2016 at Towson University, USA. The aim of this conference was to bring together researchers and scientists, businessmen and entrepreneurs, teachers, engineers, computer users, and students to discuss the numerous fields of computer science and to share their experiences and exchange new ideas and information in a meaningful way. Research results about all aspects (theory, applications and tools) of computer and information science, and to discuss the practical challenges encountered along the way and the solutions adopted to solve them. The conference organizers selected the best papers from those papers accepted for presentation at the conference. The papers were chosen based on review scores submitted by members of the program committee, and underwent further rigorous rounds of review. This publication captures 13 of the conference's most promising papers, and we impatiently await the important contributions that we know these authors will bring to the field of computer and information science.
This classroom-tested and clearly-written textbook presents a focused guide to the conceptual foundations of compilation, explaining the fundamental principles and algorithms used for defining the syntax of languages, and for implementing simple translators. This significantly updated and expanded third edition has been enhanced with additional coverage of regular expressions, visibly pushdown languages, bottom-up and top-down deterministic parsing algorithms, and new grammar models. Topics and features: describes the principles and methods used in designing syntax-directed applications such as parsing and regular expression matching; covers translations, semantic functions (attribute grammars), and static program analysis by data flow equations; introduces an efficient method for string matching and parsing suitable for ambiguous regular expressions (NEW); presents a focus on extended BNF grammars with their general parser and with LR(1) and LL(1) parsers (NEW); introduces a parallel parsing algorithm that exploits multiple processing threads to speed up syntax analysis of large files; discusses recent formal models of input-driven automata and languages (NEW); includes extensive use of theoretical models of automata, transducers and formal grammars, and describes all algorithms in pseudocode; contains numerous illustrative examples, and supplies a large set of exercises with solutions at an associated website. Advanced undergraduate and graduate students of computer science will find this reader-friendly textbook to be an invaluable guide to the essential concepts of syntax-directed compilation. The fundamental paradigms of language structures are elegantly explained in terms of the underlying theory, without requiring the use of software tools or knowledge of implementation, and through algorithms simple enough to be practiced by paper and pencil.
The Rust programming language is consistent and does its best to avoid surprising the programmer. Like all languages, though, Rust still has its quirks. But these quirks present a teaching opportunity. In this book, you'll work through a series of brain teasers that will challenge your understanding of Rust. By understanding the gaps in your knowledge, you can become better at what you do and avoid mistakes. Many of the teasers in this book come from the author's own experience creating software. Others derive from commonly asked questions in the Rust community. Regardless of their origin, these brain teasers are fun, and let's face it: who doesn't love a good puzzle, right? What better way to exercise your brain and increase your Rust programming knowledge than with a collection of dynamic brain teasers? As you read through each of these puzzles and try to work out the answers, you'll not only learn about Rust's unique quirks and peculiarities, you'll also have loads of fun along the way. Dive right in and get started with example code and sample problems that cover numbers and text, shadowing and memory, and everything in between. Try to figure out why a particular program won't compile, why it produces unexpected output, or why it panics and terminates with an error message. Once you've run the code and read the answer, it's time to get to the heart of the matter with a detailed explanation. Learn why a program produced the result it did, and discover how similar issues might affect the code you write in your own programs, even in production. Sourced from engaging discussions within the Rust community, real-world problems, and even reader feedback, these challenges will certainly surprise, enlighten, and entertain you. Are you ready to experience Rust like never before? Then sharpen your brain and get ready for a challenge! What You Need: This book assumes you have some knowledge of the Rust programming language. To work through the brain teasers in this book, you'll need a working Rust environment on any platform. You can install Rust by visiting https: //rustup.rs/. You'll also need a text editor or Rust-friendly IDE.
Learning Java Through Games teaches students how to use the different features of the Java language as well as how to program. Suitable for self-study or as part of a two-course introduction to programming, the book covers as much material as possible from the latest Java standard while requiring no previous programming experience. Taking an application-motivated approach, the text presents an abundance of games. Students must read through the whole chapter to understand all the features that are needed to implement the game. Most chapters start with a description of a game and then introduce different Java constructs for implementing the features of the game on need-to-use bases. The text teaches students not only how to write code that works but also how to follow good software practices. All sample programs in the text strive to achieve low cohesion and high coupling-the hallmarks of well-designed code. Many programs are refactored multiple times to achieve code that is easy to understand, reuse, and maintain. The first part of the book covers basic programming techniques, such as conditional statements, loops, methods, arrays, and classes. The second part focuses on more advanced topics, including class inheritance, recursions, sorting algorithms, GUI programming, exception handling, files, and applets.
In the past few decades Computer Hardware Description Languages (CHDLs) have been a rapidly expanding subject area due to a number of factors, including the advancing complexity of digital electronics, the increasing prevalence of generic and programmable components of software-hardware and the migration of VLSI design to high level synthesis based on HDLs. Currently the subject has reached the consolidation phase in which languages and standards are being increasingly used, at the same time as the scope is being broadened to additional application areas. This book presents the latest developments in this area and provides a forum from which readers can learn from the past and look forward to what the future holds.
Groovy Programming is an introduction to the Java-based scripting
language Groovy. Groovy has much in common with popular scripting
languages such as Perl, Python, and Ruby, but is written in a
Java-like syntax. And, unlike these other languages, Groovy is
sanctioned by the Java community for use on the Java platform.
Since it is based on Java, applications written in Groovy can make
full use of the Java Application Programmer Interfaces (APIs). This
means Groovy can integrate seamlessly with applications written in
Java, while avoiding the complexities of the full Java language.
This bare-bones structure also means Groovy can be used as an
introduction to Java and to programming in general. Its simpler
constructions and modern origins make it ideal as a first language
and for introducing principles such as object-oriented
programming.
Write Powerful, Modern C++ Code for Scientific, Engineering, and Embedded Applications Discovering Modern C++, Second Edition, will help you master valuable skills for programming with C++ at nearly every level, from "close to the hardware" to high-level abstractions. Updated for C++17 and C++ 20, this intensive introduction teaches C++ using realistic examples from diverse technical problem domains. Drawing on extensive experience teaching C++ to physicists, mathematicians, engineers, and students, Peter Gottschling guides you smoothly to sophisticated approaches based on advanced features. Whatever your programming experience, you'll rapidly master increasingly powerful features, from lambdas to expression and variadic templates. Gottschling also shows you how to apply C++'s libraries: both the Standard Template Library (STL) and scientific libraries for arithmetic, linear algebra, differential equations, and graphs. Step by step, you'll learn to write clear and expressive code using object orientation, generics, metaprogramming, and procedural techniques, and master all the abstractions you need to write high-quality, well-performing software. Quickly master core features: variables, operators, expressions, statements, functions, error handling, I/O, arrays, pointers, references, and more Make the most of classes and object-oriented programming, from constructors/destructors to operator overloading and multiple inheritance Apply advanced generic programming and template-based techniques Use C++'s libraries to write more robust and powerful code more quickly Explore metaprogramming in depth, and master cutting-edge optimization techniques Walk through representative scientific projects, and create your own Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
This book is about describing the meaning of programming languages. The author teaches the skill of writing semantic descriptions as an efficient way to understand the features of a language. While a compiler or an interpreter offers a form of formal description of a language, it is not something that can be used as a basis for reasoning about that language nor can it serve as a definition of a programming language itself since this must allow a range of implementations. By writing a formal semantics of a language a designer can yield a far shorter description and tease out, analyse and record design choices. Early in the book the author introduces a simple notation, a meta-language, used to record descriptions of the semantics of languages. In a practical approach, he considers dozens of issues that arise in current programming languages and the key techniques that must be mastered in order to write the required formal semantic descriptions. The book concludes with a discussion of the eight key challenges: delimiting a language (concrete representation), delimiting the abstract content of a language, recording semantics (deterministic languages), operational semantics (non-determinism), context dependency, modelling sharing, modelling concurrency, and modelling exits. The content is class-tested and suitable for final-year undergraduate and postgraduate courses. It is also suitable for any designer who wants to understand languages at a deep level. Most chapters offer projects, some of these quite advanced exercises that ask for complete descriptions of languages, and the book is supported throughout with pointers to further reading and resources. As a prerequisite the reader should know at least one imperative high-level language and have some knowledge of discrete mathematics notation for logic and set theory.
Formal Languages and Applications provides a comprehensive study-aid and self-tutorial for graduates students and researchers. The main results and techniques are presented in an readily accessible manner and accompanied by many references and directions for further research. This carefully edited monograph is intended to be the gateway to formal language theory and its applications, so it is very useful as a review and reference source of information in formal language theory.
Learn how to combine different technologies to create sophisticated, database-driven Web sites This text allows readers to gain the core programming knowledge needed to build a database-driven Web site using a step-by-step approach. Each stage of Web site development is carefully explained, from installation to production of the site. The book, based on a course developed by the author, features a carefully constructed organization that shows readers how to begin creating Web pages, and then incrementally add greater functionality as they progress through the text. A key strength of this book is its use of multiple programming languages and applications. By selecting among the best options from HTML, JavaScript, MySQL, PHP, Apache, and Linux/UNIX, readers learn to develop Web sites that are specifically tailored to meet their needs. Brief chapters, each focusing on one core theme, are designed to allow readers to learn at their own pace. Among the key chapters is one dedicated to teaching how to install a Web server with all the required modules to run the scripts presented in the book. Examples are used extensively throughout, illustrating key concepts and techniques Author draws from his own extensive experience to offer expert tips and point out pitfalls to avoid Exercises help readers put their knowledge into practice The examples, as well as sample solutions to the exercises, are posted online to give readers more opportunity to work with the scripts With its step-by-step approach, this book is ideally suited for anyone who wants to learn how to create complete Web sites. No previous knowledge of any programming language is needed. For experienced Web designers, thebook will bring their programming skills to a higher level by enabling them to create dynamic pages linked to a database.
This fourth Edition presents new examples on submodules, derived type i/o, object oriented programming, abstract interfaces and procedure pointers, C interop, sorting and searching, statistics and converting to more modern versions of Fortran. Key Features Highlights the core language features of modern Fortran including data typing, array processing, control structures, functions, subroutines, modules and submodules, user defined types, pointers, operator overloading, generic programming, parallel programming, abstract interfaces, procedure pointers Pinpoints common problems that occur when programming Illustrates the use of several compilers Introduction to Programming with Fortran has been written for the complete beginner with little or no programming background as well as existing Fortran programmers and those with programming experience in other languages
This book presents comprehensive studies on nine specification languages and their logics of reasoning. The editors and authors are authorities on these specification languages and their application. In a unique feature, the book closes with short commentaries on the specification languages written by researchers closely associated with their original development. The book contains extensive references and pointers to future developments.
Debugging by Thinking: A Multi-Disciplinary Approach is the first
book to apply the wisdom of six disciplines logic, mathematics,
psychology, safety analysis, computer science, and engineering to
the problem of debugging. It uses the methods of literary
detectives such as Sherlock Holmes, the techniques of mathematical
problem solving, the results of research into the cognitive
psychology of human error, the root cause analyses of safety
experts, the compiler analyses of computer science, and the
processes of modern engineering to define a systematic approach to
identifying and correcting software errors.
This book contains 25 short programs that will challenge your understanding of Pandas. Like any big project, the Pandas developers had to make some design decisions that at times seem surprising. This book uses those quirks as a teaching opportunity. By understanding the gaps in your knowledge, you'll become better at what you do. Some of the teasers are from the author's experience shipping bugs to production, and some from others doing the same. Teasers and puzzles are fun, and learning how to solve them can teach you to avoid programming mistakes and maybe even impress your colleagues and future employers. Working with data is central to nearly everything we do, from disease contact tracing and analyzing health records to smart meters that track utility consumption behavior. With the power of Python's pandas library, you can process and analyze this data in a highly efficient and simple-to-understand way. And with 25 brain teasers designed to turn this technology's quirks into a teaching opportunity, you'll be honing your data science skills while having fun at the same time. Following a simple format, you'll challenge yourself and your understanding of pandas. Read a short Python program that uses pandas, try to guess the output, run the code yourself, and then go to the next page for an explanation of the solution. From common pitfalls and hidden gotchas to unexpected twists and turns, you'll deepen your understanding of pandas, learn to write more efficient code, and reduce the number of bugs in the software you develop. You may even impress your colleagues and your employers, both present and future. Learn the tricks of the trade with Python's pandas, in one of the most fun and creative ways around. What You Need: To run the code you'll need Python version 3.8 or upper and Pandas version 1.0 or upper installed. We use Python version 3.8.3 and Pandas version 1.0.5; the output might change in future versions.
This easy-to-understand textbook presents a modern approach to learning numerical methods (or scientific computing), with a unique focus on the modeling and applications of the mathematical content. Emphasis is placed on the need for, and methods of, scientific computing for a range of different types of problems, supplying the evidence and justification to motivate the reader. Practical guidance on coding the methods is also provided, through simple-to-follow examples using Python. Topics and features: provides an accessible and applications-oriented approach, supported by working Python code for many of the methods; encourages both problem- and project-based learning through extensive examples, exercises, and projects drawn from practical applications; introduces the main concepts in modeling, python programming, number representation, and errors; explains the essential details of numerical calculus, linear, and nonlinear equations, including the multivariable Newton method; discusses interpolation and the numerical solution of differential equations, covering polynomial interpolation, splines, and the Euler, Runge-Kutta, and shooting methods; presents largely self-contained chapters, arranged in a logical order suitable for an introductory course on scientific computing. Undergraduate students embarking on a first course on numerical methods or scientific computing will find this textbook to be an invaluable guide to the field, and to the application of these methods across such varied disciplines as computer science, engineering, mathematics, economics, the physical sciences, and social science.
This book introduces Python scripting for geographic information science (GIS) workflow optimization using ArcGIS. It builds essential programming skills for automating GIS analysis. Over 200 sample Python scripts and 175 classroom-tested exercises reinforce the learning objectives. Readers will learn to: * Write and run Python in the ArcGIS Python Window, the PythonWin IDE, and the PyScripter IDE * Work with Python syntax and data types * Call ArcToolbox tools, batch process GIS datasets, and manipulate map documents using the arcpy package * Read and modify proprietary and ASCII text GIS data * Parse HTML web pages and KML datasets * Create Web pages and fetch GIS data from Web sources. * Build user-interfaces with the native Python file dialog toolkit or the ArcGIS Script tools and PyToolboxes Python for ArcGIS is designed as a primary textbook for advanced-level students in GIS. Researchers, government specialists and professionals working in GIS will also find this book useful as a reference.
Driven by concrete computational problems in quantitative finance, this book provides aspiring quant developers with the numerical techniques and programming skills they need. The authors start from scratch, so the reader does not need any previous experience of C++. Beginning with straightforward option pricing on binomial trees, the book gradually progresses towards more advanced topics, including nonlinear solvers, Monte Carlo techniques for path-dependent derivative securities, finite difference methods for partial differential equations, and American option pricing by solving a linear complementarity problem. Further material, including solutions to all exercises and C++ code, is available online. The book is ideal preparation for work as an entry-level quant programmer and it gives readers the confidence to progress to more advanced skill sets involving C++ design patterns as applied in finance.
Your research has generated gigabytes of data and now you need to analyse it. You hate using spreadsheets but it is all you know, so what else can you do? This book will transform how you work with large and complex data sets, teaching you powerful programming tools for slicing and dicing data to suit your needs. Written in a fun and accessible style, this step-by-step guide will inspire and inform non-programmers about the essential aspects of Unix and Perl. It shows how, with just a little programming knowledge, you can write programs that could save you hours, or even days. No prior experience is required and new concepts are introduced using numerous code examples that you can try out for yourself. Going beyond the basics, the authors touch upon many broader topics that will help those new to programming, including debugging and how to write in a good programming style.
In ancient games such as chess or go, the most brilliant players can improve by studying the strategies produced by a machine. Robotic systems practice their own movements. In arcade games, agents capable of learning reach superhuman levels within a few hours. How do these spectacular reinforcement learning algorithms work? With easy-to-understand explanations and clear examples in Java and Greenfoot, you can acquire the principles of reinforcement learning and apply them in your own intelligent agents. Greenfoot (M.Koelling, King's College London) and the hamster model (D. Bohles, University of Oldenburg) are simple but also powerful didactic tools that were developed to convey basic programming concepts. The result is an accessible introduction into machine learning that concentrates on reinforcement learning. Taking the reader through the steps of developing intelligent agents, from the very basics to advanced aspects, touching on a variety of machine learning algorithms along the way, one is allowed to play along, experiment, and add their own ideas and experiments.
Why learn functional programming? Isn't that some complicated ivory-tower technique used only in obscure languages like Haskell? In fact, functional programming is actually very simple. It's also very powerful, as Haskell demonstrates by throwing away all the conventional programming tools and using only functional programming features. But it doesn't have to be done that way. Functional programming is a power tool that you can use in addition to all your usual tools, to whatever extent your current mainstream language supports it. Most languages have at least basic support. In this book we use Python and Java and, as a bonus, Scala. If you prefer another language, there will be minor differences in syntax, but the concepts are the same. Give functional programming a try. You may be surprised how much a single power tool can help you in your day-to-day programming.
From the descriptive styles which mirror 19th Century Romanticism to the bold starkness of contemporary dialects, these stories offer myriad insights into the many facets of the masculine soul. These are not cat stories. Well.actually there is one. But for the most part this is a collection of first person narratives in short fiction which are certain to leave the reader begging to dialogue with every page. As with his powerful and imaginative science fiction novels, "The Last Champion of Earth" and "The Planet of Mortal Worship," Donald Templeman entertains, stuns and unveils lurid insights into the human condition with every keystroke. 'Author Templeman is a skilled writer and accomplished storyteller"-WRITER'S DIGEST 12TH ANNUAL BOOK AWARDS |
You may like...
Teenagers, Sexual Health Information and…
Kerry Mckellar, Elizabeth Sillence
Paperback
R2,049
Discovery Miles 20 490
A Workbook of Ethical Case Scenarios in…
Darren Sush, Adel Najdowski
Paperback
R1,250
Discovery Miles 12 500
Trauma-Informed Social-Emotional Toolbox…
Laura Sibbald, Lisa Weed Phifer
Paperback
Trauma Counselling - Principles And…
Alida Herbst, Gerda Reitsma
Paperback
|