Best of
Computer-Science

2017

Hands-On Machine Learning with Scikit-Learn and TensorFlow


Aurélien Géron - 2017
    Now that machine learning is thriving, even programmers who know close to nothing about this technology can use simple, efficient tools to implement programs capable of learning from data. This practical book shows you how.By using concrete examples, minimal theory, and two production-ready Python frameworks—Scikit-Learn and TensorFlow—author Aurélien Géron helps you gain an intuitive understanding of the concepts and tools for building intelligent systems. You’ll learn how to use a range of techniques, starting with simple Linear Regression and progressing to Deep Neural Networks. If you have some programming experience and you’re ready to code a machine learning project, this guide is for you.This hands-on book shows you how to use:Scikit-Learn, an accessible framework that implements many algorithms efficiently and serves as a great machine learning entry pointTensorFlow, a more complex library for distributed numerical computation, ideal for training and running very large neural networksPractical code examples that you can apply without learning excessive machine learning theory or algorithm details

Deep Learning with Python


François Chollet - 2017
    It is the technology behind photo tagging systems at Facebook and Google, self-driving cars, speech recognition systems on your smartphone, and much more.In particular, Deep learning excels at solving machine perception problems: understanding the content of image data, video data, or sound data. Here's a simple example: say you have a large collection of images, and that you want tags associated with each image, for example, "dog," "cat," etc. Deep learning can allow you to create a system that understands how to map such tags to images, learning only from examples. This system can then be applied to new images, automating the task of photo tagging. A deep learning model only has to be fed examples of a task to start generating useful results on new data.

Python Tricks: A Buffet of Awesome Python Features


Dan Bader - 2017
    Discover the “hidden gold” in Python’s standard library and start writing clean and Pythonic code today. Who Should Read This Book: If you’re wondering which lesser known parts in Python you should know about, you’ll get a roadmap with this book. Discover cool (yet practical!) Python tricks and blow your coworkers’ minds in your next code review. If you’ve got experience with legacy versions of Python, the book will get you up to speed with modern patterns and features introduced in Python 3 and backported to Python 2. If you’ve worked with other programming languages and you want to get up to speed with Python, you’ll pick up the idioms and practical tips you need to become a confident and effective Pythonista. If you want to make Python your own and learn how to write clean and Pythonic code, you’ll discover best practices and little-known tricks to round out your knowledge. What Python Developers Say About The Book: "I kept thinking that I wished I had access to a book like this when I started learning Python many years ago." — Mariatta Wijaya, Python Core Developer"This book makes you write better Python code!" — Bob Belderbos, Software Developer at Oracle"Far from being just a shallow collection of snippets, this book will leave the attentive reader with a deeper understanding of the inner workings of Python as well as an appreciation for its beauty." — Ben Felder, Pythonista"It's like having a seasoned tutor explaining, well, tricks!" — Daniel Meyer, Sr. Desktop Administrator at Tesla Inc.

Clean Architecture


Robert C. Martin - 2017
    "Uncle Bob" Martin shows how to bring greater professionalism and discipline to application architecture and design.As with his other books, Martin's Clean Architecture doesn't merely present multiple choices and options, and say "use your best judgment": it tells you what choices to make, and why those choices are critical to your success. Martin offers direct, no-nonsense answers to key architecture and design questions like:What are the best high level structures for different kinds of applications, including web, database, thick-client, console, and embedded apps?What are the core principles of software architecture?What is the role of the architect, and what is he/she really trying to achieve?What are the core principles of software design?How do designs and architectures go wrong, and what can you do about it?What are the disciplines and practices of professional architects and designers?Clean Architecture is essential reading for every software architect, systems analyst, system designer, and software manager — and for any programmer who aspires to these roles or is impacted by their work.

Game Engine Black Book, Wolfenstein 3D


Fabien Sanglard - 2017
    How was Wolfenstein 3D made and what were the secrets of its speed? How did id Software manage to turn a machine designed to display static images for word processing and spreadsheet applications into the best gaming platform in the world, capable of running games at seventy frames per seconds? If you have ever asked yourself these questions, Game Engine Black Book is for you.

Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#


Scott Wlaschin - 2017
    Domain-driven design (DDD) combined with functional programming is the innovative combo that will get you there. In this pragmatic, down-to-earth guide, you'll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely - often more so than an object-oriented approach. Practical examples in the open-source F# functional language, and examples from familiar business domains, show you how to apply these techniques to build software that is business-focused, flexible, and high quality.Domain-driven design is a well-established approach to designing software that ensures that domain experts and developers work together effectively to create high-quality software. This book is the first to combine DDD with techniques from statically typed functional programming. This book is perfect for newcomers to DDD or functional programming - all the techniques you need will be introduced and explained.Model a complex domain accurately using the F# type system, creating compilable code that is also readable documentation---ensuring that the code and design never get out of sync. Encode business rules in the design so that you have "compile-time unit tests," and eliminate many potential bugs by making illegal states unrepresentable. Assemble a series of small, testable functions into a complete use case, and compose these individual scenarios into a large-scale design. Discover why the combination of functional programming and DDD leads naturally to service-oriented and hexagonal architectures. Finally, create a functional domain model that works with traditional databases, NoSQL, and event stores, and safely expose your domain via a website or API.Solve real problems by focusing on real-world requirements for your software.What You Need: The code in this book is designed to be run interactively on Windows, Mac and Linux.You will need a recent version of F# (4.0 or greater), and the appropriate .NET runtime for your platform.Full installation instructions for all platforms at fsharp.org.

The Hardware Hacker: Adventures in Making and Breaking Hardware


Andrew Huang - 2017
    In The Hardware Hacker, Huang shares his experiences in manufacturing and open hardware, creating an illuminating and compelling career retrospective.Huang's journey starts with his first visit to the staggering electronics markets in Shenzhen, with booths overflowing with capacitors, memory chips, voltmeters, and possibility. He shares how he navigated the overwhelming world of Chinese factories to bring chumby, Novena, and Chibitronics to life, covering everything from creating a Bill of Materials to choosing the factory to best fit his needs.Through this collection of personal essays and interviews on topics ranging from the legality of reverse engineering to a comparison of intellectual property practices between China and the United States, bunnie weaves engineering, law, and society into the tapestry of open hardware.With highly detailed passages on the ins and outs of manufacturing and a comprehensive take on the issues associated with open source hardware, The Hardware Hacker is an invaluable resource for aspiring hackers and makers.

Mastering Blockchain: Distributed Ledgers, Decentralization and Smart Contracts Explained


Imran Bashir - 2017
    Get to grips with the underlying technical principles and implementations of blockchainBuild powerful applications using Ethereum to secure transactions and create smart contractsExplore cryptography, mine cryptocurrencies, and solve scalability issues with this comprehensive guide

A Common-Sense Guide to Data Structures and Algorithms: Level Up Your Core Programming Skills


Jay Wengrow - 2017
    If you have received one of these copies, please contact the Pragmatic Bookshelf at support@pragprog.com, and we will replace it for you.Algorithms and data structures are much more than abstract concepts. Mastering them enables you to write code that runs faster and more efficiently, which is particularly important for today's web and mobile apps. This book takes a practical approach to data structures and algorithms, with techniques and real-world scenarios that you can use in your daily production code. Graphics and examples make these computer science concepts understandable and relevant. You can use these techniques with any language; examples in the book are in JavaScript, Python, and Ruby.Use Big O notation, the primary tool for evaluating algorithms, to measure and articulate the efficiency of your code, and modify your algorithm to make it faster. Find out how your choice of arrays, linked lists, and hash tables can dramatically affect the code you write. Use recursion to solve tricky problems and create algorithms that run exponentially faster than the alternatives. Dig into advanced data structures such as binary trees and graphs to help scale specialized applications such as social networks and mapping software. You'll even encounter a single keyword that can give your code a turbo boost. Jay Wengrow brings to this book the key teaching practices he developed as a web development bootcamp founder and educator.Use these techniques today to make your code faster and more scalable.

The Road to React


Robin Wieruch - 2017
    This book uses the common sense of these roads and weaves it into the implementation of an attractive app. You will build a Hacker News React app. On the road you will learn ES6, React with all its basics and advanced concepts and internal state management.' to 'A lot of roadmaps exist on how to master React. This book uses the common sense of these roads and weaves it into the implementation of an attractive app. You will build a Hacker News React app. On the road you will learn ES6, React with all its basics and advanced concepts and internal state management. http://www.robinwieruch.de/the-road-t...

Serious Cryptography: A Practical Introduction to Modern Encryption


Jean-Philippe Aumasson - 2017
    You’ll learn about authenticated encryption, secure randomness, hash functions, block ciphers, and public-key techniques such as RSA and elliptic curve cryptography.You’ll also learn: - Key concepts in cryptography, such as computational security, attacker models, and forward secrecy - The strengths and limitations of the TLS protocol behind HTTPS secure websites - Quantum computation and post-quantum cryptography - About various vulnerabilities by examining numerous code examples and use cases - How to choose the best algorithm or protocol and ask vendors the right questionsEach chapter includes a discussion of common implementation mistakes using real-world examples and details what could go wrong and how to avoid these pitfalls. Whether you’re a seasoned practitioner or a beginner looking to dive into the field, Serious Cryptography will provide a complete survey of modern encryption and its applications.

Algorithms Illuminated (Part 1): The Basics


Tim Roughgarden - 2017
    Their applications range from network routing and computational genomics to public-key cryptography and database system implementation. Studying algorithms can make you a better programmer, a clearer thinker, and a master of technical interviews. Algorithms Illuminated is an accessible introduction to the subject---a transcript of what an expert algorithms tutor would say over a series of one-on-one lessons. The exposition is rigorous but emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details. Part 1 of the book series covers asymptotic analysis and big-O notation, divide-and-conquer algorithms and the master method, randomized algorithms, and several famous algorithms for sorting and selection.

Two Scoops of Django 1.11: Best Practices for the Django Web Framework


Daniel Roy Greenfeld - 2017
    We have put thousands of hours into the fourth edition of the book, writing and revising its material to include significant improvements and new material based on feedback from previous editions.

Microservice Patterns


Chris Richardson - 2017
    However, successful applications have a habit of growing. Eventually the development team ends up in what is known as monolithic hell. All aspects of software development and deployment become painfully slow. The solution is to adopt the microservice architecture, which structures an application as a services, organized around business capabilities. This architecture accelerates software development and enables continuous delivery and deployment of complex software applications.Microservice Patterns teaches enterprise developers and architects how to build applications with the microservice architecture. Rather than simply advocating for the use the microservice architecture, this clearly-written guide takes a balanced, pragmatic approach. You'll discover that the microservice architecture is not a silver bullet and has both benefits and drawbacks. Along the way, you'll learn a pattern language that will enable you to solve the issues that arise when using the microservice architecture. This book also teaches you how to refactor a monolithic application to a microservice architecture.

Functional Programming in C#


Enrico Buonanno - 2017
    It allows us to write elegant, intention-revealing code, that shines in testability and support for concurrency. C# includes a number of functional features and libraries, enabling us to take advantage of these benefits.Functional Programming in C# teaches you to apply functional thinking to real-world scenarios. You’ll start by learning the principles of functional programming, and how they translate in the C# language. The book then dives into important topics like function composition, data flow, and principles for designing function signatures, types and collections. Through lots of real-world examples, you’ll acquire the tools to tackle programming tasks with a functional approach. The last part of the book deals with advanced topics, including lazy evaluation, stateful computations, asynchrony, and event streams. By the end of this book, you’ll be able to integrate functional techniques, making your C# programs robust and maintainable, and helping you become a more well-rounded developer.

C# 7.0 in a Nutshell: The Definitive Reference


