![]() |
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 Distinguished Dissertation series is published on behalf of the Conference of Professors and Heads of Computing and The British Computer Society, who annually select the best British PhD dissertations in computer science for publication. The dissertations are selected on behalf of the CPHC by a panel of eight academics. Each dissertation chosen makes a noteworthy contribution to the subject and reaches a high standard of exposition, placing all results clearly in the context of computer science as a whole. In this way computer scientists with significantly different interests are able to grasp the essentials - or even find a means of entry - to an unfamiliar research topic. This book develops a theory of game semantics, a recently discovered setting for modelling and reasoning about sequential programming languages, suitable for interpreting higher-order functional languages with rich type structure, and applies it to constr uct a fully abstract model of the metalanguage FPC.
"Kent is a master at creating code that communicates well, is easy to understand, and is a pleasure to read. Every chapter of this book contains excellent explanations and insights into the smaller but important decisions we continuously have to make when creating quality code and classes." -Erich Gamma, IBM Distinguished Engineer "Many teams have a master developer who makes a rapid stream of good decisions all day long. Their code is easy to understand, quick to modify, and feels safe and comfortable to work with. If you ask how they thought to write something the way they did, they always have a good reason. This book will help you become the master developer on your team. The breadth and depth of topics will engage veteran programmers, who will pick up new tricks and improve on old habits, while the clarity makes it accessible to even novice developers." -Russ Rufer, Silicon Valley Patterns Group "Many people don't realize how readable code can be and how valuable that readability is. Kent has taught me so much, I'm glad this book gives everyone the chance to learn from him." -Martin Fowler, chief scientist, ThoughtWorks "Code should be worth reading, not just by the compiler, but by humans. Kent Beck distilled his experience into a cohesive collection of implementation patterns. These nuggets of advice will make your code truly worth reading." -Gregor Hohpe, author of Enterprise Integration Patterns "In this book Kent Beck shows how writing clear and readable code follows from the application of simple principles. Implementation Patterns will help developers write intention revealing code that is both easy to understand and flexible towards future extensions. A must read for developers who are serious about their code." -Sven Gorts "Implementation Patterns bridges the gap between design and coding. Beck introduces a new way of thinking about programming by basing his discussion on values and principles." -Diomidis Spinellis, author of Code Reading and Code Quality Software Expert Kent Beck Presents a Catalog of Patterns Infinitely Useful for Everyday Programming Great code doesn't just function: it clearly and consistently communicates your intentions, allowing other programmers to understand your code, rely on it, and modify it with confidence. But great code doesn't just happen. It is the outcome of hundreds of small but critical decisions programmers make every single day. Now, legendary software innovator Kent Beck-known worldwide for creating Extreme Programming and pioneering software patterns and test-driven development-focuses on these critical decisions, unearthing powerful "implementation patterns" for writing programs that are simpler, clearer, better organized, and more cost effective. Beck collects 77 patterns for handling everyday programming tasks and writing more readable code. This new collection of patterns addresses many aspects of development, including class, state, behavior, method, collections, frameworks, and more. He uses diagrams, stories, examples, and essays to engage the reader as he illuminates the patterns. You'll find proven solutions for handling everything from naming variables to checking exceptions. This book covers The value of communicating through code and the philosophy behind patterns How and when to create classes, and how classes encode logic Best practices for storing and retrieving state Behavior: patterns for representing logic, including alternative paths Writing, naming, and decomposing methods Choosing and using collections Implementation pattern variations for use in building frameworks Implementation Patterns will help programmers at all experience levels, especially those who have benefited from software patterns or agile methods. It will also be an indispensable resource for development teams seeking to work together more efficiently and build more maintainable software. No other programming book will touch your day-to-day work more often.
Helps you use the industry's most popular RTOS/processor combination to develop embedded applications that are small, fast, reliable, and deterministic. Beginning with a discussion of embedded and real-time concepts and terminology, this book uses a specific demon.
Give users the real-time experience they expect, by using Elixir and Phoenix Channels to build applications that instantly react to changes and reflect the application's true state. Learn how Elixir and Phoenix make it easy and enjoyable to create real-time applications that scale to a large number of users. Apply system design and development best practices to create applications that are easy to maintain. Gain confidence by learning how to break your applications before your users do. Deploy applications with minimized resource use and maximized performance. Real-time applications come with real challenges - persistent connections, multi-server deployment, and strict performance requirements are just a few. Don't try to solve these challenges by yourself - use a framework that handles them for you. Elixir and Phoenix Channels provide a solid foundation on which to build stable and scalable real-time applications. Build applications that thrive for years to come with the best-practices found in this book. Understand the magic of real-time communication by inspecting the WebSocket protocol in action. Avoid performance pitfalls early in the development lifecycle with a catalog of common problems and their solutions. Leverage GenStage to build a data pipeline that improves scalability. Break your application before your users do and confidently deploy them. Build a real-world project using solid application design and testing practices that help make future changes a breeze. Create distributed apps that can scale to many users with tools like Phoenix Tracker. Deploy and monitor your application with confidence and reduce outages. Deliver an exceptional real-time experience to your users, with easy maintenance, reduced operational costs, and maximized performance, using Elixir and Phoenix Channels. What You Need: You'll need Elixir 1.9+ and Erlang/OTP 22+ installed on a Mac OS X, Linux, or Windows machine.
Client-Centered Software Development: The CO-FOSS Approach introduces a method to creating a customized software product for a single client, either from scratch or by reusing open source components. The clients are typically non-profit humanitarian, educational, or public service organizations. This approach has been used in undergraduate courses where students learn the principles of software development while implementing a real-world software product. This book provides instructors, students, clients, and professional software developers with detailed guidance for developing a new CO-FOSS product from conceptualization to completion. Features Provides instructors, students, clients, and professional software developers with a roadmap for the development of a new CO-FOSS product from conceptualization to completion Motivates students with real-world projects and community service experiences Teaches all elements of the software process, including requirements gathering, design, collaboration, coding, testing, client communication, refactoring, and writing developer and user documentation Uses source code that can be reused and refitted to suit the needs of future projects, since each CO-FOSS product is free and open source software Provides links to a rich variety of resources for instructors and students to freely use in their own courses that develop new CO-FOSS products for other non-profits.
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.
Like the best-selling first two editions, A Handbook of Statistical Analyses using R, Third Edition provides an up-to-date guide to data analysis using the R system for statistical computing. The book explains how to conduct a range of statistical analyses, from simple inference to recursive partitioning to cluster analysis. New to the Third Edition Three new chapters on quantile regression, missing values, and Bayesian inference Extra material in the logistic regression chapter that describes a regression model for ordered categorical response variables Additional exercises More detailed explanations of R code New section in each chapter summarizing the results of the analyses Updated version of the HSAUR package (HSAUR3), which includes some slides that can be used in introductory statistics courses Whether you're a data analyst, scientist, or student, this handbook shows you how to easily use R to effectively evaluate your data. With numerous real-world examples, it emphasizes the practical application and interpretation of results.
This easy-to-use, classroom-tested textbook covers the C programming language for computer science and IT students. Designed for a compulsory fundamental course, it presents the theory and principles of C. More than 500 exercises and examples of progressive difficulty aid students in understanding all the aspects and peculiarities of the C language. The exercises test students on various levels of programming and the examples enhance their concrete understanding of programming know-how. Instructor's manual and PowerPoint slides are available upon qualifying course adoption
Classroom-tested by tens of thousands of students, this new edition of the bestselling intro to programming book is for anyone who wants to understand computer science. Learn about design, algorithms, testing, and debugging. Discover the fundamentals of programming with Python 3.6--a language that's used in millions of devices. Write programs to solve real-world problems, and come away with everything you need to produce quality code. This edition has been updated to use the new language features in Python 3.6. No programming experience required! Incremental examples show you the steps and missteps that happen while developing programs, so you know what to expect when you tackle a problem on your own. Inspired by "How to Design Programs" (HtDP), discover a five-step recipe for designing functions, which helps you learn the concepts--and becomes an integral part of writing programs. In this detailed introduction to Python and to computer programming, find out exactly what happens when your programs are executed. Work with numbers, text, big data sets, and files using real-world examples. Create and use your own data types. Make your programs reliable, work with databases, download data from the web automatically, and build user interfaces. As you use the fundamental programming tools in this book, you'll see how to document and organize your code so that you and other programmers can more easily read and understand it. This new edition takes advantage of Python 3.6's new features, including type annotations on parameters, return types and variable declarations, and changes to string formatting. Most importantly, you'll learn how to think like a professional programmer. What You Need: You'll need to download Python 3.6, available from https://python.org. With that download comes IDLE, the editor we use for writing and running Python programs. (If you use Linux, you may need to install Python 3.6 and IDLE separately.)
Advance Praise for Partnering with Microsoft: 'Partnering with Microsoft is the first great book about the breathtaking culture, opportunity and roadmap for joining Microsoft's 850,000 partners cutting an impressive B swath in the marketpl
Solve real-life programming problems with a fraction of the code that pure object-oriented programming requires. Use Scala and Clojure to solve in-depth problems with two sets of patterns: object-oriented patterns that become more concise with functional programming, and natively functional patterns. Your code will be more declarative, with fewer bugs and lower maintenance costs. Functional languages have their own patterns that enable you to solve problems with less code than object-oriented programming alone. This book introduces you, the experienced Java programmer, to Scala and Clojure: practical, production-quality languages that run on the JVM and interoperate with existing Java. By using both the statically typed, type-inferred Scala and the dynamically typed, modern Lisp Clojure, you'll gain a broad understanding of functional programming. For each pattern, you'll first see the traditional object-oriented solution, and then dig into the functional replacements in both Scala and Clojure. These patterns are common in the functional world and deserve to become part of your problem-solving toolkit. On the object-oriented side, you'll see many common patterns, such as Command, Strategy, and Null Object. On the functional side, you'll learn core functional patterns such as Memoization, Lazy Sequence, and Tail Recursion. Each pattern helps you solve a common programming problem. Working through them gives you a set of patterns you can use to solve problems you come across while writing programs. Finally, you'll learn how to work your existing Java code into new Scala or Clojure projects. You can start off small, adding functional code little by little, so you can complement your existing knowledge with Scala and Clojure as these languages gain popularity on the JVM.
This book explains how to use the symbolic differentiation system D* for applications in computer games and engineering simulation. The authors describe how to create procedural 3D geometric models, link them together to form multibody physical systems, and simulate and display their physical behavior in real time. The symbolic differentiation capabilities of D* can be used in a wide variety of technical applications, including computer graphics, engineering, and mechanical simulation. Two Lagrangian physics simulation and procedural 3D geometric modeling are developed in great detail.
Written in an informal yet informative style, Programming Language Fundamentals by Example uses active learning techniques, giving students a professional learning experience based on professional methods applied with professional standards. It provides an understanding of the many languages and notations used in computer science, the formal models used to design phases, and the foundations of languages including linguistics and logic. To give students a thorough, working knowledge of programming languages, this textbook uses a semester-long project in which students create a programming language. This project brings to life the concepts and theories fundamental to computer languages. The author incorporates "thinking tools" such as concept maps, matrices for analysis, and flowcharts. Designed for fourth year undergraduates and first year graduates with enough exposure to programming to absorb the technical foundations of languages, this textbook offers a unique approach to understanding how programming languages are created and function.
For courses in computer programming. Evaluates the fundamentals of contemporary computer programming languages Concepts of Computer Programming Languages introduces students to the fundamental concepts of computer programming languages and provides them with the tools necessary to evaluate contemporary and future languages. Through a critical analysis of design issues, the text teaches students the essential differences between computing with specific languages, while the in-depth discussion of programming language structures also prepares them to study compiler design. The 12th Edition includes new material on contemporary languages like Swift and Python, replacing discussions of outdated languages.
An open process of restandardization, conducted by the IEEE, has led to the definitions of the new VHDL standard. The changes make VHDL safer, more portable, and more powerful. VHDL also becomes bigger and more complete. The canonical simulator of VHDL is enriched by new mechanisms, the predefined environment is more complete, and the syntax is more regular and flexible. Discrepancies and known bugs of VHDL'87 have been fixed. However, the new VHDL'92 is compatible with VHDL'87, with some minor exceptions. This book presents the new VHDL'92 for the VHDL designer. New features are explained and classified. Examples are provided, each new feature is given a rationale and its impact on design methodology, and performance is analyzed. Where appropriate, pitfalls and traps are explained. The VHDL designer should quickly be able to find the feature needed to evaluate the benefits it brings, to modify previous VHDL'87 code to make it more efficient, more portable, and more flexible. This text should be a useful update for all VHDL designers and managers involved in electronic design.
A complete guide for the developer or student, this text provides an overview of general concepts and terminology, investigates the salient features of the reference processor, thoroughly explores the services and features of the reference RTOS, and culminates with a major case study. Perfect for embedded systems programmers, software engineers, electrical engineers, or firmware engineers with a programming background in C or C++.
Software "style" is about finding the perfect balance between
overhead and functionality... elegance and maintainability...
flexibility and excess. In "Exceptional C++ Style," legendary C++
guru Herb Sutter presents 40 new programming scenarios designed to
analyze not only the what but the why and help you find just the
right balance in your software. Organized around practical problems
and solutions, this book offers new insight into crucial C++
details and interrelationships, and new strategies for today's key
C++ programming techniques--including generic programming, STL,
exception safety, and more. You'll find answers to questions like:
What can you learn about library design from the STL itself?How do
you avoid making templated code needlessly non-generic?Why
shouldn't you specialize function templates? What should you do
instead? How does exception safety go beyond try and catch
statements?Should you use exception specifications, or not? When
and how should you "leak" the private parts of a class?How do you
make classes safer for versioning? What's the real memory cost of
using standard containers?How can using const really optimize your
code?How does writing inline affect performance? When does code
that looks wrong actually compile and run perfectly, and why should
you care?What's wrong with the design of std:: string? "Exceptional
C++ Style" will help you design, architect, and code with
style--and achieve greater robustness and performance in all your
C++ software.
Humans learn best from feedback-we are encouraged to take actions that lead to positive results while deterred by decisions with negative consequences. This reinforcement process can be applied to computer programs allowing them to solve more complex problems that classical programming cannot. Deep Reinforcement Learning in Action teaches you the fundamental concepts and terminology of deep reinforcement learning, along with the practical skills and techniques you'll need to implement it into your own projects. Key features * Structuring problems as Markov Decision Processes * Popular algorithms such Deep Q-Networks, Policy Gradient method and Evolutionary Algorithms and the intuitions that drive them * Applying reinforcement learning algorithms to real-world problems Audience You'll need intermediate Python skills and a basic understanding of deep learning. About the technology Deep reinforcement learning is a form of machine learning in which AI agents learn optimal behavior from their own raw sensory input. The system perceives the environment, interprets the results of its past decisions, and uses this information to optimize its behavior for maximum long-term return. Deep reinforcement learning famously contributed to the success of AlphaGo but that's not all it can do! Alexander Zai is a Machine Learning Engineer at Amazon AI working on MXNet that powers a suite of AWS machine learning products. Brandon Brown is a Machine Learning and Data Analysis blogger at outlace.com committed to providing clear teaching on difficult topics for newcomers.
The authoritative resource to writing clear and idiomatic Go to solve real-world problems Google's Go team member Alan A. A. Donovan and Brian Kernighan, co-author of The C Programming Language, provide hundreds of interesting and practical examples of well-written Go code to help programmers learn this flexible, and fast, language. It is designed to get you started programming with Go right away and then to progress on to more advanced topics. Basic components: an opening tutorial provides information and examples to get you off the ground and doing useful things as quickly as possible. This includes: command-line arguments gifs URLs web servers Program structure: simple examples cover the basic structural elements of a Go program without getting sidetracked by complicated algorithms or data structures. Data types: Go offers a variety of ways to organize data, with a spectrum of data types that at one end match the features of the hardware and at the other end provide what programmers need to conveniently represent complicated data structures. Composite types: arrays slices maps structs JSON test and HTML templates Functions: break a big job into smaller pieces that might well be written by different people separated by both time and space. Methods: declarations with a pointer receiver struct embedding values and expressions Interfaces: write functions that are more flexible and adaptable because they are not tied to the details of one particular implementation. Concurrent programming: Goroutines, channels, and with shared variables. Packages: use existing packages and create new ones. Automated testing: write small programs that check the code. Reflection features: update variables and inspect their values at run time. Low-level programming: step outside the usual rules to achieve the highest possible performance, interoperate with libraries written in other languages, or implement a function that cannot be expressed in pure Go. Each chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download and may be conveniently fetched, built, and installed using the go get command.
An invaluable companion to the author's best selling CNC Programming Handbook, this book is a general introduction to the subject of macros (known as Custom Macros or User Macros). Its purpose is to make you aware of what macros are, how to develop them, and how to use them effectively. It also explores important related subjects and identifies several other helpful topics in this increasingly important and exciting field of CNC programming. Offers many practical do's and don'ts while covering all the popular Fanuc control systems exclusively. Provides the basis for exploring in great depth the extremely wide and rich field of programming tools that macros are. Numerous examples and sample programs are used throughout that serve as practical applications of the techniques presented and as the basis of ready-to-run macro programs. Includes a CD containing all of the sample programs.
Appropriate for all courses in Tcl/Tk scripting, and many courses in Unix shell scripting. Practical Programming in Tcl/Tk, Fourth Edition is the definitive guide to Tcl/Tk programming for developers at all levels—including experienced Perl and Python programmers who want to use Tk to build high-quality, cross-platform user interfaces. Thoroughly updated for Tcl/Tk 8.4, this book brings together comprehensive, authoritative coverage of every Tcl and Tk command in the core toolkits, along with detailed examples that demonstrate the best ways to use the Tcl/Tk toolkit. Extensive new Tcl/Tk 8.4 coverage includes: the Tcl/Tk virtual filesystem (VFS); spinbox, panedwindow, labelframe, and other new widgets; and improved internationalization support. The book includes an exceptionally clear introduction to the unique Tcl programming model, as well as practical coverage of cross-platform development for Unix, Windows, and Macintosh; Web application development with the TclHttpd web server; and much more. The accompanying CD-ROM contains all sample code from the book, as well as the latest binary distributions of Tcl/Tk, Tcl extensions, and an extensive collection of Tcl/Tk freeware.
For freshman/sophomore-level courses in Assembly Language Programming, Introduction to Computer Organization, and Introduction to Computer Architecture. Students using this text will gain an understanding of how the functional components of modern computers are put together and how a computer works at the machine language level. MIPS architecture embodies the fundamental design principles of all contemporary RISC architectures. By incorporating this text into their courses, instructors will be able to prepare their undergraduate students to go on to upper-division computer organization courses.
Packed with C++ code examples and screen shots, .NET Programming with Visual C++ explains the .NET framework and managed extensions to C++, and provides a complete reference to the basic and advanced types contained in .NET Framework System namesp
An introduction to advanced C++, specialized for scientific programmers C++ Scientific Programming teaches the design of programs for scientific computation in C++. It introduces unique C++ classes for vectors, dense matrices, and sparse matrices, and defines the particular relationships among these classes. It then demonstrates how to use these fundamental classes in a dozen of the most powerful current applications. The author limits the scope of the book to features that are specifically useful to scientific programmers. He presents a set of practices that allows programmers to embrace the attractive features of C++ without incurring undesired side effects and hidden costs. He illustrates these practices by implementing major contemporary numerical methods and providing examples for execution with a C++ compiler. A collection of source code files correlated with the content of the book can be downloaded from the Wiley ftp site. C++ Scientific Programming shows how C++ improves on both FORTRAN and C and affords greater convenience and efficiency in coding mathematics. It serves as a vital companion to more general C++ texts and treats the unique needs of scientific programmers.
One of the attractive aspects of C++ is that it offers good facilities for object-oriented programming (OOP), but, as a hybrid language, it also supports procedural programming. The significance of this for programmers is that it offers more flexibility allowing them to shift to object-oriented programming if and when they feel the need to do so. In this regard, C++ differs from some purely object-oriented languages, such as Smalltalk, Eiffel and Java. This book offers practical guidance on how to programme in both styles. The C++ language and its standard library have gone through a good many improvements and extensions during their evolution. This third edition has therefore been completely revised in accordance with the C++ language revision, which is embodied in the ANSI/ISO C++ Standard. For example, the new, important type string is used throughout the book and the Standard Template Library (STL) is introduced to readers at an early stage and discussed in more detail later on. All example programs and the solutions to the exercises can be downloaded from the website. http://home.wxs.nl/ ~ammeraal/ Solutions for some of these exercises can be found in the appendix. |
You may like...
Web Portal Design, Implementation…
Jana Polgar, Greg Adamson
Hardcover
R4,798
Discovery Miles 47 980
Web Services - Concepts, Methodologies…
Information Reso Management Association
Hardcover
R8,959
Discovery Miles 89 590
User Experience Re-Mastered - Your Guide…
Chauncey Wilson
Paperback
News Search, Blogs and Feeds - A Toolkit
Lars Vage, Lars Iselid
Paperback
R1,332
Discovery Miles 13 320
Web Services - Concepts, Methodologies…
Information Reso Management Association
Hardcover
R8,957
Discovery Miles 89 570
|