Gödel, Escher, Bach: An Eternal Golden Braid


Douglas R. Hofstadter - 1979
    However, according to Hofstadter, the formal system that underlies all mental activity transcends the system that supports it. If life can grow out of the formal chemical substrate of the cell, if consciousness can emerge out of a formal system of firing neurons, then so too will computers attain human intelligence. Gödel, Escher, Bach is a wonderful exploration of fascinating ideas at the heart of cognitive science: meaning, reduction, recursion, and much more.

What Video Games Have to Teach Us about Learning and Literacy


James Paul Gee - 2003
    James Paul Gee begins his new book with 'I want to talk about vide games- yes, even violent video games - and say some positive things about them'. With this simple but explosive beginning, one of America's most well-respected professors of education looks seriously at the good that can come from playing video games. Gee is interested in the cognitive development that can occur when someone is trying to escape a maze, find a hidden treasure and, even, blasting away an enemy with a high-powered rifle. Talking about his own video-gaming experience learning and using games as diverse as Lara Croft and Arcanum, Gee looks at major specific cognitive activities: How individuals develop a sense of identity; How one grasps meaning; How one evaluates and follows a command; How one picks a role model; How one perceives the world.

C# in Depth


Jon Skeet - 2008
    With the many upgraded features, C# is more expressive than ever. However, an in depth understanding is required to get the most out of the language.C# in Depth, Second Edition is a thoroughly revised, up-to-date book that covers the new features of C# 4 as well as Code Contracts. In it, you'll see the subtleties of C# programming in action, learning how to work with high-value features that you'll be glad to have in your toolkit. The book helps readers avoid hidden pitfalls of C# programming by understanding "behind the scenes" issues.Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

Algorithms in a Nutshell


George T. Heineman - 2008
    Algorithms in a Nutshell describes a large number of existing algorithms for solving a variety of problems, and helps you select and implement the right algorithm for your needs -- with just enough math to let you understand and analyze algorithm performance. With its focus on application, rather than theory, this book provides efficient code solutions in several programming languages that you can easily adapt to a specific project. Each major algorithm is presented in the style of a design pattern that includes information to help you understand why and when the algorithm is appropriate. With this book, you will:Solve a particular coding problem or improve on the performance of an existing solutionQuickly locate algorithms that relate to the problems you want to solve, and determine why a particular algorithm is the right one to useGet algorithmic solutions in C, C++, Java, and Ruby with implementation tipsLearn the expected performance of an algorithm, and the conditions it needs to perform at its bestDiscover the impact that similar design decisions have on different algorithmsLearn advanced data structures to improve the efficiency of algorithmsWith Algorithms in a Nutshell, you'll learn how to improve the performance of key algorithms essential for the success of your software applications.

The Psychology of Computer Programming


Gerald M. Weinberg - 1971
    Weinberg adds new insights and highlights the similarities and differences between now and then. Using a conversational style that invites the reader to join him, Weinberg reunites with some of his most insightful writings on the human side of software engineering.Topics include egoless programming, intelligence, psychological measurement, personality factors, motivation, training, social problems on large projects, problem-solving ability, programming language design, team formation, the programming environment, and much more.Dorset House Publishing is proud to make this important text available to new generations of programmers -- and to encourage readers of the first edition to return to its valuable lessons.

Mindstorms: Children, Computers, And Powerful Ideas


Seymour Papert - 1980
    We have Mindstorms to thank for that. In this book, pioneering computer scientist Seymour Papert uses the invention of LOGO, the first child-friendly programming language, to make the case for the value of teaching children with computers. Papert argues that children are more than capable of mastering computers, and that teaching computational processes like de-bugging in the classroom can change the way we learn everything else. He also shows that schools saturated with technology can actually improve socialization and interaction among students and between students and teachers.

Computer Organization & Design: The Hardware/Software Interface