Joseph Albahari - 2017
    Since its debut in 2000, C# has become a language of unusual flexibility and breadth, but its continual growth means there's always more to learn.Organized around concepts and use cases, this updated edition provides intermediate and advanced programmers with a concise map of C# and .NET knowledge. Dive in and discover why this Nutshell guide is considered the definitive reference on C#.Get up to speed on the C# language, from the basics of syntax and variables to advanced topics such as pointers, operator overloading, and dynamic bindingDig deep into LINQ via three chapters dedicated to the topicExplore concurrency and asynchrony, advanced threading, and parallel programmingWork with .NET features, including XML, regular expressions, networking, serialization, reflection, application domains, and securityDelve into Roslyn, the modular C# 7.0 compiler-as-a-service

Type-Driven Development with Idris


Edwin Brady - 2017
    This book teaches you with Idris, a language designed from the very beginning to support type-driven development. In this book, you’ll learn how to manipulate types just like any other construct (numbers, strings, lists, etc.). You’ll see how to use type-driven development to build real-world software, as well as how to handle side-effects, state and concurrency, and interoperating with existing systems. By the end of this book, you will be able to develop robust and verified software in Idris and apply type-driven development methods to programming in other languages.

Concurrency in Go: Tools and Techniques for Developers


Katherine Cox-Buday - 2017
    If you're a developer familiar with Go, this practical book demonstrates best practices and patterns to help you incorporate concurrency into your systems.Author Katherine Cox-Buday takes you step-by-step through the process. You'll understand how Go chooses to model concurrency, what issues arise from this model, and how you can compose primitives within this model to solve problems. Learn the skills and tooling you need to confidently write and implement concurrent systems of any size.Understand how Go addresses fundamental problems that make concurrency difficult to do correctlyLearn the key differences between concurrency and parallelismDig into the syntax of Go's memory synchronization primitivesForm patterns with these primitives to write maintainable concurrent codeCompose patterns into a series of practices that enable you to write large, distributed systems that scaleLearn the sophistication behind goroutines and how Go's runtime stitches everything together

Grokking Deep Learning


Andrew W. Trask - 2017
    Loosely based on neuron behavior inside of human brains, these systems are rapidly catching up with the intelligence of their human creators, defeating the world champion Go player, achieving superhuman performance on video games, driving cars, translating languages, and sometimes even helping law enforcement fight crime. Deep Learning is a revolution that is changing every industry across the globe.Grokking Deep Learning is the perfect place to begin your deep learning journey. Rather than just learn the “black box” API of some library or framework, you will actually understand how to build these algorithms completely from scratch. You will understand how Deep Learning is able to learn at levels greater than humans. You will be able to understand the “brain” behind state-of-the-art Artificial Intelligence. Furthermore, unlike other courses that assume advanced knowledge of Calculus and leverage complex mathematical notation, if you’re a Python hacker who passed high-school algebra, you’re ready to go. And at the end, you’ll even build an A.I. that will learn to defeat you in a classic Atari game.

Kafka: The Definitive Guide: Real-Time Data and Stream Processing at Scale


Neha Narkhede - 2017
    And how to move all of this data becomes nearly as important as the data itself. If you� re an application architect, developer, or production engineer new to Apache Kafka, this practical guide shows you how to use this open source streaming platform to handle real-time data feeds.Engineers from Confluent and LinkedIn who are responsible for developing Kafka explain how to deploy production Kafka clusters, write reliable event-driven microservices, and build scalable stream-processing applications with this platform. Through detailed examples, you� ll learn Kafka� s design principles, reliability guarantees, key APIs, and architecture details, including the replication protocol, the controller, and the storage layer.Understand publish-subscribe messaging and how it fits in the big data ecosystem.Explore Kafka producers and consumers for writing and reading messagesUnderstand Kafka patterns and use-case requirements to ensure reliable data deliveryGet best practices for building data pipelines and applications with KafkaManage Kafka in production, and learn to perform monitoring, tuning, and maintenance tasksLearn the most critical metrics among Kafka� s operational measurementsExplore how Kafka� s stream delivery capabilities make it a perfect source for stream processing systems

Neural Network Methods for Natural Language Processing


Yoav Goldberg - 2017
    Table of Contents:PrefaceAcknowledgmentsIntroductionLearning Basics and Linear ModelsFrom Linear Models to Multi-layer PerceptronsFeed-forward Neural NetworksNeural Network TrainingFeatures for Textual DataCase Studies of NLP FeaturesFrom Textual Features to InputsLanguage ModelingPre-trained Word RepresentationsUsing Word EmbeddingsCase Study: A Feed-forward Architecture for Sentence Meaning InferenceNgram Detectors: Convolutional Neural NetworksRecurrent Neural Networks: Modeling Sequences and StacksConcrete Recurrent Neural Network ArchitecturesModeling with Recurrent NetworksConditioned GenerationModeling Trees with Recursive Neural NetworksStructured Output PredictionCascaded, Multi-task and Semi-supervised LearningConclusionBibliographyAuthor's Biography

Computer Science Distilled: Learn the Art of Solving Computational Problems


Wladston Ferreira Filho - 2017
    Designed for readers who don't need the academic formality, it's a fast and easy computer science guide. It teaches essential concepts for people who want to program computers effectively. First, it introduces discrete mathematics, then it exposes the most common algorithms and data structures. It also shows the principles that make computers and programming languages work.

The Complete Software Developer's Career Guide: How to Learn Programming Languages Quickly, Ace Your Programming Interview, and Land Your Software Developer Dream Job


John Z. Sonmez - 2017
    As John invested in these skills his career took off, and he became a highly paid, highly sought-after developer and consultant. Today John helps more than 1.4 million programmers every year to increase their income by developing this unique blend of skills. "If you're a developer, green or a veteran, you owe it to yourself to read The Complete Software Developers Career Guide." - Jason Down, Platform Developer, Ontario, Canada What You Will Learn in This Book How to systematically find and fill the gaps in your technical knowledge so you can face any new challenge with confidence Should you take contract work - or hold out for a salaried position? Which will earn you more, what the tradeoffs are, and how your personality should sway your choice Should you learn JavaScript, C#, Python, C++? How to decide which programming language you should master first Ever notice how every job ever posted requires "3-5 years of experience," which you don't have? Simple solution for this frustrating chicken-and-egg problem that allows you to build legitimate job experience while you learn to code Is earning a computer science degree a necessity - or a total waste of time? How to get a college degree with maximum credibility and minimum debt Coding bootcampssome are great, some are complete scams. How to tell the difference so you don't find yourself cheated out of $10,000 Interviewer tells you, "Dress code is casual around here - the development team wears flipflops." What should you wear? How do you deal with a boss who's a micromanager. Plus how helping your manager with his goals can make you the MVP of your team The technical skills that every professional developer must have - but no one teaches you (most developers are missing some critical pieces, they don't teach this stuff in college, you're expected to just "know" this) An inside look at the recruiting industry. What that "friendly" recruiter really wants from you, how they get paid, and how to avoid getting pigeonholed into a job you'll hate Who Should Read This Book Entry-Level Developers This book will show you how to ensure you have the technical skills your future boss is looking for, create a resume that leaps off a hiring manager's desk, and escape the "no work experience" trap. Mid-Career Developers You'll see how to find and fill in gaps in your technical knowledge, position yourself as the one team member your boss can't live without, and turn those dreaded annual reviews into chance to make an iron-clad case for your salary bump. Senior Developers This book will show you how to become a specialist who can command above-market wages, how building a name for yourself can make opportunities come to you, and how to decide whether consulting or entrepreneurship are paths you should pursue.

Deep Learning for Computer Vision with Python — Starter Bundle


Adrian Rosebrock - 2017
    You'll even solve fun and interesting real-world problems using deep learning along the way.

The IT Newbie: The Adventures of Selben and Soda


Selben - 2017
    Through calming irate customers, to internet outages, and even handling a haunted office, Selben and Soda tackle it all. Thirteen short stories have been collected and edited for your enjoyment, including two never before shared anywhere! And remember, if you need to distract an angry customer while you fix their computer, just talk about food!

The BDD Books: Discovery


Gáspár Nagy - 2017
    This practical guide demonstrates good collaboration techniques, illustrated by concrete examples.This book is written for everyone involved in the specification and delivery of software (including product owners, business analysts, developers, and testers). The book starts by explaining the reasons BDD exists in the first place, and describes techniques for getting the most out of collaboration between technical and non-technical team members.

The Rails 5 Way


Obie Fernandez - 2017
    Obie Fernandez illuminates the entire Rails 5 API, its most powerful idioms, design approaches, and libraries. He presents new and updated content on Action Cable, RSpec 3.4, Turbolinks 5.0, the Attributes API, and many other enhancements, both major and subtle. Through detailed code examples, you'll dive deep into Ruby on Rails, discover why it's designed as it is, and learn to make it do exactly what you want. Proven in thousands of production systems, the knowledge in this book will maximize your productivity and help you build more successful solutions. Build powerful, scalable, REST-compliant back-end services Program complex program flows using Action Controller Represent models, relationships, and operations in Active Record, and apply advanced Active Record techniques Smoothly evolve database schema via Migrations Craft front-ends with ActionView and the Asset Pipeline Optimize performance and scalability with caching and Turbolinks 5.0 Improve your productivity using Haml HTML templating Secure your systems against attacks like SQL Injection, XSS, and XSRF Integrate email using Action Mailer Enable real-time, websockets-based browser behavior with Action Cable Improve responsiveness with background processing Build "API-only" back-end projects that speak JSON Leverage enhancements to Active Job, serialization, and Ajax support

Windows Internals, Part 1: System Architecture, Processes, Threads, Memory Management, and More


Pavel Yosifovich - 2017
    

The Math of Neural Networks


Michael Taylor - 2017
    They make web searches better, organize photos, and are even used in speech translation. Heck, they can even generate encryption. At the same time, they are also mysterious and mind-bending: how exactly do they accomplish these things ? What goes on inside a neural network? On a high level, a network learns just like we do, through trial and error. This is true regardless if the network is supervised, unsupervised, or semi-supervised. Once we dig a bit deeper though, we discover that a handful of mathematical functions play a major role in the trial and error process. It also becomes clear that a grasp of the underlying mathematics helps clarify how a network learns. In the following chapters we will unpack the mathematics that drive a neural network. To do this, we will use a feedforward network as our model and follow input as it moves through the network.

App Development with Swift


Apple Education - 2017
    Whether you’re new to coding or want to expand your skills, by the end of this course you should be able to build a fully functioning app of your own design.The course starts by introducing iOS development tools, basic programming concepts using Swift as the language, and industry best practices. Building on this foundation, you’ll follow a step-by-step curriculum, work through practical exercises, and create apps from scratch.

Understanding the Digital World: What You Need to Know about Computers, the Internet, Privacy, and Security


Brian W. Kernighan - 2017
    Some of them are highly visible, in laptops, tablets, cell phones, and smart watches. But most are invisible, like those in appliances, cars, medical equipment, transportation systems, power grids, and weapons. We never see the myriad computers that quietly collect, share, and sometimes leak vast amounts of personal data about us. Through computers, governments and companies increasingly monitor what we do. Social networks and advertisers know far more about us than we should be comfortable with, using information we freely give them. Criminals have all-too-easy access to our data. Do we truly understand the power of computers in our world?Understanding the Digital World explains how computer hardware, software, networks, and systems work. Topics include how computers are built and how they compute; what programming is and why it is difficult; how the Internet and the web operate; and how all of these affect our security, privacy, property, and other important social, political, and economic issues. This book also touches on fundamental ideas from computer science and some of the inherent limitations of computers. It includes numerous color illustrations, notes on sources for further exploration, and a glossary to explain technical terms and buzzwords.Understanding the Digital World is a must-read for all who want to know more about computers and communications. It explains, precisely and carefully, not only how they operate but also how they influence our daily lives, in terms anyone can understand, no matter what their experience and knowledge of technology.

The Manga Guide to Microprocessors


