Best of
Algorithms
2019
Advanced Algorithms and Data Structures
Marcello La Rocca - 2019
Don’t despair! Many of these “new” problems already have well-established solutions. Algorithms and Data Structures in Action teaches you powerful approaches to a wide range of tricky coding challenges that you can adapt and apply to your own applications. Providing a balanced blend of classic, advanced, and new algorithms, this practical guide upgrades your programming toolbox with new perspectives and hands-on techniques.
Algorithms for Optimization
Mykel J. Kochenderfer - 2019
The book approaches optimization from an engineering perspective, where the objective is to design a system that optimizes a set of metrics subject to constraints. Readers will learn about computational approaches for a range of challenges, including searching high-dimensional spaces, handling problems where there are multiple competing objectives, and accommodating uncertainty in the metrics. Figures, examples, and exercises convey the intuition behind the mathematical approaches. The text provides concrete implementations in the Julia programming language.Topics covered include derivatives and their generalization to multiple dimensions; local descent and first- and second-order methods that inform local descent; stochastic methods, which introduce randomness into the optimization process; linear constrained optimization, when both the objective function and the constraints are linear; surrogate models, probabilistic surrogate models, and using probabilistic surrogate models to guide optimization; optimization under uncertainty; uncertainty propagation; expression optimization; and multidisciplinary design optimization. Appendixes offer an introduction to the Julia language, test functions for evaluating algorithm performance, and mathematical concepts used in the derivation and analysis of the optimization methods discussed in the text. The book can be used by advanced undergraduates and graduate students in mathematics, statistics, computer science, any engineering field, (including electrical engineering and aerospace engineering), and operations research, and as a reference for professionals.
Java Coding Problems: Improve your Java Programming skills by solving real-world coding challenges
Anghel Leonard - 2019
Its new features and concepts can be adopted to solve a variety of modern-day problems. This book enables you to adopt an objective approach to common problems by explaining the correct practices and decisions with respect to complexity, performance, readability, and more.Java Coding Problems will help you complete your daily tasks and meet deadlines. You can count on the 300+ applications containing 1,000+ examples in this book to cover the common and fundamental areas of interest: strings, numbers, arrays, collections, data structures, date and time, immutability, type inference, Optional, Java I/O, Java Reflection, functional programming, concurrency and the HTTP Client API. Put your skills on steroids with problems that have been carefully crafted to highlight and cover the core knowledge that is accessed in daily work. In other words (no matter if your task is easy, medium or complex) having this knowledge under your tool belt is a must, not an option.By the end of this book, you will have gained a strong understanding of Java concepts and have the confidence to develop and choose the right solutions to your problems.What you will learn
Adopt the latest JDK 11 and JDK 12 features in your applications
Solve cutting-edge problems relating to collections and data structures
Get to grips with functional-style programming using lambdas
Perform asynchronous communication and parallel data processing
Solve strings and number problems using the latest Java APIs
Become familiar with different aspects of object immutability in Java
Implement the correct practices and clean code techniques
Who this book is forIf you are a Java developer who wants to level-up by solving real-world problems, then this book is for you. Working knowledge of Java is required to get the most out of this book. Table of Contents
Strings, Numbers, and Math
Objects, Immutability, and Switch Expressions
Working with Date and Time
Type Inference
Arrays, Collections, and Data Structures
Java I/O Paths, Files, Buffers, Scanning, and Formatting
Java Reflection Classes, Interfaces, Constructors, Methods, and Fields
Functional Style Programming - Fundamentals and Design Patterns
Functional style programming - Deep dive
Concurrency - Thread pools, Callables and Synchronizers
Concurrency - Deep dive
Optional
The HTTP Client and WebSocket APIs
Opt Art: From Mathematical Optimization to Visual Design
Robert Bosch - 2019
It is one of today's most important branches of mathematics and computer science--and also a surprisingly rich medium for creating breathtaking works of art. Opt Art takes readers on an entertaining tour of linear optimization and its applications, showing along the way how it can be used to design visual art.Robert Bosch provides a lively and accessible introduction to the geometric, algebraic, and algorithmic foundations of optimization. He presents classical applications, such as the legendary Traveling Salesman Problem, and shows how to adapt them to make optimization art--opt art. Each chapter in this marvelously illustrated book begins with a problem or puzzle and demonstrates how the solution can be derived using a host of artistic methods and media, including 3D printing, laser cutting, and computer-controlled machining. Bosch focuses on mathematical modeling throughout--converting a problem into a workable mathematical form, solving it using optimization techniques, and examining the results, which can take the form of mosaics, line drawings, and even sculpture. All you need is some high-school algebra, geometry, and calculus to follow along.Featuring more than a hundred illustrations and photos of Bosch's own art, Opt Art demonstrates how mathematics and computing can be used to create beauty and express emotion through amazing works of art.
The Burden of Choice: Recommendations, Subversion, and Algorithmic Culture
Jonathan Cohn - 2019
Fundamentally concerned with how the recommendation has come to serve as a form of control that frames a contemporary American as heteronormative, white, and well off, this book asserts that the industries that use these automated recommendations tend to ignore and obscure all other identities in the service of making the type of affluence they are selling appear commonplace. Focusing on the period from the mid-1990s to approximately 2010 (while this technology was still novel), Jonathan Cohn argues that automated recommendations and algorithms are far from natural, neutral, or benevolent. Instead, they shape and are shaped by changing conceptions of gender, sexuality, race, and class. With its cultural studies and humanities-driven methodologies focused on close readings, historical research, and qualitative analysis, The Burden of Choice models a promising avenue for the study of algorithms and culture.