David A. Patterson - 1993
    More importantly, this book provides a framework for thinking about computer organization and design that will enable the reader to continue the lifetime of learning necessary for staying at the forefront of this competitive discipline. --John Crawford Intel Fellow Director of Microprocessor Architecture, Intel The performance of software systems is dramatically affected by how well software designers understand the basic hardware technologies at work in a system. Similarly, hardware designers must understand the far reaching effects their design decisions have on software applications. For readers in either category, this classic introduction to the field provides a deep look into the computer. It demonstrates the relationship between the software and hardware and focuses on the foundational concepts that are the basis for current computer design. Using a distinctive learning by evolution approach the authors present each idea from its first principles, guiding readers through a series of worked examples that incrementally add more complex instructions until they ha

Secrets of the JavaScript Ninja


John Resig - 2008
    This completely revised edition shows you how to master key JavaScript concepts such as functions, closures, objects, prototypes, and promises. It covers APIs such as the DOM, events, and timers. You’ll discover best practice techniques such as testing, and cross-browser development, all taught from the perspective of skilled JavaScript practitioners.

Physics for Game Developers


David M. Bourg - 2001
    Missile trajectories. Cornering dynamics in speeding cars. By applying the laws of physics, you can realistically model nearly everything in games that bounces around, flies, rolls, slides, or isn't sitting still, to create compelling, believable content for computer games, simulations, and animation. "Physics for Game Developers" serves as the starting point for those who want to enrich games with physics-based realism.Part one is a mechanics primer that reviews basic concepts and addresses aspects of rigid body dynamics, including kinematics, force, and kinetics. Part two applies these concepts to specific real-world problems, such as projectiles, boats, airplanes, and cars. Part three introduces real-time simulations and shows how they apply to computer games. Many specific game elements stand to benefit from the use of real physics, including: The trajectory of rockets and missiles, including the effects of fuel burn offThe collision of objects such as billiard ballsThe stability of cars racing around tight curvesThe dynamics of boats and other waterborne vehiclesThe flight path of a baseball after being struck by a batThe flight characteristics of airplanesYou don't need to be a physics expert to learn from "Physics for Game Developers, " but the author does assume you know basic college-level classical physics. You should also be proficient in trigonometry, vector and matrix math (reference formulas and identities are included in the appendixes), and college-level calculus, including integration and differentiation of explicit functions. Although the thrust of the book involves physics principles and algorithms, it should be noted that the examples are written in standard C and use Windows API functions.

Getting Started with Processing


Casey Reas - 2010
    Programming courses usually start with theory, but this book lets you jump right into creative and fun projects. It's ideal for anyone who wants to learn basic programming, and serves as a simple introduction to graphics for people with some programming skills.Written by the founders of Processing, this book takes you through the learning process one step at a time to help you grasp core programming concepts. You'll learn how to sketch with code -- creating a program with one a line of code, observing the result, and then adding to it. Join the thousands of hobbyists, students, and professionals who have discovered this free and educational community platform.Quickly learn programming basics, from variables to objectsUnderstand the fundamentals of computer graphicsGet acquainted with the Processing software development environmentCreate interactive graphics with easy-to-follow projectsUse the Arduino open source prototyping platform to control your Processing graphics

Actionable Gamification: Beyond Points, Badges, and Leaderboards


Yu-kai Chou - 2015
    Within the industry, studies on game mechanics and behavioral psychology have become proliferate. However, few people understand how to merge the two fields into experience designs that reliably increases business metrics and generates a return on investment. Gamification Pioneer Yu-kai Chou takes reader on a journey to learn his twelve years of obsessive research in creating the Octalysis Framework, and how to apply the framework to create engaging and successful experiences in their product, workplace, marketing, and personal lives. Effective gamification is a combination of game design, game dynamics, behavioral economics, motivational psychology, UX/UI (User Experience and User Interface), neurobiology, technology platforms, as well as ROI-driving business implementations. This book explores the interplay between these disciplines to capture the core principles that contribute to good gamification design. The goal for this book is to become a strategy guide to help readers master the games that truly make a difference in their lives. Readers who absorb the contents of this book will have literally obtained what many companies pay tens of thousands of dollars to acquire. The ultimate aim is to enable the widespread adoption of good gamification and human-focused design in all types of industries.