Michio Shibuya - 2017
    Ayumi vows to find out everything she can about her new nemesis. Lucky for her, Yuu Kano, the genius programmer behind the Shooting Star, is willing to teach her all about the inner workings of the microprocessor--the "brain" inside all computers, phones, and gadgets.Follow along with Ayumi in The Manga Guide to Microprocessors and you'll learn about:-How the CPU processes information and makes decision-How computers perform arithmetic operations and store information-logic gates and how they're used in integrated circuits-the Key components of modern computers, including registers, GPUs, and RAM-Assembly language and how it differs from high-level programming languagesWhether you're a computer science student or just want to understand the power of microprocessors, you'll find what you need to know in The Manga Guide to Microprocessors.

Craft GraphQL APIs in Elixir with Absinthe: Flexible, Robust Services for Queries, Mutations, and Subscriptions


Bruce Williams - 2017
    Upgrade your web API to GraphQL, leveraging its flexible queries to empower your users, and its declarative structure to simplify your code. Absinthe is the GraphQL toolkit for Elixir, a functional programming language designed to enable massive concurrency atop robust application architectures. Written by the creators of Absinthe, this book will help you take full advantage of these two groundbreaking technologies. Build your own flexible, high-performance APIs using step-by-step guidance and expert advice you won't find anywhere else.GraphQL is a new way of structuring and building web services, and the result is transformational. Find out how to offer a more tailored, cohesive experience to your users, easily aggregate data from different data sources, and improve your back end's maintainability with Absinthe's declarative approach to defining how your API works.Build a GraphQL-based API from scratch using Absinthe, starting from core principles. Learn the type system and how to expand your schema to suit your application's needs. Discover a growing ecosystem of tools and utilities to understand, debug, and document your API. Take it to production, but do it safely with solid best practices in mind. Find out how complexity analysis and persisted queries can let you support your users flexibly, but responsibly too. Along the way, discover how Elixir makes all the difference for a high performance, fault-tolerant API. Use asynchronous and batching execution, or write your own custom add-ons to extend Absinthe. Go live with subscriptions, delivering data over websockets on top of Elixir (and Erlang/OTP's) famous solid performance and real-time capabilities.Transform your applications with the powerful combination of Elixir and GraphQL, using Absinthe.What You Need: To follow along with the book, you should have Erlang/OTP 19+ and Elixir 1.4+ installed. The book will guide you through setting up a new Phoenix application using Absinthe.

The Data Science Design Manual


Steven S. Skiena - 2017
    As a discipline, data science sits at the intersection of statistics, computer science, and machine learning, but it is building a distinct heft and character of its own.In particular, the book stresses the following basic principles as fundamental to becoming a good data scientist: "Valuing Doing the Simple Things Right," laying the groundwork of what really matters in analyzing data; "Developing Mathematical Intuition," so that readers can understand on an intuitive level why these concepts were developed, how they are useful and when they work best, and; "Thinking Like a Computer Scientist, but Acting Like a Statistician," following approaches which come most naturally to computer scientists while maintaining the core values of statistical reasoning. The book does not emphasize any particular language or suite of data analysis tools, but instead provides a high-level discussion of important design principles.This book covers enough material for an "Introduction to Data Science" course at the undergraduate or early graduate student levels. A full set of lecture slides for teaching this course are available at an associated website, along with data resources for projects and assignments, and online video lectures.Other Pedagogical features of this book include: "War Stories" offering perspectives on how data science techniques apply in the real world; "False Starts" revealing the subtle reasons why certain approaches fail; "Take-Home Lessons" emphasizing the big-picture concepts to learn from each chapter; "Homework Problems" providing a wide range of exercises for self-study; "Kaggle Challenges" from the online platform Kaggle; examples taken from the data science television show "The Quant Shop," and; concluding notes in each tutorial chapter pointing readers to primary sources and additional references.

Functional Programming, Simplified: (Scala edition)


Alvin Alexander - 2017
    The lessons are presented in a logical sequence — the order in which the author learned them — culminating in advanced topics like functional domain modeling, and how to write and use monads. Some of the book’s lessons include: - A simple set of rules for functional programming in Scala - How and why to write pure functions and use immutable variables - Why function signatures in FP are *much* more important than method signatures in OOP - How pure functions work with I/O (file, database, and network) - How to read anonymous functions - Lessons on recursion, with many images to help explain how it works - How the concepts of JVM stacks and stack frames work - Partially-applied functions and currying - How using Option naturally leads to flatMap, and how flatMap naturally leads to for-comprehensions - How and why to use case classes and pattern matching - How to use monads like State and IO - How to use monad transformers like StateT - How (and why) to write your own monads - Domain modeling in functional programming - How to use “lenses” to update immutable data models - Concurrency lessons cover Akka actors and Scala futures - Visual lessons on collections’ methods like fold and reduce - How to use the ScalaCheck property-testing framework - How to write and use “type classes” - Algebraic Data Types (ADTs) are explained All told, the book contains 120 small chapters. Source code examples from the book are available as a series of Github repositories that you can download and work with.

Learn Functional Programming with Elixir: New Foundations for a New World


Ulisses Almeida - 2017
    No previous functional programming experience required! This book walks you through the right concepts at the right pace, as you explore immutable values and explicit data transformation, functions, modules, recursive functions, pattern matching, high-order functions, polymorphism, and failure handling, all while avoiding side effects. Don't board the Elixir train with an imperative mindset! To get the most out of functional languages, you need to think functionally. This book will get you there.Functional programming offers useful techniques for building maintainable and scalable software that solves today's difficult problems. The demand for software written in this way is increasing - you don't want to miss out. In this book, you'll not only learn Elixir and its features, you'll also learn the mindset required to program functionally. Elixir's clean syntax is excellent for exploring the critical skills of using functions and concurrency.Start with the basic techniques of the functional way: working with immutable data, transforming data in discrete steps, and avoiding side effects. Next, take a deep look at values, expressions, functions, and modules. Then extend your programming with pattern matching and flow control with case, if, cond, and functions. Use recursive functions to create iterations. Work with data types such as lists, tuples, and maps. Improve code reusability and readability with Elixir's most common high-order functions. Explore how to use lazy computation with streams, design your data, and take advantage of polymorphism with protocols. Combine functions and handle failures in a maintainable way using Elixir features and libraries.Learn techniques that matter to make code that lives harmoniously with the language.What You Need: You'll need a computer and Elixir 1.4 or newer version installed. No previous functional programming or Elixir experience is required. Some experience with any programming language is recommended.

Programming and Problem Solving with Python


Ashok Namdev Kamthane - 2017
    

Building Progressive Web Apps: Bringing the Power of Native to the Browser


Tal Ater - 2017
    New progressive web apps have capabilities that will soon make you obsolete. With this hands-on guide, web developers and business execs will learn how—and why—to develop web apps that take advantage of features that have so far been exclusive to native apps. Features that include fast load times, push notifications, offline access, homescreen shortcuts, and an entirely app-like experience. By leveraging the latest browser APIs, progressive web apps combine all of the benefits of native apps, while avoiding their issues. Throughout the book, author Tal Ater shows you how to improve a simple website for the fictional Gotham Imperial Hotel into a modern progressive web app. Plus: Understand how service workers work, and use them to create sites that launch in an instant, regardless of the user’s internet connection Create full-screen web apps that launch from the phone's homescreen just like native apps Re-engage users with push notifications, even days after they have left your site Embrace offline-first and build web apps that gracefully handle loss of connectivity Explore new UX opportunities and challenges presented by progressive web apps

Agile Application Security: Enabling Security in a Continuous Delivery Pipeline


Jim Bird - 2017
    And most security professionals aren't up to speed in their understanding and experience of agile development. To help bridge the divide between these two worlds, this practical guide introduces several security tools and techniques adapted specifically to integrate with agile development.Written by security experts and agile veterans, this book begins by introducing security principles to agile practitioners, and agile principles to security practitioners. The authors also reveal problems they encountered in their own experiences with agile security, and how they worked to solve them.You'll learn how to:Add security practices to each stage of your existing development lifecycleIntegrate security with planning, requirements, design, and at the code levelInclude security testing as part of your team's effort to deliver working software in each releaseImplement regulatory compliance in an agile or DevOps environmentBuild an effective security program through a culture of empathy, openness, transparency, and collaboration

Begin to Code with Python


Rob Miles - 2017
    It's not just friendly and easy: it's the first Python beginner's guide that puts you in control of your own learning, and empowers you to build unique programs to solve problems you care about. Microsoft has completely reinvented the beginning programmer's tutorial, reflecting deep research into how today's beginners learn, and why other books fall short. Begin to Code with Python is packed with innovations, including its "Snaps" library of pre-built operations that are easy to combine your own unique programs, Cookie Cutter templates that give you a flying start, and "Make Something Happen" projects that help you build skills by creating your own programs, not programs someone else has handed you. Throughout, Begin to Code with Python balances playful exposition and illustration of programming fundamentals with your own creative input - and you'll never be more than a page or two away from making something unique and personal to you. It will help you... Understand the basics of coding, from simple data storage to more complex and useful programs Discover how Python works using the Visual Studio environment Master advanced techniques, including classes and object-based solutions design Extend your code with Python's powerful libraries Build web and cloud-based applications, as well as graphical user interfaces and games Test and debug your code with What can go wrong sections Understand the social aspects of professional development, and build career-ready skills from the start Whether you're a total beginner or you've tried before, Begin to Code with Python will put the power, excitement, and creativity of programming where it belongs: in your hands!

Reactive Microsystems


Jonas Bonér - 2017
    This report discusses strategies and techniques for building scalable and resilient microservices, and helps you work your way through the evolution of a scalable microservices-based system.When it comes to development speed, time-to-market, and continuous delivery, microservices can do wonders for your organization. Author Jonas Bonér, Founder and CTO of Lightbend and author of Reactive Microservices Architecture (O’Reilly), demonstrates how to refactor a monolithic application step-by-step. You’ll briefly land at single instance microliths (micro monoliths) before working your way toward a scalable and resilient microsystem.This report will help you:- Examine the essential traits of an individual reactive microservice- Understand why monolithic architectures are a problem- Manage the hard part of microservice design: the space between individual services- Shift the focus from domain objects to events in domain-driven design- Make services more efficient, performant, and stable by applying reactive programming techniques- Make the services work together, collaboratively, as a single reactive system- Move beyond CRUD towards Event Sourcing/CQRS to scale state in an event-based design- Leverage fast data in microservices to manage real-time data at scale

The Python Apprentice


Robert Smallshire - 2017
    About This Book - Taking a practical approach to studying Python - A clear appreciation of the sequence-oriented parts of Python - Emphasis on the way in which Python code is structured - Learn how to produce bug-free code by using testing tools Who This Book Is For The Python Apprentice is for anyone who wants to start building, creating and contributing towards a Python project. No previous knowledge of Python is required, although at least some familiarity with programming in another language is helpful. What You Will Learn - Learn the language of Python itself - Get a start on the Python standard library - Learn how to integrate 3rd party libraries - Develop libraries on your own - Become familiar with the basics of Python testing In Detail Experienced programmers want to know how to enhance their craft and we want to help them start as apprentices with Python. We know that before mastering Python you need to learn the culture and the tools to become a productive member of any Python project. Our goal with this book is to give you a practical and thorough introduction to Python programming, providing you with the insight and technical craftsmanship you need to be a productive member of any Python project. Python is a big language, and it's not our intention with this book to cover everything there is to know. We just want to make sure that you, as the developer, know the tools, basic idioms and of course the ins and outs of the language, the standard library and other modules to be able to jump into most projects. Style and approach We introduce topics gently and then revisit them on multiple occasions to add the depth required to support your progression as a Python developer. We've worked hard to structure the syllabus to avoid forward references. On only a few occasions do we require you to accept techniques on trust, before explaining them later; where we do, it's to deliberately establish good habits.

Computer Security: A Hands-On Approach


Wenliang Du - 2017
    Equipped with the knowledge from this book, readers will be able to design and implement software systems and applications that are secure against attacks. They will also be able to evaluate the risks faced by computer and network systems, detect common vulnerabilities in software, use proper methods to protect their systems and networks, and more importantly, apply the learned security principles to solve real-world problems.The author strongly believes in "learning by doing", so the book takes a hands-on approach. For each security principle, the book uses a series of hands-on activities to help explain the principle; readers can "touch," play with, and experiment with the principle, instead of just reading about it. For instance, if a security principle involves an attack, the book guides readers to actually launch the attack (in a contained environment). If a principle involves a security mechanism, such as firewall or Virtual Private Network (VPN), the book guides readers to implement a mini-firewall or mini-VPN. Readers can learn better from such hands-on activities.All the hands-on activities are conducted in a virtual machine image provided by the author. They can be downloaded from this URL: http: //www.cis.syr.edu/ wedu/seed/. Everything needed for the activities have already been set up; readers just need to download the VM (free), launch it using VirtualBox, and they can immediately work on the activities covered in the book. This book is based on the Ubuntu12.04 VM image. The author will regularly upgrade the VM image in every few years.Most of the activities in the book are based on the author's SEED labs, which are widely used by instructors all over the world. These labs are the results of 15 years' research, development, and testing efforts conducted by the author and his students in a project called SEED, which has been funded by the National Science Foundation since 2002.

Modern Robotics: Mechanics, Planning, and Control


Kevin M. Lynch - 2017
    Ideal for self-learning, or for courses, as it assumes only freshman-level physics, ordinary differential equations, linear algebra and a little bit of computing background. Modern Robotics presents the state-of-the-art screw-theoretic techniques capturing the most salient physical features of a robot in an intuitive geometrical way. With numerous exercises at the end of each chapter, accompanying software written to reinforce the concepts in the book, and video lectures aimed at changing the classroom experience, this is the go-to textbook for learning about this fascinating subject.

MacOS and iOS Internals, Volume I: User Mode


Jonathan Levin - 2017
    Starting with an introduction as to their layered architecture, touring private frameworks and libraries, and then delving into the internals of applications, process, thread and memory management, Mach messaging, launchd and XPC internals, and wrapping up with advanced debugging and tracing techniques using the most powerful APIs that were hitherto unknown and unused outside Apple's own applications. As with the other books in this series, the approach taken is that of deep reverse engineering, with plenty of hands-on examples, illustrations, pointers to Apple's open sources (when available) and decompilation of code (when not). The book's companion website (NewOSXBook.com) is full of tools, samples and other bonus material for this book. Due to print run issues, NOTE FIRST COPIES WILL SHIP DECEMBER.

Software Foundations, Volume 1: Logical Foundations


Benjamin C. Pierce - 2017
    It covers functional programming, basic concepts of logic, computer-assisted theorem proving, and Coq.

Python Testing with Pytest: Simple, Rapid, Effective, and Scalable


Brian Okken - 2017
    The pytest testing framework helps you write tests quickly and keep them readable and maintainable - with no boilerplate code. Using a robust yet simple fixture model, it's just as easy to write small tests with pytest as it is to scale up to complex functional testing for applications, packages, and libraries. This book shows you how.For Python-based projects, pytest is the undeniable choice to test your code if you're looking for a full-featured, API-independent, flexible, and extensible testing framework. With a full-bodied fixture model that is unmatched in any other tool, the pytest framework gives you powerful features such as assert rewriting and plug-in capability - with no boilerplate code.With simple step-by-step instructions and sample code, this book gets you up to speed quickly on this easy-to-learn and robust tool. Write short, maintainable tests that elegantly express what you're testing. Add powerful testing features and still speed up test times by distributing tests across multiple processors and running tests in parallel. Use the built-in assert statements to reduce false test failures by separating setup and test failures. Test error conditions and corner cases with expected exception testing, and use one test to run many test cases with parameterized testing. Extend pytest with plugins, connect it to continuous integration systems, and use it in tandem with tox, mock, coverage, unittest, and doctest.Write simple, maintainable tests that elegantly express what you're testing and why.What You Need: The examples in this book are written using Python 3.6 and pytest 3.0. However, pytest 3.0 supports Python 2.6, 2.7, and Python 3.3-3.6.

Truth, Lies & Statistics: How to Lie with Statistics (Bite-Size Stats Series Book 1)


Lee Baker - 2017
    Cheese consumption, margarine and drowning by falling out of fishing boats. This book has got it all. A roller coaster of a book in 8 witty chapters, this might just be the most entertaining statistics book you’ll read this year. Did you know that pirates caused global warming, and that a statistical lie gave rise to one of the fastest growing religions on the planet? Probably not – you might have missed the memo that day. Did you also know that organic food is the real cause of autism, and that Mexican lemons are a major cause of deaths on American roads? They’re true, honest – and this book has got the stats to prove it. In this eye-opening book, award winning statistician and author Lee Baker uncovers the key tricks of the trade used by politicians, corporations and other statistical conmen to deceive, hoodwink and otherwise dupe the unwary. Like how the ex-Chancellor of the Exchequer attempted to persuade us that 5 lots of 10 make 150, or how the President of the United States tried to convince us that 420,000 is a larger number than 782,000. Nice try boys, but we were awake that day! In his trademark sardonic style, the author reveals the secrets of how the statistical hustlers manipulate and misrepresent data for political or commercial gain – and often get away with it. Written as a layman’s guide to lying, cheating and deceiving with data and statistics, there’s not a dull page in sight! Discover the exciting world of statistical cheating and persuasive misdirection. Get this book, TODAY!

Pro C# 7: With .NET and .NET Core


Andrew Troelsen - 2017
    Now in its 8th edition, you’ll find all the very latest C# 7.1 and .NET 4.7 features here, along with four brand new chapters on Microsoft’s lightweight, cross-platform framework, .NET Core, up to and including .NET Core 2.0. Coverage of ASP.NET Core, Entity Framework (EF) Core, and more, sits alongside the latest updates to .NET, including Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), and ASP.NET MVC. Dive in and discover why Pro C# has been a favorite of C# developers worldwide for over 15 years. Gain a solid foundation in object-oriented development techniques, attributes and reflection, generics and collections as well as numerous advanced topics not found in other texts (such as CIL opcodes and emitting dynamic assemblies). With the help of this book you’ll have the confidence to put C# into practice and explore the .NET universe on your own terms. What You Will Learn Discover the latest C# 7.1 features, from tuples to pattern matching Hit the ground running with Microsoft’s lightweight, open source .NET Core platform, including ASP.NET Core MVC, ASP.NET Core web services, and Entity Framework Core Find complete coverage of XAML, .NET 4.7, and Visual Studio 2017 Understand the philosophy behind .NET and the new, cross-platform alternative, .NET Core

Developer Hegemony: The Future of Labor


Erik Dietrich - 2017
    The modern economy—the world itself—relies on technology. Demand for the people who can produce it far outweighs the supply. So why do developers occupy largely subordinate roles in the corporate structure? Developer Hegemony explores the past, present, and future of the corporation and what it means for developers. While it outlines problems with the modern corporate structure, it’s ultimately a play-by-play of how to leave the corporate carnival and control your own destiny. And it’s an emboldening, specific vision of what software development looks like in the world of developer hegemony—one where developers band together into partner firms of “efficiencers,” finally able to command the pay, respect, and freedom that’s earned by solving problems no one else can. Developers, if you grow tired of being treated like geeks who can only be trusted to take orders and churn out code, consider this your call to arms. Bring about the autonomous future that’s rightfully yours. It’s time for developer hegemony.

Java A Beginner's Guide: A Beginner to Expert Guide to Learning the Basics of Java Programming


M.R. Kotiyana - 2017
    You will be able to start from scratch without having any previous exposure to any programming language. By the end of this book, you will have the skills to be a capable programmer, or at least know what is involved with how to read and write code. Afterward you should be armed with the knowledge required to feel confident in learning more. You should have general computer skills before you get started. After this you’ll know what it takes to at least look at code without your head spinning. Java A Beginner's Guide : A Beginner to Expert Guide to Learning the Basics of Java Programming

Swift Style: An Opinionated Guide to an Opinionated Language


Erica Sadun - 2017
    From spacing, bracing, and semicolons to proper API style, discover the whys behind each recommendation, and add to or establish your own house style guidelines. This practical, powerful, and opinionated guide offers the best practices you need to know to work successfully in this equally opinionated programming language.Apple's Swift programming language has finally reached stability, and developers are demanding to know how to program the language properly. Swift Style guides you through the ins and outs of Swift programming best practices. This is the first best practices book for serious, professional Swift programmers and for programmers who want to shine their skills to be hired in this demanding market.A style guide offers a consistent experience of well-crafted code that lets you focus on the code's underlying meaning, intent, and implementation. This book doesn't offer canonical answers on Swift coding style. It explores the areas of Swift where structure comes into play. Whether you're developing a personal style or a house style, there are always ways to enhance your code choices. You'll find here the ideas and principles to establish or enhance your own best style practices.Begin with simple syntactical styling. Strengthen code bracing for easy readability. Style your closures for safety and resilience. Perfect spacing and layout. Master literal initialization and typing. Optimize control flow layout and improve conditional style choices. Transition from Objective-C and move code into Swift the right way. Boost API design using proper naming and labeling. Elevate defaulted arguments and variadics to their right places. Finally, Erica offers her own broad recommendations on good coding practice.What You Need: Recent version of the Swift programming language

Computer Science Principles: The Foundational Concepts of Computer Science - For AP® Computer Science Principles


Kevin Hare - 2017
    Just because this is a relatively new field of study, it should not be scary to learn or thought to be too difficult to understand. Anyone who has ever turned on a phone or surfed the Internet should have a basic understanding of what happens when the mouse is clicked or the screen is touched (and how fast it happens!). How does a simple process convert to 1’s and 0’s and travel thousands of miles in a blink of the eye? What is an IP address? What do IP/TCP, DNS, HTML, and CSS stand for? How do large movies and thousands of songs all fit onto a hard drive? How can secrets be sent in plain sight? These questions are answered in Computer Science Principles: The Foundational Concepts of Computer Science, plus spreadsheets, photo-editing, web-design (HTML and CSS), learning to code with JavaScript, and more!

Tiny Python 3.6 Notebook: Curated Examples (Treading on Python)


Matt Harrison - 2017
    If you want a well formatted ebook with those examples, this is the book. If you only want an online version, don't buy this. Go to the github version under the mattharrison account. The content is available for free there. If you prefer a physical copy that has extra space to jot notes for your next project, consider purchasing the paperback version. Warning, this is not an introduction to Python. Rather it is a notebook containing curated examples for Python 3 as well as the new features found in Python 3.6. It is designed to accompany technical training or aid those who want a quick refresher to the Python syntax. It provides examples for: REPL Types Unicode String Formatting Functions Classes Looping Exceptions Decorators Class Decorators Metaclasses Generators Coroutines Comprehensions Context Managers Type Annotations and more Matt Harrison has many years of Python experience across the domains of search, build management and testing, business intelligence, data science, machine learning, and storage. He currently runs MetaSnake, a Python training and consultancy shop.

Coding as a Playground: Programming and Computational Thinking in the Early Childhood Classroom


Marina Umaschi Bers - 2017
    Readers will learn how coding can engage children as producers—and not merely consumers—of technology in a playful way. You will come away from this groundbreaking work with an understanding of how coding promotes developmentally appropriate experiences such as problem solving, imagination, cognitive challenges, social interactions, motor skills development, emotional exploration, and making different choices. You will also learn how to integrate coding into different curricular areas to promote literacy, math, science, engineering, and the arts through a project-based approach.

The Measure of All Minds: Evaluating Natural and Artificial Intelligence


Jose Hernandez-Orallo - 2017
    By replacing the dominant anthropocentric stance with a universal perspective where living organisms are considered as a special case, long-standing questions in the evaluation of behavior can be addressed in a wider landscape. Can we derive task difficulty intrinsically? Is a universal g factor - a common general component for all abilities - theoretically possible? Using algorithmic information theory as a foundation, the book elaborates on the evaluation of perceptual, developmental, social, verbal and collective features and critically analyzes what the future of intelligence might look like.

Research Methods in Human-Computer Interaction


Jonathan Lazar - 2017
    Since the first edition was published in 2009, the book has been adopted for use at leading universities around the world, including Harvard University, Carnegie-Mellon University, the University of Washington, the University of Toronto, HiOA (Norway), KTH (Sweden), Tel Aviv University (Israel), and many others. Chapters cover a broad range of topics relevant to the collection and analysis of HCI data, going beyond experimental design and surveys, to cover ethnography, diaries, physiological measurements, case studies, crowdsourcing, and other essential elements in the well-informed HCI researcher's toolkit. Continual technological evolution has led to an explosion of new techniques and a need for this updated 2nd edition, to reflect the most recent research in the field and newer trends in research methodology.This Research Methods in HCI revision contains updates throughout, including more detail on statistical tests, coding qualitative data, and data collection via mobile devices and sensors. Other new material covers performing research with children, older adults, and people with cognitive impairments.

Problem Solving in Data Structures & Algorithms Using C++: Programming Interview Guide


Hemant Jain - 2017
    The book is easy to follow and is written for interview preparation point of view. In various books, the examples are solved in various languages like Go, C, C++, Java, C#, Python, VB, JavaScript and PHP. GitHub Repositories https: //github.com/Hemant-Jain-Author Book's Composition This book is designed for interviews so in Chapter 0, various preparation plans are proposed. Then in chapters 1, a brief introduction of the programming language and concept of recursion is explained. A number of problems based on recursion and array are explained. Then in the coming chapter, we will be looking into complexity analysis. Then we will be looking into Sorting & Searching techniques. Then will look into the various data structures and their algorithms. We will be looking into a Linked List, Stack, Queue, Trees, Heap, Hash Table and Graphs. Then we will be looking into algorithm analysis, we will be looking into Brute Force algorithms, Greedy algorithms, Divide & Conquer algorithms, Dynamic Programming, and Backtracking. In the end, we will be looking into System Design, which will give a systematic approach for solving the design problems in an Interview. Table of Contents Chapter 0: How to use this book. Chapter 1: Introduction - Programming Overview Chapter 2: Algorithms Analysis Chapter 3: Approach to solve algorithm design problems Chapter 4: Abstract Data Type Chapter 5: Searching Chapter 6: Sorting Chapter 7: Linked List Chapter 8: Stack Chapter 9: Queue Chapter 10: Tree Chapter 11: Priority Queue Chapter 12: Hash-Table Chapter 13: Graphs Chapter 14: String Algorithms Chapter 15: Algorithm Design Techniques Chapter 16: Brute Force Algorithm Chapter 17: Greedy Algorithm Chapter 18: Divide & Conquer Chapter 19: Dynamic Programming Chapter 20: Backtracking Chapter 21: Complexity Theory Chapter 22: Interview Strategy Chapter 23: System Design

Make Your Own Neural Network: An In-depth Visual Introduction For Beginners


Michael Taylor - 2017
    A step-by-step visual journey through the mathematics of neural networks, and making your own using Python and Tensorflow.

C++17 STL Cookbook


Jacek Galowicz - 2017
    Reduce the development time for your applications. - Understand the scope and power of STL features to deal with real-world problems. - Compose your own algorithms without forfeiting the simplicity and elegance of the STL way. Who This Book Is For This book is for intermediate-to-advanced C++ programmers who want to get the most out of the Standard Template Library of the newest version of C++: C++ 17. What You Will Learn - Learn about the new core language features and the problems they were intended to solve - Understand the inner workings and requirements of iterators by implementing them - Explore algorithms, functional programming style, and lambda expressions - Leverage the rich, portable, fast, and well-tested set of well-designed algorithms provided in the STL - Work with strings the STL way instead of handcrafting C-style code - Understand standard support classes for concurrency and synchronization, and how to put them to work - Use the filesystem library addition available with the C++17 STL In Detail C++ has come a long way and is in use in every area of the industry. Fast, efficient, and flexible, it is used to solve many problems. The upcoming version of C++ will see programmers change the way they code. If you want to grasp the practical usefulness of the C++17 STL in order to write smarter, fully portable code, then this book is for you. Beginning with new language features, this book will help you understand the language's mechanics and library features, and offers insight into how they work. Unlike other books, ours takes an implementation-specific, problem-solution approach that will help you quickly overcome hurdles. You will learn the core STL concepts, such as containers, algorithms, utility classes, lambda expressions, iterators, and more, while working on practical real-world recipes. These recipes will help you get the most from the STL and show you how to program in a better way. By the end of the book, you will be up to date with the latest C++17 features and save time and effort while solving tasks elegantly using the STL. Style and approach This recipe-based guide will show you how to make the best use of C++ together with the STL to squeeze more out of the standard language

Machine Learning for Humans


Vishal Maini - 2017
    The big picture of arti cial intelligence and machine learning—past, present, and future.Part 2.1: Supervised Learning. Learning with an answer key. Introducing linear regression, loss functions, over tting, and gradient descent.Part 2.2: Supervised Learning II. Two methods of classi cation: logistic regression and support vector machines (SVMs).Part 2.3: Supervised Learning III. Non-parametric learners: k-nearest neighbors, decision trees, random forests. Introducing cross-validation, hyperparameter tuning, and ensemble models.Part 3: Unsupervised Learning. Clustering: k-means, hierarchical. Dimensionality reduction: principal components analysis (PCA), singular value decomposition (SVD).Part 4: Neural Networks & Deep Learning. Why, where, and how deep learning works. Drawing inspiration from the brain. Convolutional neural networks (CNNs), recurrent neural networks (RNNs). Real-world applications.Part 5: Reinforcement Learning. Exploration and exploitation. Markov decision processes. Q-learning, policy learning, and deep reinforcement learning. The value learning problem.Appendix: The Best Machine Learning Resources. A curated list of resources for creating your machine learning curriculum.

Mastering Ruby Closures


Benjamin Tan Wei Hao - 2017
    To be a truly effective Ruby programmer, it’s not enough just to understand these features—you need to know how to use them in practice. Discover how to write code that is elegant, expressive, and a joy to use, and gain a deep understanding of these concepts so you can work with third-party gems and libraries more easily. Whether you are an intermediate or a seasoned Rubyist, you’ll find good use for these concepts in your code.

Human and Machine Hearing: Extracting Meaning from Sound


Richard F. Lyon - 2017
    Drawing on over thirty-five years of experience in analyzing hearing and building systems, Richard F. Lyon explains how we can now build machines with close-to-human abilities in speech, music, and other sound-understanding domains. He explains human hearing in terms of engineering concepts, and describes how to incorporate those concepts into machines for a wide range of modern applications. The details of this approach are presented at an accessible level, to bring a diverse range of readers, from neuroscience to engineering, to a common technical understanding. The description of hearing as signal-processing algorithms is supported by corresponding open-source code, for which the book serves as motivating documentation.

Optimizing Collections


Károly Lőrentey - 2017
    Throughout the book, we benchmark everything — with some surprising results. We implement custom data structures with value semantics and copy-on-write behavior such as sorted arrays, binary trees, red-black trees, and B-trees.Even if you never implement your own collections, this book helps you reason about the performance of Swift code.

Java For Dummies (For Dummies (Computers))


Barry A. Burd - 2017
    With a focus on reusing existing code, it quickly and easily shows you how to create basic Java objects, work with Java classes and methods, understand the value of variables, learn to control program flow with loops or decision-making statements, and so much more! Java is everywhere, runs on almost any computer, and is the engine that drives the coolest applications. Written for anyone who’s ever wanted to tackle programming with Java but never knew quite where to begin, this bestselling guide is your ticket to success! Featuring updates on everything you’ll encounter in Java 9—and brimming with tons of step-by-step instruction—it’s the perfect resource to get you up and running with Java in a jiffy! Discover the latest features and tools in Java 9 Learn to combine several smaller programs to create a bigger program Create basic Java objects and reuse code Confidently handle exceptions and events If you’re ready to jump into Java, this bestselling guide will help keep your head above water!

Coding for Parents: Everything You Need to Know to Confidently Help with Homework


Frazer Wilson - 2017
    . . so you can teach your kids! Unlock the mysteries of coding with this easy-to-follow and well-illustrated guide—and help your kids ace their coding homework! Organized by age and grade, It takes you by the hand and leads you through the basics, building your knowledge of key concepts, terminology, and techniques, and giving you the language you'll need to explain it all to your child. Instructional diagrams and compelling illustrations appear throughout to enhance your understanding, and the book covers the most popular software, including Scratch, Python, and Java.

Deep Learning for Natural Language Processing: Develop Deep Learning Models for your Natural Language Problems


Jason Brownlee - 2017
    In this new laser-focused Ebook, finally cut through the math, research papers and patchwork descriptions about natural language processing. Using clear explanations, standard Python libraries and step-by-step tutorial lessons you will discover what natural language processing is, the promise of deep learning in the field, how to clean and prepare text data for modeling, and how to develop deep learning models for your own natural language processing projects.

Deep Learning for Computer Architects


Brandon Reagen - 2017
    The success of deep learning techniques in solving notoriously difficult classification and regression problems has resulted in their rapid adoption in solving real-world problems. The emergence of deep learning is widely attributed to a virtuous cycle whereby fundamental advancements in training deeper models were enabled by the availability of massive datasets and high-performance computer hardware.This text serves as a primer for computer architects in a new and rapidly evolving field. We review how machine learning has evolved since its inception in the 1960s and track the key developments leading up to the emergence of the powerful deep learning techniques that emerged in the last decade. Next we review representative workloads, including the most commonly used datasets and seminal networks across a variety of domains. In addition to discussing the workloads themselves, we also detail the most popular deep learning tools and show how aspiring practitioners can use the tools with the workloads to characterize and optimize DNNs.The remainder of the book is dedicated to the design and optimization of hardware and architectures for machine learning. As high-performance hardware was so instrumental in the success of machine learning becoming a practical solution, this chapter recounts a variety of optimizations proposed recently to further improve future designs. Finally, we present a review of recent research published in the area as well as a taxonomy to help readers understand how various contributions fall in context.About the AuthorBrandon Reagen is a Ph.D. candidate at Harvard University. He received his B.S. degree in Computer Systems Engineering and Applied Mathematics from University of Massachusetts, Amherst in 2012 and his M.S. in Computer Science from Harvard in 2014. His research spans the fields of Computer Architecture, VLSI, and Machine Learning with specific interest in designing extremely efficient hardware to enable ubiquitous deployment of Machine Learning models across all compute platforms.Robert Adolf is a Ph.D. candidate in computer architecture at Harvard University. After earning a B.S. in Computer Science from Northwestern University in 2005, he spent four years doing benchmarking and performance analysis of supercomputers at the Department of Defense. In 2009, he joined Pacific Northwest National Laboratory as a research scientist, where he lead a team building large-scale graph analytics on massively multithreaded architectures. His research interests revolve around modeling, analysis, and optimization techniques for high-performance software, with a current focus on deep learning algorithms. His philosophy is that the combination of statistical methods, code analysis, and domain knowledge leads to better tools for understanding and building fast systems.Paul Whatmough leads research on computer architecture for Machine Learning at ARM Research, Boston, MA. He is also an Associate in the School of Engineering and Applied Science at Harvard University. Dr. Whatmough received the B.Eng. degree (with first class Honors) from the University of Lancaster, U.K., M.Sc. degree (with distinction) from the University of Bristol, U.K., and Doctorate degree from University College London, U.K. His research interests span algorithms, computer architecture, and circuits. He has previously led various projects on hardware accelerators, Machine Learning, SoC architecture, Digital Signal Processing (DSP), variation tolerance, and supply voltage noise.Gu-Yeon Wei is Gordon McKay Professor of Electrical Engineering and Computer Science in the School of Engineering and Applied Sciences (SEAS) at Harvard University. He received his B.S., M.S., and Ph.D. degrees in Electrical Engineering from Stanford University in 1994, 1997, and 2001, respectively. His research interests span multiple layers of a computing system: mixed-signal integrated circuits, computer architecture, and design tools for efficient hardware. His research efforts focus on identifying synergistic opportunities across these layers to develop energy-efficient solutions for a broad range of systems from flapping-wing microrobots to machine learning hardware for IoT/edge devices to specialized accelerators for large-scale servers.David Brooks is the Haley Family Professor of Computer Science in the School of Engineering and Applied Sciences at Harvard University. Prior to joining Harvard, he was a research staff member at IBM T. J. Watson Research Center. Prof. Brooks received his B.S. in Electrical Engineering at the University of Southern California and M.A. and Ph.D. degrees in Electrical Engineering at Princeton University. His research interests include resilient and power-efficient computer hardware and software design for high-performance and embedded systems. Prof. Brooks is a Fellow of the IEEE and has received several honors and awards including the ACM Maurice Wilkes Award, ISCA Influential Paper Award, NSF CAREER award, IBM Faculty Partnership Award, and DARPA Young Faculty Award.Margaret Martonosi is the Hugh Trumbull Adams '35 Professor of Computer Science at Princeton University, where she has been on the faculty since 1994. She is also currently serving a four-year term as Director of the Keller Center for Innovation in Engineering Education. Martonosi holds affiliated faculty appointments in Princeton EE, the Center for Information Technology Policy (CITP), the Andlinger Center for Energy and the Environment, and the Princeton Environmental Institute. She also holds an affiliated faculty appointment in Princeton EE. From 2005-2007, she served as Associate Dean for Academic Affairs for the Princeton University School of Engineering and Applied Science. In 2011, she served as Acting Director of Princeton's Center for Information Technology Policy (CITP). From August 2015 through March, 2017, she served as a Jefferson Science Fellow within the U.S. Department of State.Martonosi's research interests are in computer architecture and mobile computing, with particular focus on power-efficient systems. Her work has included the development of the Wattch power modeling tool and the Princeton ZebraNet mobile sensor network project for the design and real-world deployment of zebra tracking collars in Kenya. Her current research focuses on hardware-software interface approaches to manage heterogeneous parallelism and power-performance tradeoffs in systems ranging from smartphones to chip multiprocessors to large-scale data centers.Martonosi is a Fellow of both IEEE and ACM. Notable awards include the 2010 Princeton University Graduate Mentoring Award, the 2013 NCWIT Undergraduate Research Mentoring Award, the 2013 Anita Borg Institute Technical Leadership Award, the 2015 Marie Pistilli Women in EDA Achievement Award, the 2015 ISCA Long-Term Influential Paper Award, and the 2017 ACM SIGMOBILE Test-of-Time Award. In addition to many archival publications, Martonosi is an inventor on seven granted US patents, and has co-authored two technical reference books on power-aware computer architecture. She has served on the Board of Directors of the Computing Research Association (CRA), and will co-chair CRA-W from 2017-2020. Martonosi completed her Ph.D. at Stanford University, and also holds a Master's degree from Stanford and a bachelor's degree from Cornell University, all in Electrical Engineering.

Windows Internals, Part 1: System Architecture, Processes, Threads, Memory Management, and More


Pavel Yosifovich - 2017
    Led by a team of internals experts, this classic guide has been fully updated for Windows 10 and Windows Server 2016. Whether you are a developer or an IT professional, you'll get critical, insider perspectives on how Windows operates. And through hands-on experiments, you'll experience its internal behavior firsthand-knowledge you can apply to improve application design, debugging, system performance, and support. This book will help you: - Understand the Window system architecture and its most important entities, such as processes and threads - Examine how processes manage resources and threads scheduled for execution inside processes - Observe how Windows manages virtual and physical memory - Dig into the Windows I/O system and see how device drivers work and integrate with the rest of the system - Go inside the Windows security model to see how it manages access, auditing, and authorization, and learn about the new mechanisms in Windows 10 and Server 2016

Mastering PostgreSQL in Application Development


Dimitri Fontaine - 2017
    The book addresses specifically the PostgreSQL RDBMS and answers practical questions every developer is confronted with when using PostgreSQL.You will learn best practices that help with integrating SQL into your own workflow, and through the many examples provided, you’ll see all the reasons why you might be interested in doing more in SQL. Primarily, it means writing fewer lines of code.

Development Workflows for Data Scientists: Enabling Fast, Efficient, and Reproducible Results for Data Science Teams


Ciara Byrne - 2017
    Data scientist positions are consistently in the top-ranked best job listings, and new job opportunities with titles like data engineer and data analyst are opening faster than they can be filled. The explosion of data collection and subsequent backlog of big data projects in every industry has lead to the situation in which "we’re drowning in data and starved for insight.”To anyone who lived through the growth of software engineering in the previous two decades, this is a familiar scene. The imperative to maintain a competitive edge in software by rapidly delivering higher-quality products to market, led to a revolution in software development methods and tooling; it is the manifesto for Agile software development, Agile operations, DevOps, Continuous Integration, Continuous Delivery, and so on.Much of the analysis performed by scientists in this fast-growing field occurs as software experimentation in languages like R and Python. This raises the question: what can data science learn from so ware development?Ciara Byrne takes us on a journey through the data science and analytics teams of many different companies to answer this question. She leads us through their practices and priorities, their tools and techniques, and their capabilities and concerns. It’s an illuminating journey that shows that even though the pace of change is rapid and the desire for the knowledge and insight from data is ever growing, the dual disciplines of software engineering and data science are up for the task.

Mastering Machine Learning with Spark 2.x


Alex Tellez - 2017
    We assume that you already know the machine learning concepts and algorithms and have Spark up and running (whether on a cluster or locally) and have a basic knowledge of the various libraries contained in Spark. What You Will Learn Use Spark streams to cluster tweets online Run the PageRank algorithm to compute user influence Perform complex manipulation of DataFrames using Spark Define Spark pipelines to compose individual data transformations Utilize generated models for off-line/on-line prediction Transfer the learning from an ensemble to a simpler Neural Network Understand basic graph properties and important graph operations Use GraphFrames, an extension of DataFrames to graphs, to study graphs using an elegant query language Use K-means algorithm to cluster movie reviews dataset In Detail The purpose of machine learning is to build systems that learn from data. Being able to understand trends and patterns in complex data is critical to success; it is one of the key strategies to unlock growth in the challenging contemporary marketplace today. With the meteoric rise of machine learning, developers are now keen on finding out how can they make their Spark applications smarter.This book gives you access to transform data into actionable knowledge. The book commences by defining machine learning primitives by the MLlib and H2O libraries. You will learn how to use Binary classification to detect the Higgs Boson particle in the huge amount of data produced by CERN particle collider and classify daily health activities using ensemble Methods for Multi-Class Classification.Next, you will solve a typical regression problem involving flight delay predictions and write sophisticated Spark pipelines. You will analyze Twitter data with help of the doc2vec algorithm and K-means clustering. Finally, you will build different pattern mining models using MLlib, perform complex manipulation of DataFrames using Spark and Spark SQL, and deploy your app in a Spark streaming environment. Style and approach This book takes a practical approach to help you get to grips with using Spark for analytics and to implement machine learning algorithms. We'll teach you about advanced applications of machine learning through illustrative examples. These examples will equip you to harness the potential of machine learning, through Spark, in a variety of enterprise-grade systems.

PCB-RE: Tools & Techniques


Keng Tiong Ng - 2017
    He intends to achieve this through several approaches: 1. Provide readers with a sweeping view of the PCB-RE landscape on the challenges faced by today's increasingly complex designs and deterrence measures, and the tools and techniques devised to overcome these obstacles. 2. Enlist experts and enthusiasts to share their valuable knowledge and experiences in their fields of work, so readers get a better idea of the intricate processes and equipment involved. 3. Make available resources and DIY projects that readers can tap on to increase their arsenal of tools to enable them to improve and increase their chances of success at attempting PCB-RE. This book is not the work of an individual but a collective effort by several people. May the invaluable insights offered by these individuals be a source of inspiration to the many engineers out there who have embarked or are considering to take up this challenging but rewarding journey of PCB reverse engineering.

Exam Ref 70-742 Identity with Windows Server 2016


Charlie Russel - 2017
    Designed for experienced IT professionals ready to advance their status, Exam Ref focuses on the critical-thinking and decision-making acumen needed for success at the MCSA level. Focus on the expertise measured by these objectives: - Install and configure Active Directory Domain Services (AD DS) - Manage and maintain AD DS - Create and manage Group Policy - Implement Active Directory Certificate Services (AD CS) - Implement identity federation and access solutions This Microsoft Exam Ref: - Organizes its coverage by exam objectives - Features strategic, what-if scenarios to challenge you - Assumes you have experience working with Windows Server, Windows clients, and virtualization; are familiar with core networking technologies, and are aware of basic security best practices

The Next Step: Exponential Life


Aubrey de Grey - 2017
    This book's premise is that humanity is at the beginning of a technological revolution that is evolving at a much faster pace than earlier ones--a revolution is so far-reaching it is destined to generate transformations we can only begin to imagine. Contributors include Aubrey D.N.J. de Grey, Jonathan Rossiter, Joseph A. Paradiso, Kevin Warwick, Huma Shah, Ramon Lopez de Mantaras, Helen Papagiannis, Jay David Bolter, Maria Engberg, Robin Hanson, Stuart Russell, Darrell M. West, Francisco Gonzalez, Chris Skinner, Steven Monroe Lipkin, S. Matthew Liao, James Giordano, Luciano Floridi, Sean O Heigeartaigh and Martin Rees.

An Introduction to Description Logic


Franz Baader - 2017
    DLs have recently gained increased importance since they form the logical basis of widely used ontology languages, in particular the web ontology language OWL. Written by four renowned experts, this is the first textbook on description logics. It is suitable for self-study by graduates and as the basis for a university course. Starting from a basic DL, the book introduces the reader to their syntax, semantics, reasoning problems and model theory and discusses the computational complexity of these reasoning problems and algorithms to solve them. It then explores a variety of reasoning techniques, knowledge-based applications and tools and it describes the relationship between DLs and OWL.

Core Data by Tutorials Fourth Edition: IOS 11 and Swift 4


raywenderlich.com Team - 2017
    Learn Core Data with Swift!Take control of your data in iOS apps using Core Data, through a series of high quality hands-on tutorials.Start with with the basics like setting up your own Core Data Stack all the way to advanced topics like syncing with iCloud, migration, performance, multithreading, and more! By the end of this book, you'll have hands-on experience with Core Data and will be ready to use it in your own apps.Who This Book Is For: This book is for intermediate iOS developers who already know the basics of iOS and Swift development but want to learn how to use Core Data to save data in their apps.Topics Covered in Core Data by Tutorials: Your First Core Data App: You'll click File\New Project and write a Core Data app from scratch!NSManagedObject Subclasses: Learn how to create your own subclasses of NSManagedObject - the base data storage class in Core Data.The Core Data Stack: Learn how the main objects in Core Data work together, so you can move from the starter Xcode template to your own system.Intermediate Fetching: This chapter covers how to fetch data with Core Data - fetch requests, predicates, sorting and asynchronous fetching.NSFetchedResultsController: Learn how to make Core Data play nicely with table views using NSFetchedResultsController!Versioning and Migration: In this chapter, you'll learn how to migrate your user's data as they upgrade through different versions of your data model.Unit Tests: In this chapter, you'll learn how to set up a test environment for Core Data and see examples of how to test your models.Measuring and Boosting Performance: Learn how to measure your app's performance with various Xcode tools and deal with slow spots in your code.Multiple Managed Object Contexts: Learn how multiple managed object contexts can improve performance and make for cleaner code.

Plain Text: The Poetics of Computation


Dennis Tenen - 2017
    Computers—from electronic books to smart phones—play an active role in our social lives. Our technological choices thus entail theoretical and political commitments. Dennis Tenen takes up today's strange enmeshing of humans, texts, and machines to argue that our most ingrained intuitions about texts are profoundly alienated from the physical contexts of their intellectual production. Drawing on a range of primary sources from both literary theory and software engineering, he makes a case for a more transparent practice of human–computer interaction. Plain Text is thus a rallying call, a frame of mind as much as a file format. It reminds us, ultimately, that our devices also encode specific modes of governance and control that must remain available to interpretation.

Fundamentals of Database System


Elmasri Ramez - 2017
    Fundamentals Of Database System 7Th Edition by Elmasri Ramez And Navathe Shamkant, Pearson India, 2017, Paperback, 9789332582705

Beginning Angular with Typescript (updated to Angular 5)


Greg Lim - 2017
    Reuse your code and build fast and high performing apps for any platform be it web, mobile web, native mobile and native desktop. You use small manageable components to build a large powerful app. No more wasting time hunting for DOM nodes! In this book, we take you on a fun, hands-on and pragmatic journey to master Angular from a web development point of view. You'll start building Angular apps within minutes. Every section is written in a bite-sized manner and straight to the point as I don’t want to waste your time (and most certainly mine) on the content you don't need. In the end, you will have what it takes to develop a real-life app. About the Reader This book is for developers with basic familiarity with HTML, CSS, Javascript and object-oriented programming. No TypeScript or AngularJS experience needed. About the Author Greg Lim is a technologist and author of several programming books. Greg has many years in teaching programming in tertiary institutions and he places special emphasis on learning by doing. Table of Contents Introduction Creating and Using Components Bindings Working with Components Conditional Rendering, Pipes and Ng-Content Template Driven Forms Model Driven Forms Introduction to Observables Getting Data From RESTful APIs with Observables Routing Structuring Large Apps With Modules C.R.U.D. with Firebase/Firestore Authentication with Firebase/Firestore Implementing for Multiple Users

PHP and MySQL for Dynamic Web Sites: Visual Quickpro Guide


Larry Ullman - 2017
    Combine these great open source technologies with Larry Ullman's PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide, Fifth Edition, and there's no limit to the powerful, interactive Web sites you can create. With step-by-step instructions, complete scripts, and expert tips to guide you, Ullman gets right down to business. After grounding you with practical introductions to both PHP 7 and MySQL, he covers core issues ranging from security to session management to jQuery and object-oriented programming techniques. Ullman walks you through creating several sample applications, stressing the latest features and techniques throughout.

PHP 7 Data Structures and Algorithms


Mizanur Rahman - 2017
    A basic understanding of PHP data types, control structures, and other basic features is required What You Will Learn - Gain a better understanding of PHP arrays as a basic data structure and their hidden power - Grasp how to analyze algorithms and the Big O Notation - Implement linked lists, double linked lists, stack, queues, and priority queues using PHP - Work with sorting, searching, and recursive algorithms - Make use of greedy, dynamic, and pattern matching algorithms - Implement tree, heaps, and graph algorithms - Apply PHP functional data structures and built-in data structures and algorithms In Detail PHP has always been the the go-to language for web based application development, but there are materials and resources you can refer to to see how it works. Data structures and algorithms help you to code and execute them effectively, cutting down on processing time significantly. If you want to explore data structures and algorithms in a practical way with real-life projects, then this book is for you. The book begins by introducing you to data structures and algorithms and how to solve a problem from beginning to end using them. Once you are well aware of the basics, it covers the core aspects like arrays, listed lists, stacks and queues. It will take you through several methods of finding efficient algorithms and show you which ones you should implement in each scenario. In addition to this, you will explore the possibilities of functional data structures using PHP and go through advanced algorithms and graphs as well as dynamic programming. By the end, you will be confident enough to tackle both basic and advanced data structures, understand how they work, and know when to use them in your day-to-day work Style and approach An easy-to-follow guide full of examples of implementation of data structures and real world examples to solve the problems faced. Each topic is first explained in general terms and then implemented using step by step explanation so that developers can understand each part of the discussion without any problem.

Long Short-Term Memory Networks With Python: Develop Sequence Prediction Models With Deep Learning


Jason Brownlee - 2017
    In this laser-focused Ebook, finally cut through the math, research papers and patchwork descriptions about LSTMs. Using clear explanations, standard Python libraries and step-by-step tutorial lessons you will discover what LSTMs are, and how to develop a suite of LSTM models to get the most out of the method on your sequence prediction problems.

Cisco CCNA in 60 Days: Exam 100-105, Exam 200-105, Exam 200-125


Paul Browning - 2017
    Written by a CCNP and three CCIEs it's all you need to pass the new style exams. FREE SUPPORT The book is supported for free so just come over and register your copy to get free access to over $400 worth of videos, exams, cram guides - https://www.in60days.com/free/ccnain6... ABOUT THE BOOK Do any of the following problems sound familiar to you? “I just don’t know where to start studying. I feel overwhelmed by the information.” “I’ve bought all the CBT-style videos and books, and have even been on a course, but I don’t feel ready to take the exam and I don’t know if I ever will.” “I’ve been studying for a long time now, but I haven’t booked the exam yet because I just don’t feel ready.” For every ten students who start out towards the CCNA qualification, nine quit. They don't quit because of laziness but because they became overwhelmed with information and didn't even know where to start. They sat down to study from one of the 'big name' manuals and half an hour later found themselves staring blankly at the same page. Can you imagine how frustrating that feels? You see, most authors throw you in at the deep end and expect you to get on with it. They forget that you have a full-time job, a long journey back home, family commitments and any number of challenges going on in your life. The last thing you have time for is to write out a detailed study plan with plenty of review sessions. If only somebody could tell you what to study each day, every day. If only you could open your study guide and see which bit of theory to read, which lab to do and which exam to take. You could then get on with the task of studying and getting that exam nailed. This is where Cisco CCNA in 60 Days comes in. Written in response to feedback from thousands of students using my online CCNA in 60 days program, my classroom courses and my other online Cisco training websites this book is the final piece in the studying puzzle. HOW IT WORKS Every day you read your theory module, you review yesterdays lesson, do a lab and then answer some review questions. The next day you do the same until you reach the review sessions where you cement all your knowledge with more labs and review as well as some practice exams. If that wasn't enough, you have a cram guide to read daily and an online Subnetting review site to really hone your subnetting skills. At the 30 day mark you can take your CCENT exam and move into your ICND2 study sessions or just take your CCNA exam at the end of 60 days. If you fall behind no problem, just pick up where you left off. Having a problem with motivation and distractions? No problem, just read the detailed goal setting guide to turbo boost your productivity and motivation. WHAT'S COVERED? Every subject Cisco want you to know for your exams is covered with labs, theory, exams, reviews and crams. From RIP to OSPF, from VLSM to CIDR, IPv4 to IPv6, STP to CDP. Every exam topic is covered in detail many times over. Just when you think you are ready you are hit with challenge labs and more exams to ensure you are more than ready for the tricky Cisco exams. There are over 60 hand-on labs in total to help you build your configuration skills and confidence.

The Road to React with Firebase


Robin Wieruch - 2017
    The book dives into the combination of both libraries and implements with you a web application along the way with authentication and a realtime database.

Confident Coding: Master the Fundamentals of Code and Supercharge Your Career


Rob Percival - 2017
    Everyone has a digital life, but too few truly understand how the software that dominates the world actually works. Coding is one of the most in demand skills on the job market and grasping the basics can advance your creative potential and make you stand out from the crowd.Rob Percival gives you a step-by-step learning guide to HTML, CSS, JavaScript, Python, building iPhone apps, building Android apps and debugging. On reading this book and honing your skills through practice, you will be able to code in each of these languages, build your own website, build your own app and have the confidence to supercharge your employability.Confident Coding provides you with the roadmap you need to enhance your professional life through coding, with insightful and inspirational guidance, including real life success stories, on how to use your new skills. The ability to code can give your CV the edge on the competition, give you greater autonomy and improve your work performance. If you are a self-employed entrepreneur, being able to create your own website or app can grant you valuable freedom and revolutionize your business. If you are an aspiring developer, this book will give you the building blocks to embark on this career path.Online resources include coding exercises and activities where readers can practise and hone their new skills.

Information Theory. Part I: An Introduction to the Fundamental Concepts


Arieh Ben-Naim - 2017
    It is unique in its presentation of Shannon's measure of information, and the clear distinction between this concept and the thermodynamic entropy.

C++ and Linux Operating System: Essential Beginners Guide on Enriching Your C++ Programming Skills and Learn the Linux Operating System


Isaac D. Cody - 2017
    A Beginners Guide in Coding Programming and Dominating C++. Novice to Expert Guide To Learn and Master C++ Fast""Hacking University Senior Edition: Linux. Optimal beginner's guide to precisely learn and conquer the Linux operating system. A complete step-by-step guide in how the Linux command line works"In C++ programming, you will learn the basics about:Compliers, syntax, class, objects, and variablesIdentifiers, trigraphs, data types, lines, and charactersBoolean and functionsArrays, loops, and conditionsVarious types of operatorsDecision statements, if else statementsConstants and literalsQuick follow up quizzes and answersGuided examples and much more!In Hacking University Senior Edition, you will learn:What is LinuxHistory and Benefits of LinuxUbuntu Basics and Installing LinuxManaging Software and HardwareThe Command Line TerminalUseful ApplicationsSecurity ProtocolsScripting, I/O Redirection, Managing DirectoriesAnd a WHOLE lot more!

Mobile App Development with Ionic, Revised Edition: Cross-Platform Apps with Ionic, Angular, and Cordova


Chris Griffith - 2017
    This revised guide shows you how to use Ionic's tools and services to develop apps with HTML, CSS, and TypeScript, rather than rely on platform-specific solutions found in Android, iOS, and Windows Universal.Author Chris Griffith takes you step-by-step through Ionic's powerful collection of UI components, and then helps you use it to build three cross-platform mobile apps. Whether you're new to this framework or have been working with Ionic 1, this book is ideal for beginning, intermediate, and advanced web developers.Understand what a hybrid mobile app is, and what comprises a basic Ionic applicationLearn how Ionic leverages Apache Cordova, Angular, and TypeScript to create native mobile applicationsCreate a Firebase-enabled to-do application that stores data across multiple clientsBuild a tab-based National Park explorer app with Google Map integrationDevelop a weather app with the Darksky weather API and Google's GeoCode APIDebug and test your app to resolve issues that arise during developmentWalk through steps for deploying your app to native app storesLearn how Ionic can be used to create Progressive Web Apps

Knowledge Engineering: Building Cognitive Assistants for Evidence-Based Reasoning


Gheorghe Tecuci - 2017
    It covers the main stages in the development of a knowledge-based agent: understanding the application domain, modeling problem solving in that domain, developing the ontology, learning the reasoning rules, and testing the agent. The book focuses on a special class of agents: cognitive assistants for evidence-based reasoning that learn complex problem-solving expertise directly from human experts, support experts, and nonexperts in problem solving and decision making, and teach their problem-solving expertise to students. A powerful learning agent shell, Disciple-EBR, is included with the book, enabling students, practitioners, and researchers to develop cognitive assistants rapidly in a wide variety of domains that require evidence-based reasoning, including intelligence analysis, cybersecurity, law, forensics, medicine, and education.

Usage-Driven Database Design: From Logical Data Modeling Through Physical Schema Definition


George Tillmann - 2017
    You will learn a framework that finally cracks the problem of merging data and process models into a meaningful and unified design that accounts for how data is actually used in production systems.Key to the framework is a method for taking the logical data model that is a static look at the definition of the data, and merging that static look with the process models describing how the data will be used in actual practice once a given system is implemented. The approach solves the disconnect between the static definition of data in the logical data model and the dynamic flow of the data in the logical process models. The design framework in this book can be used to create operational databases for transaction processing systems, or for data warehouses in support of decision support systems. The information manager can be a flat file, Oracle Database, IMS, NoSQL, Cassandra, Hadoop, or any other DBMS.Usage-Driven Database Design emphasizes practical aspects of design, and speaks to what works, what doesn't work, and what to avoid at all costs. Included in the book are lessons learned by the author over his 30+ years in the corporate trenches. Everything in the book is grounded on good theory, yet demonstrates a professional and pragmatic approach to design that can come only from decades of experience.Presents an end-to-end framework from logical data modeling through physical schema definition.Includes lessons learned, techniques, and tricks that can turn a database disaster into a success.Applies to all types of database management systems, including NoSQL such as Cassandra and Hadoop, and mainstream SQL databases such as Oracle and SQL ServerWhat You'll LearnCreate logical data models that accurately reflect the real world of the userCreate usage scenarios reflecting how applications will use a new databaseMerge static data models with dynamic process models to create resilient yet flexible database designsSupport application requirements by creating responsive database schemas in any database architectureCope with big data and unstructured data for transaction processing and decision support systemsRecognize when relational approaches won't work, and when to turn toward NoSQL solutions such as Cassandra or Hadoop Who This Book Is For System developers, including business analysts, database designers, database administrators, and application designers and developers who must design or interact with database systems

Bitcoin: Bitcoin for Beginners (Cryptocurrency Book 2)


Fintech Publishing - 2017
    This book will give you a strong foundation on what bitcoin is all about, as well as how you can profit from it. This handy manual is excellent for beginners and anyone who is looking for a profitable investment. Inside this book you will learn: What a bitcoin is How to store your bitcoins The different types of bitcoin wallets How to earn bitcoins How to make money with bitcoins The best practices to increase your rate of success And so much more! Chapter 1 talks about the basics, so that you will have a good foundation on what bitcoin is all about, as well as other things that you need to know about bitcoins. Chapter 2 discusses the importance of a bitcoin wallet, as well as the different kinds of bitcoin wallets. It also tells how to keep your wallet safe and secure at all times. Chapter 3 teaches how you can earn your first bitcoins. After all, reading about bitcoins is not enough unless you have bitcoins of your own. Chapter 4 gives the ways on how you can earn money with bitcoins, such as by trading, investing, and even gambling using bitcoins. Chapter 5 lays down the best practices that you need to learn. It is important that you turn these practices into a habit in order to increase your chances of success. Chapter 6 talks about the current trend and possible future of bitcoin. Find out why investing in bitcoin might be the best investment that you can ever make. So what are you waiting for? Take action, not now, but right now, and grab your copy, today!

Arduino Playground: Geeky Projects for the Experienced Maker


Warren Andrews - 2017
    But what do you do once you've exhausted your to-build list?Arduino Playground will show you how to keep your hardware hands busy with a variety of intermediate builds, both practical and just-for-fun. Advance your engineering and electronics know-how as you work your way through these 10 complex projects: -A reaction-time game that leverages the Arduino's real-time capabilities-A tool for etching your own printed circuit boards-A regulated, variable-voltage power supply-A kinetic wristwatch winder decked out with LEDs-A garage parking assistant that blinks when your vehicle is perfectly parked-A practical and colorful pH meter-A ballistic chronograph that can measure the muzzle velocity of BB, Airsoft, and pellet guns-A battery saver that prevents accidental discharge-A square-wave generator-A thermometer that tells the temperature using a sequence of colored LEDsEach project begins with a list of required tools and components, followed by the instructions, full sketch, and circuit board templates for the build, as well as directions for building a permanent enclosure. You'll even find the author's design notes, which are sure to provide inspiration for your own inventions.Gather your parts, break out the soldering iron, and get ready to take your Arduino skills to the next level with Arduino Playground.Uses the Arduino Nano and Pro Mini boards.

Learning Apache Spark 2


Muhammad Asif Abbasi - 2017
    Who This Book Is For This guide appeals to big data engineers, analysts, architects, software engineers, even technical managers who need to perform efficient data processing on Hadoop at real time. Basic familiarity with Java or Scala will be helpful. The assumption is that readers will be from a mixed background, but would be typically people with background in engineering/data science with no prior Spark experience and want to understand how Spark can help them on their analytics journey. What You Will Learn - Get an overview of big data analytics and its importance for organizations and data professionals - Delve into Spark to see how it is different from existing processing platforms - Understand the intricacies of various file formats, and how to process them with Apache Spark. - Realize how to deploy Spark with YARN, MESOS or a Stand-alone cluster manager. - Learn the concepts of Spark SQL, SchemaRDD, Caching and working with Hive and Parquet file formats - Understand the architecture of Spark MLLib while discussing some of the off-the-shelf algorithms that come with Spark. - Introduce yourself to the deployment and usage of SparkR. - Walk through the importance of Graph computation and the graph processing systems available in the market - Check the real world example of Spark by building a recommendation engine with Spark using ALS. - Use a Telco data set, to predict customer churn using Random Forests. In Detail Spark juggernaut keeps on rolling and getting more and more momentum each day. Spark provides key capabilities in the form of Spark SQL, Spark Streaming, Spark ML and Graph X all accessible via Java, Scala, Python and R. Deploying the key capabilities is crucial whether it is on a Standalone framework or as a part of existing Hadoop installation and configuring with Yarn and Mesos. The next part of the journey after installation is using key components, APIs, Clustering, machine learning APIs, data pipelines, parallel programming. It is important to understand why each framework component is key, how widely it is being used, its stability and pertinent use cases. Once we understand the individual components, we will take a couple of real life advanced analytics examples such as 'Building a Recommendation system', 'Predicting customer churn' and so on. The objective of these real life examples is to give the reader confidence of using Spark for real-world problems. Style and approach With the help of practical examples and real-world use cases, this guide will take you from scratch to building efficient data applications using Apache Spark. You will learn all about this excellent data processing engine in a step-by-step manner, taking one aspect of it at a time. This highly practical guide will include how to work with data pipelines, dataframes, clustering, SparkSQL, parallel programming, and such insightful topics with the help of real-world use cases.

Basic Graph Theory


Saidur Rahman - 2017
    Beginning with the historical background, motivation and applications of graph theory, the author first explains basic graph theoretic terminologies. From this firm foundation, the author goes on to present paths, cycles, connectivity, trees, matchings, coverings, planar graphs, graph coloring and digraphs as well as some special classes of graphs together with some research topics for advanced study.Filled with exercises and illustrations, Basic Graph Theory is a valuable resource for any undergraduate student to understand and gain confidence in graph theory and its applications to scientific research, algorithms and problem solving.

Operating Systems: From 0 to 1


Do Hoang Tu - 2017
    Hence the title, 0 to 1.After completing this book, at the very least you will learn:How to write an operating system from scratch by reading hardware datasheets. In the real world, it works like that. You won't be able to consult Google for a quick answer.A big picture of how each layer of a computer is related to the other, from hardware to software.Write code independently. It's pointless to copy and paste code. Real learning happens when you solve problems on your own. Some examples are given to kick start, but most problems are yours to conquer. However, the solutions are available online for you to examine after giving it a good try.Linux as a development environment and how to use common tools for low-level programming.x86 assembly in-depth.How a program is structured so that an operating system can run.How to debug a program running directly on hardware with gdb and QEMU.Linking and loading on bare metal x86_64, with pure C. No standard library. No runtime overhead.https://github.com/tuhdo/os01

From GSM to LTE-Advanced Pro and 5G: An Introduction to Mobile Networks and Mobile Broadband


Martin Sauter - 2017
    It explains the rationales behind their differing mechanisms and implementations while exploring the advantages and limitations of each technology. This edition has been fully updated and substantially expanded to reflect the significant evolution in mobile network technology occurring over the past several years. The chapter on LTE has been extensively enhanced with new coverage of current implementations of LTE carrier aggregation, mobility management, cell reselection and handover procedures, as well as the latest developments in 5G radio and core networks in 3GPP. It now features additional information on the TD-LTE air interface, IPv6 in mobile networks, Network Function Virtualization (NFV) and Narrowband Internet of Things (NB-IOT). Voice-over-LTE (VoLTE) is now treated extensively in a separate chapter featuring coverage of the VoLTE call establishment process, dedicated bearer setup, header compression, speech codec and bandwidth negotiation, supplementary service configuration and VoLTE emergency calls. In addition, extensive coverage of Voice-over-Wifi and mission critical communication for public safety organizations over LTE has been added. The WLAN chapter now provides coverage of WPA2-Professional with certificates for authentication in large deployments, such as the global Eduroam network and the new WLAN 60 GHz air interface. Bluetooth evolution has been addressed by including a detailed description of Bluetooth Low Energy (BLE) in the chapter devoted to Bluetooth. Describes the different systems based on the standards, their practical implementation and design assumptions, and the performance and capacity of each system in practice is analyzed and explained Questions at the end of each chapter and answers on the accompanying website make this book ideal for self-study or as course material.

Learning Functional Data Structures and Algorithms


Atul S. Khot - 2017
    With the advent of functional programming and with powerful functional languages such as Scala, Clojure and Elixir becoming part of important enterprise applications, functional data structures have gained an important place in the developer toolkit. Immutability is a cornerstone of functional programming. Immutable and persistent data structures are thread safe by definition and hence very appealing for writing robust concurrent programs.How do we express traditional algorithms in functional setting? Won't we end up copying too much? Do we trade performance for versioned data structures?This book attempts to answer these questions by looking at functional implementations of traditional algorithms.It begins with a refresher and consolidation of what functional programming is all about. Next, you'll get to know about Lists, the work horse data type for most functional languages. We show what structural sharing means and how it helps to make immutable data structures efficient and practical.Scala is the primary implementation languages for most of the examples. At times, we also present Clojure snippets to illustrate the underlying fundamental theme. While writing code, we use ADTs (abstract data types). Stacks, Queues, Trees and Graphs are all familiar ADTs. You will see how these ADTs are implemented in a functional setting. We look at implementation techniques like amortization and lazy evaluation to ensure efficiency.By the end of the book, you will be able to write efficient functional data structures and algorithms for your applications.

Containerizing Continuous Delivery in Java


Daniel Bryant - 2017
    In fact, combining Java with container technology can bring out the best in both. With this report, you’ll learn valuable techniques, methodologies, and advice for continuously delivering Java applications with containers, from both an architectural and operational perspective.To help you follow the book’s examples, author Daniel Bryant includes a simple ecommerce application that includes three microservices, a Docker Compose file, and a Jenkins build pipeline. You can clone the GitHub repository locally and learn firsthand how the continuous delivery process with Docker works. Much of the advice and patterns in this guide also apply to several other container technologies.With this report, you’ll explore:Continuous delivery basics with Java—and how JAR and WAR files differ from containersHow Docker impacts a typical Java application CD build pipelineThe impact of microservices and cloud-native Twelve-Factor Applications on Java architectural patternsHow containers affect functional testing, and non-functional performance and security testingHost-level monitoring, container-level metrics, and application-level health checks

Elements of Robotics


Mordechai Ben-Ari - 2017
    Robotic algorithms are presented formally, but using only mathematics known by high-school and first-year college students, such as calculus, matrices and probability. Concepts and algorithms are explained through detailed diagrams and calculations.Elements of Robotics presents an overview of different types of robots and the components used to build robots, but focuses on robotic algorithms: simple algorithms like odometry and feedback control, as well as algorithms for advanced topics like localization, mapping, image processing, machine learning and swarm robotics. These algorithms are demonstrated in simplified contexts that enable detailed computations to be performed and feasible activities to be posed. Students who study these simplified demonstrations will be well prepared for advanced study of robotics.The algorithms are presented at a relatively abstract level, not tied to any specific robot. Instead a generic robot is defined that uses elements common to most educational robots: differential drive with two motors, proximity sensors and some method of displaying output to the user.The theory is supplemented with over 100 activities, most of which can be successfully implemented using inexpensive educational robots. Activities that require more computation can be programmed on a computer. Archives are available with suggested implementations for the Thymio robot and standalone programs in Python.