Best of
Algorithms

2018

Create an Uber Clone in 7 Days


Shai Almog - 2018
    Since the Uber application is well designed and familiar we chose it as the target but the book isn't meant as a "copy Uber" cookbook. Many applications are built around ideas similar to Uber and utilize designs inspired by Uber. It's our assumption that you can learn a lot by understanding how to build something "like" Uber.This book covers:- iOS/Android development with Codename One- Spring Boot server development on top of MySQL- WebSockets, WebServices and push notification as the communication layer- Creating a sublime UI to match professional designs- Map based user interface- User authorization via SMS/Social Networks- Best practices, security and pitfalls of mobile developmentThe book requires basic knowledge of Java but doesn't require prior knowledge of Codename One, Spring Boot or MySQL.Notice that this book is "code heavy", it contains many listings as it implements a full stack mobile app.Uber (TM) is a trademark of Uber Technologies Inc.This work is intended strictly for educational purposes. We don't condone the misuse of Uber IP!

What Can Be Computed?: A Practical Guide to the Theory of Computation


John MacCormick - 2018
    Crafted specifically for undergraduates who are studying the subject for the first time, and requiring minimal prerequisites, the book focuses on the essential fundamentals of computer science theory and features a practical approach that uses real computer programs (Python and Java) and encourages active experimentation. It is also ideal for self-study and reference.The book covers the standard topics in the theory of computation, including Turing machines and finite automata, universal computation, nondeterminism, Turing and Karp reductions, undecidability, time-complexity classes such as P and NP, and NP-completeness, including the Cook-Levin Theorem. But the book also provides a broader view of computer science and its historical development, with discussions of Turing's original 1936 computing machines, the connections between undecidability and G�del's incompleteness theorem, and Karp's famous set of twenty-one NP-complete problems.Throughout, the book recasts traditional computer science concepts by considering how computer programs are used to solve real problems. Standard theorems are stated and proven with full mathematical rigor, but motivation and understanding are enhanced by considering concrete implementations. The book's examples and other content allow readers to view demonstrations of--and to experiment with--a wide selection of the topics it covers. The result is an ideal text for an introduction to the theory of computation.An accessible and rigorous introduction to the essential fundamentals of computer science theory, written specifically for undergraduates taking introduction to the theory of computationFeatures a practical, interactive approach using real computer programs (Python in the text, with forthcoming Java alternatives online) to enhance motivation and understandingGives equal emphasis to computability and complexityIncludes special topics that demonstrate the profound nature of key ideas in the theory of computationLecture slides and Python programs are available at whatcanbecomputed.com

Classic Computer Science Problems in Swift


David Kopec - 2018