I'm Feeling Lucky: The Confessions of Google Employee Number 59


Douglas Edwards - 2011
    No academic analysis or bystander’s account can capture it. Now Doug Edwards, Employee Number 59, offers the first inside view of Google, giving readers a chance to fully experience the bizarre mix of camaraderie and competition at this phenomenal company. Edwards, Google’s first director of marketing and brand management, describes it as it happened. We see the first, pioneering steps of Larry Page and Sergey Brin, the company’s young, idiosyncratic partners; the evolution of the company’s famously nonhierarchical structure (where every employee finds a problem to tackle or a feature to create and works independently); the development of brand identity; the races to develop and implement each new feature; and the many ideas that never came to pass. Above all, Edwards—a former journalist who knows how to write—captures the “Google Experience,” the rollercoaster ride of being part of a company creating itself in a whole new universe. I’m Feeling Lucky captures for the first time the unique, self-invented, yet profoundly important culture of the world’s most transformative corporation.

Microinteractions: Designing with Details


Dan Saffer - 2013
    With this practical book, you’ll learn how to design effective microinteractions: the small details that exist inside and around features. How can users change a setting? How do they turn on mute, or know they have a new email message?Through vivid, real-world examples from today’s devices and applications, author Dan Saffer walks you through a microinteraction’s essential parts, then shows you how to use them in a mobile app, a web widget, and an appliance. You’ll quickly discover how microinteractions can change a product from one that’s tolerated into one that’s treasured.Explore a microinteraction’s structure: triggers, rules, feedback, modes, and loopsLearn the types of triggers that initiate a microinteractionCreate simple rules that define how your microinteraction can be usedHelp users understand the rules with feedback, using graphics, sounds, and vibrationsUse modes to let users set preferences or modify a microinteractionExtend a microinteraction’s life with loops, such as “Get data every 30 seconds”

Service-Oriented Design with Ruby and Rails


Paul Dix - 2010
    Today, Rails developers and architects need better ways to interface with legacy systems, move into the cloud, and scale to handle higher volumes and greater complexity. In Service-Oriented Design with Ruby and Rails Paul Dix introduces a powerful, services-based design approach geared toward overcoming all these challenges. Using Dix's techniques, readers can leverage the full benefits of both Ruby and Rails, while overcoming the difficulties of working with larger codebases and teams. Dix demonstrates how to integrate multiple components within an enterprise application stack; create services that can easily grow and connect; and design systems that are easier to maintain and upgrade. Key concepts are explained with detailed Ruby code built using open source libraries such as ActiveRecord, Sinatra, Nokogiri, and Typhoeus. The book concludes with coverage of security, scaling, messaging, and interfacing with third-party services. Service-Oriented Design with Ruby and Rails will help you Build highly scalable, Ruby-based service architectures that operate smoothly in the cloud or with legacy systems Scale Rails systems to handle more requests, larger development teams, and more complex code bases Master new best practices for designing and creating services in Ruby Use Ruby to glue together services written in any language Use Ruby libraries to build and consume RESTful Web services Use Ruby JSON parsers to quickly represent resources from HTTP services Write lightweight, well-designed API wrappers around internal or external services Discover powerful non-Rails frameworks that simplify Ruby service implementation Implement standards-based enterprise messaging with Advanced Message Queuing Protocol (AMQP) Optimize performance with load balancing and caching Provide for security and authentication

Python for Kids


Jason R. Briggs - 2012
    Jason Briggs, author of the popular online tutorial "Snake Wrangling for Kids," begins with the basics of how to install Python and write simple commands. In bite-sized chapters, he instructs readers on the essentials of Python, including how to use Python's extensive standard library, the difference between strings and lists, and using for-loops and while-loops. By the end of the book, readers have built a game and created drawings with Python's graphics library, Turtle. Each chapter closes with fun and relevant exercises that challenge the reader to put their newly acquired knowledge to the test.