Take a look at our Algorithms books. Shulph carries a great selection of Algorithms books, and we are always adding more.
Get started with C++ programming by learning how to build applications using its data structures and algorithms Key Features Explore data structures such as arrays, stacks, and graphs with real-world examples Study the trade-offs between algorithms and data structures and discover what works and what doesn't Discover how techniques such as bloom filters and multi-way heaps boost real-world applications Book Description C++ is a mature multi-paradigm programming language that enables you to write high-level code with a high degree of control over the hardware. Today, significant parts of software infrastructure, including databases, browsers, multimedia frameworks, and GUI toolkits, are written in C++. This book starts by introducing C++ data structures and how to store data using linked lists, arrays, stacks, and queues. In later chapters, the book explains the basic algorithm design paradigms, such as the greedy approach and the divide-and-conquer approach, which are used to solve a large variety of computational problems. Finally, you will learn the advanced technique of dynamic programming to develop optimized implementations of several algorithms discussed in the book. By the end of this book, you will have learned how to implement standard data structures and algorithms in efficient and scalable C++ 14 code. What you will learn Build applications using hash tables, dictionaries, and sets Explore how modern hardware affects the actual run-time performance of programs Apply common algorithms such as heapsort and merge sort for string data types Use C++ template metaprogramming to write code libraries Implement a URL shortening service using a bloom filter Use appropriate modern C++ idioms such as std:: array instead of C-style arrays Who this book is for This book is for developers or students who want to revisit basic data structures and algorithm design techniques. Although no mathematical background is required, basic knowledge of complexity classes and Big O notation along with a qualification in an algorithms course will help you get the most out of this book. Familiarity with C++ 14 standard is assumed.
Get the most out of JavaScript for building web applications through a series of patterns, techniques, and case studies for clean coding Key Features Write maintainable JS code using internal abstraction, well-written tests, and well-documented code Understand the agents of clean coding like SOLID principles, OOP, and functional programming Explore solutions to tackle common JavaScript challenges in building UIs, managing APIs, and writing states Book Description Building robust apps starts with creating clean code. In this book, you'll explore techniques for doing this by learning everything from the basics of JavaScript through to the practices of clean code. You'll write functional, intuitive, and maintainable code while also understanding how your code affects the end user and the wider community. The book starts with popular clean-coding principles such as SOLID, and the Law of Demeter (LoD), along with highlighting the enemies of writing clean code such as cargo culting and over-management. You'll then delve into JavaScript, understanding the more complex aspects of the language. Next, you'll create meaningful abstractions using design patterns, such as the Class Pattern and the Revealing Module Pattern. You'll explore real-world challenges such as DOM reconciliation, state management, dependency management, and security, both within browser and server environments. Later, you'll cover tooling and testing methodologies and the importance of documenting code. Finally, the book will focus on advocacy and good communication for improving code cleanliness within teams or workplaces, along with covering a case study for clean coding. By the end of this book, you'll be well-versed with JavaScript and have learned how to create clean abstractions, test them, and communicate about them via documentation. What you will learn Understand the true purpose of code and the problems it solves for your end-users and colleagues Discover the tenets and enemies of clean code considering the effects of cultural and syntactic conventions Use modern JavaScript syntax and design patterns to craft intuitive abstractions Maintain code quality within your team via wise adoption of tooling and advocating best practices Learn the modern ecosystem of JavaScript and its challenges like DOM reconciliation and state management Express the behavior of your code both within tests and via various forms of documentation Who this book is for This book is for anyone who writes JavaScript, professionally or otherwise. As this book does not relate specifically to any particular framework or environment, no prior experience of any JavaScript web framework is required. Some knowledge of programming is assumed to understand the concepts covered in the book more effectively.
Get to grips with the building blocks of programming languages and get started on your programming journey without a computer science degree Key Features Understand the fundamentals of a computer program and apply the concepts you learn to different programming languages Gain the confidence to write your first computer program Explore tips, techniques, and best practices to start coding like a professional programmer Book Description Learning how to code has many advantages, and gaining the right programming skills can have a massive impact on what you can do with your current skill set and the way you advance in your career. This book will be your guide to learning computer programming easily, helping you overcome the difficulties in understanding the major constructs in any mainstream programming language. Computer Programming for Absolute Beginners starts by taking you through the building blocks of any programming language with thorough explanations and relevant examples in pseudocode. You'll understand the relationship between computer programs and programming languages and how code is executed on the computer. The book then focuses on the different types of applications that you can create with your programming knowledge. You'll delve into programming constructs, learning all about statements, operators, variables, and data types. As you advance, you'll see how to control the flow of your programs using control structures and reuse your code using functions. Finally, you'll explore best practices that will help you write code like a pro. By the end of this book, you'll be prepared to learn any programming language and take control of your career by adding coding to your skill set. What you will learn Get to grips with basic programming language concepts such as variables, loops, selection and functions Understand what a program is and how the computer executes it Explore different programming languages and learn about the relationship between source code and executable code Solve problems using various paradigms such as procedural programming, object oriented programming, and functional programming Write high-quality code using several coding conventions and best practices Become well-versed with how to track and fix bugs in your programs Who this book is for This book is for beginners who have never programmed before and are looking to enter the world of programming. This includes anyone who is about to start studying programming and wants a head start, or simply wants to learn how to program on their own.
Learn everything you need to know about object-oriented programming with the latest features of Kotlin 1.3 Key Features A practical guide to understand objects and classes in Kotlin Learn to write asynchronous, non-blocking codes with Kotlin coroutines Explore Encapsulation, Inheritance, Polymorphism, and Abstraction in Kotlin Book Description Kotlin is an object-oriented programming language. The book is based on the latest version of Kotlin. The book provides you with a thorough understanding of programming concepts, object-oriented programming techniques, and design patterns. It includes numerous examples, explanation of concepts and keynotes. Where possible, examples and programming exercises are included. The main purpose of the book is to provide a comprehensive coverage of Kotlin features such as classes, data classes, and inheritance. It also provides a good understanding of design pattern and how Kotlin syntax works with object-oriented techniques. You will also gain familiarity with syntax in this book by writing labeled for loop and when as an expression. An introduction to the advanced concepts such as sealed classes and package level functions and coroutines is provided and we will also learn how these concepts can make the software development easy. Supported libraries for serialization, regular expression and testing are also covered in this book. By the end of the book, you would have learnt building robust and maintainable software with object oriented design patterns in Kotlin. What you will learn Get an overview of the Kotlin programming language Discover Object-oriented programming techniques in Kotlin Understand Object-oriented design patterns Uncover multithreading by Kotlin way Understand about arrays and collections Understand the importance of object-oriented design patterns Understand about exception handling and testing in OOP with Kotlin Who this book is for This book is for programmers and developers who wish to learn Object-oriented programming principles and apply them to build robust and scalable applications. Basic knowledge in Kotlin programming is assumed
Solutions for modular, functional, reactive, GUI, network, and multithreaded programming Key Features Explore the latest features of Java 11 to implement efficient and reliable code Develop memory-efficient applications, understanding new garbage collection in Java 11 Create restful webservices and microservices with Spring boot 2 and Docker Book Description For more than three decades, Java has been on the forefront of developing robust software that has helped versatile businesses meet their requirements. Being one of the most widely used programming languages in history, it's imperative for Java developers to discover effective ways of using it in order to take full advantage of the power of the latest Java features. Java 11 Cookbook offers a range of software development solutions with simple and straightforward Java 11 code examples to help you build a modern software system. Starting with the installation of Java, each recipe addresses various problem by explaining the solution and offering insights into how it works. You'll explore the new features added to Java 11 that will make your application modular, secure, and fast. The book contains recipes on functional programming, GUI programming, concurrent programming, and database programming in Java. You'll also be taken through the new features introduced in JDK 18.3 and 18.9. By the end of this book, you'll be equipped with the skills required to write robust, scalable, and optimal Java code effectively. What you will learn Set up JDK and understand what's new in the JDK 11 installation Implement object-oriented designs using classes and interfaces Manage operating system processes Create a modular application with clear dependencies Build graphical user interfaces using JavaFX Use the new HTTP Client API Explore the new diagnostic features in Java 11 Discover how to use the new JShell REPL tool Who this book is for The book is for intermediate-to-advanced Java programmers who want to make their applications fast, secure, and scalable.
Learn how to build scalable, resilient, and effective applications in Java that suit your software requirements. Key Features Explore advanced technologies that Java 11 delivers such as web programming and parallel computing Discover modern programming paradigms such as microservices, cloud computing and enterprise structures Build highly responsive applications with this practical introduction to Reactive programming Book Description Java is one of the most commonly used software languages by programmers and developers. In this book, you'll learn the new features of Java 11 quickly and experience a simple and powerful approach to software development. You'll see how to use the Java runtime tools, understand the Java environment, and create a simple namesorting Java application. Further on, you'll learn about advanced technologies that Java delivers, such as web programming and parallel computing, and will develop a mastermind game. Moving on, we provide more simple examples, to build a foundation before diving into some complex data structure problems that will solidify your Java 11 skills. With a special focus on the features of new projects: Project Valhalla, Project Panama, Project Amber, and Project Loom, this book will help you get employed as a top-notch Java developer. By the end of the book, you'll have a firm foundation to continue your journey toward becoming a professional Java developer. What you will learn Compile, package, and run a program using a build management tool Get to know the principles of test-driven development Separate the wiring of multiple modules from application logic Use Java annotations for configuration Master the scripting API built into the Java language Understand static versus dynamic implementation of code Who this book is for This book is for anyone who wants to learn the Java programming language. No programming experience required. If you have prior experience, it will help you through the book more easily.
Understand the fundamentals of algorithmic trading to apply algorithms to real market data and analyze the results of real-world trading strategies Key Features Understand the power of algorithmic trading in financial markets with real-world examples Get up and running with the algorithms used to carry out algorithmic trading Learn to build your own algorithmic trading robots which require no human intervention Book Description It's now harder than ever to get a significant edge over competitors in terms of speed and efficiency when it comes to algorithmic trading. Relying on sophisticated trading signals, predictive models and strategies can make all the difference. This book will guide you through these aspects, giving you insights into how modern electronic trading markets and participants operate. You'll start with an introduction to algorithmic trading, along with setting up the environment required to perform the tasks in the book. You'll explore the key components of an algorithmic trading business and aspects you'll need to take into account before starting an automated trading project. Next, you'll focus on designing, building and operating the components required for developing a practical and profitable algorithmic trading business. Later, you'll learn how quantitative trading signals and strategies are developed, and also implement and analyze sophisticated trading strategies such as volatility strategies, economic release strategies, and statistical arbitrage. Finally, you'll create a trading bot from scratch using the algorithms built in the previous sections. By the end of this book, you'll be well-versed with electronic trading markets and have learned to implement, evaluate and safely operate algorithmic trading strategies in live markets. What you will learn Understand the components of modern algorithmic trading systems and strategies Apply machine learning in algorithmic trading signals and strategies using Python Build, visualize and analyze trading strategies based on mean reversion, trend, economic releases and more Quantify and build a risk management system for Python trading strategies Build a backtester to run simulated trading strategies for improving the performance of your trading bot Deploy and incorporate trading strategies in the live market to maintain and improve profitability Who this book is for This book is for software engineers, financial traders, data analysts, and entrepreneurs. Anyone who wants to get started with algorithmic trading and understand how it works; and learn the components of a trading system, protocols and algorithms required for black box and gray box trading, and techniques for building a completely automated and profitable trading business will also find this book useful.
Hands-on projects cover all the key deep learning methods built step-by-step in PyTorch Key Features Internals and principles of PyTorch Implement key deep learning methods in PyTorch: CNNs, GANs, RNNs, reinforcement learning, and more Build deep learning workflows and take deep learning models from prototyping to production Book Description PyTorch Deep Learning Hands-On is a book for engineers who want a fast-paced guide to doing deep learning work with Pytorch. It is not an academic textbook and does not try to teach deep learning principles. The book will help you most if you want to get your hands dirty and put PyTorch to work quickly. PyTorch Deep Learning Hands-On shows how to implement the major deep learning architectures in PyTorch. It covers neural networks, computer vision, CNNs, natural language processing (RNN), GANs, and reinforcement learning. You will also build deep learning workflows with the PyTorch framework, migrate models built in Python to highly efficient TorchScript, and deploy to production using the most sophisticated available tools. Each chapter focuses on a different area of deep learning. Chapters start with a refresher on how the model works, before sharing the code you need to implement them in PyTorch. This book is ideal if you want to rapidly add PyTorch to your deep learning toolset. What you will learn Use PyTorch to build: Simple Neural Networks – build neural networks the PyTorch way, with high-level functions, optimizers, and more Convolutional Neural Networks – create advanced computer vision systems Recurrent Neural Networks – work with sequential data such as natural language and audio Generative Adversarial Networks – create new content with models including SimpleGAN and CycleGAN Reinforcement Learning – develop systems that can solve complex problems such as driving or game playing Deep Learning workflows – move effectively from ideation to production with proper deep learning workflow using PyTorch and its utility packages Production-ready models – package your models for high-performance production environments Who this book is for Machine learning engineers who want to put PyTorch to work.
Design and implement professional-level programs by leveraging modern data structures and algorithms in Rust Key Features Improve your productivity by writing more simple and easy code in Rust Discover the functional and reactive implementations of traditional data structures Delve into new domains of Rust, including WebAssembly, networking, and command-line tools Book Description Rust is a powerful language with a rare combination of safety, speed, and zero-cost abstractions. This Learning Path is filled with clear and simple explanations of its features along with real-world examples, demonstrating how you can build robust, scalable, and reliable programs. You'll get started with an introduction to Rust data structures, algorithms, and essential language constructs. Next, you will understand how to store data using linked lists, arrays, stacks, and queues. You'll also learn to implement sorting and searching algorithms, such as Brute Force algorithms, Greedy algorithms, Dynamic Programming, and Backtracking. As you progress, you'll pick up on using Rust for systems programming, network programming, and the web. You'll then move on to discover a variety of techniques, right from writing memory-safe code, to building idiomatic Rust libraries, and even advanced macros. By the end of this Learning Path, you'll be able to implement Rust for enterprise projects, writing better tests and documentation, designing for performance, and creating idiomatic Rust code. This Learning Path includes content from the following Packt products: Mastering Rust - Second Edition by Rahul Sharma and Vesa Kaihlavirta Hands-On Data Structures and Algorithms with Rust by Claus Matzinger What you will learn Design and implement complex data structures in Rust Create and use well-tested and reusable components with Rust Understand the basics of multithreaded programming and advanced algorithm design Explore application profiling based on benchmarking and testing Study and apply best practices and strategies in error handling Create efficient web applications with the Actix-web framework Use Diesel for type-safe database interactions in your web application Who this book is for If you are already familiar with an imperative language and now want to progress from being a beginner to an intermediate-level Rust programmer, this Learning Path is for you. Developers who are already familiar with Rust and want to delve deeper into the essential data structures and algorithms in Rust will also find this Learning Path useful.
Build exciting 2D/3D games and virtual reality applications with the help of hands-on examples Key Features Create five different types of games from scratch with Unity 2018 Import custom content into Unity from third-party tools such as Maya and Blender Learn to build NPCs with artificial intelligent behavior. Book Description Unity is the most exciting and popular engine used for developing games. With its 2018 release, Unity has become the primary source of both game development and virtual reality content. In Unity 2018 By Example, you'll learn how to use Unity in order to make amazing games from popular genres - from action shooters to mind-bending puzzle games to adventure and Virtual Reality (VR) games. Even if you have no previous experience of using Unity, this book will help you understand the toolsets it provides in depth. In addition to this, you'll understand how to create time-critical collection games, twin-stick space shooters, platformers, and action-fest games with intelligent enemies. Finally, you'll get to grips with creating VR games with the new toolsets introduced by Unity to help you develop amazing VR experiences. To make things easier, you will be provided with step-by-step tutorials for making five great games in Unity 2018, along with a detailed explanation of all the fundamental concepts. By the end of this book, you'll have established a strong foundation in making games with Unity 2018. What you will learn Understand core Unity concepts, such as game objects, components, and scenes Study level-design techniques for building immersive and interesting worlds Make functional games with C# scripting Use the toolset creatively to build games with different themes and styles Handle player controls and input functionality Work with terrains and world-creation tools Get to grips with making both 2D and 3D games Who this book is for You don't need to have any previous experience with Unity to enjoy Unity 2018 By Example, although you need to have basic knowledge of C#.