Python Crash Course: A Hands-On, Project-Based Introduction to Programming


Eric Matthes - 2015
    You'll also learn how to make your programs interactive and how to test your code safely before adding it to a project. In the second half of the book, you'll put your new knowledge into practice with three substantial projects: a Space Invaders-inspired arcade game, data visualizations with Python's super-handy libraries, and a simple web app you can deploy online.As you work through Python Crash Course, you'll learn how to: Use powerful Python libraries and tools, including matplotlib, NumPy, and PygalMake 2D games that respond to keypresses and mouse clicks, and that grow more difficult as the game progressesWork with data to generate interactive visualizationsCreate and customize simple web apps and deploy them safely onlineDeal with mistakes and errors so you can solve your own programming problemsIf you've been thinking seriously about digging into programming, Python Crash Course will get you up to speed and have you writing real programs fast. Why wait any longer? Start your engines and code!

Play Between Worlds: Exploring Online Game Culture


T.L. Taylor - 2006
    L. Taylor examines multiplayer gaming life as it is lived on the borders, in the gaps--as players slip in and out of complex social networks that cross online and offline space. Taylor questions the common assumption that playing computer games is an isolating and alienating activity indulged in by solitary teenage boys. Massively multiplayer online games (MMOGs), in which thousands of players participate in a virtual game world in real time, are in fact actively designed for sociability. Games like the popular Everquest, she argues, are fundamentally social spaces.Taylor's detailed look at Everquest offers a snapshot of multiplayer culture. Drawing on her own experience as an Everquest player (as a female Gnome Necromancer)--including her attendance at an Everquest Fan Faire, with its blurring of online--and offline life--and extensive research, Taylor not only shows us something about games but raises broader cultural issues. She considers "power gamers," who play in ways that seem closer to work, and examines our underlying notions of what constitutes play--and why play sometimes feels like work and may even be painful, repetitive, and boring. She looks at the women who play Everquest and finds they don't fit the narrow stereotype of women gamers, which may cast into doubt our standardized and preconceived ideas of femininity. And she explores the questions of who owns game space--what happens when emergent player culture confronts the major corporation behind the game.

Web Form Design: Filling in the Blanks


Luke WroblewskiMicah Alpern - 2008
    In Web Form Design, Luke Wroblewski draws on original research, his considerable experience at Yahoo! and eBay, and the perspectives of many of the field's leading designers to show you everything you need to know about designing effective and engaging Web forms.

Computer Systems: A Programmer's Perspective


Randal E. Bryant - 2002
    Often, computer science and computer engineering curricula don't provide students with a concentrated and consistent introduction to the fundamental concepts that underlie all computer systems. Traditional computer organization and logic design courses cover some of this material, but they focus largely on hardware design. They provide students with little or no understanding of how important software components operate, how application programs use systems, or how system attributes affect the performance and correctness of application programs. - A more complete view of systems - Takes a broader view of systems than traditional computer organization books, covering aspects of computer design, operating systems, compilers, and networking, provides students with the understanding of how programs run on real systems. - Systems presented from a programmers perspective - Material is presented in such a way that it has clear benefit to application programmers, students learn how to use this knowledge to improve program performance and reliability. They also become more effective in program debugging, because t

Modern Operating Systems


Andrew S. Tanenbaum - 1992
    What makes an operating system modern? According to author Andrew Tanenbaum, it is the awareness of high-demand computer applications--primarily in the areas of multimedia, parallel and distributed computing, and security. The development of faster and more advanced hardware has driven progress in software, including enhancements to the operating system. It is one thing to run an old operating system on current hardware, and another to effectively leverage current hardware to best serve modern software applications. If you don't believe it, install Windows 3.0 on a modern PC and try surfing the Internet or burning a CD. Readers familiar with Tanenbaum's previous text, Operating Systems, know the author is a great proponent of simple design and hands-on experimentation. His earlier book came bundled with the source code for an operating system called Minux, a simple variant of Unix and the platform used by Linus Torvalds to develop Linux. Although this book does not come with any source code, he illustrates many of his points with code fragments (C, usually with Unix system calls). The first half of Modern Operating Systems focuses on traditional operating systems concepts: processes, deadlocks, memory management, I/O, and file systems. There is nothing groundbreaking in these early chapters, but all topics are well covered, each including sections on current research and a set of student problems. It is enlightening to read Tanenbaum's explanations of the design decisions made by past operating systems gurus, including his view that additional research on the problem of deadlocks is impractical except for "keeping otherwise unemployed graph theorists off the streets." It is the second half of the book that differentiates itself from older operating systems texts. Here, each chapter describes an element of what constitutes a modern operating system--awareness of multimedia applications, multiple processors, computer networks, and a high level of security. The chapter on multimedia functionality focuses on such features as handling massive files and providing video-on-demand. Included in the discussion on multiprocessor platforms are clustered computers and distributed computing. Finally, the importance of security is discussed--a lively enumeration of the scores of ways operating systems can be vulnerable to attack, from password security to computer viruses and Internet worms. Included at the end of the book are case studies of two popular operating systems: Unix/Linux and Windows 2000. There is a bias toward the Unix/Linux approach, not surprising given the author's experience and academic bent, but this bias does not detract from Tanenbaum's analysis. Both operating systems are dissected, describing how each implements processes, file systems, memory management, and other operating system fundamentals. Tanenbaum's mantra is simple, accessible operating system design. Given that modern operating systems have extensive features, he is forced to reconcile physical size with simplicity. Toward this end, he makes frequent references to the Frederick Brooks classic The Mythical Man-Month for wisdom on managing large, complex software development projects. He finds both Windows 2000 and Unix/Linux guilty of being too complicated--with a particular skewering of Windows 2000 and its "mammoth Win32 API." A primary culprit is the attempt to make operating systems more "user-friendly," which Tanenbaum views as an excuse for bloated code. The solution is to have smart people, the smallest possible team, and well-defined interactions between various operating systems components. Future operating system design will benefit if the advice in this book is taken to heart. --Pete Ostenson

Design Patterns: Elements of Reusable Object-Oriented Software


Erich Gamma - 1994
    Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.

This Gaming Life: Travels in Three Cities


Jim Rossignol - 2008
    Quake, World of Warcraft, Eve Online, and other online games not only offered author Jim Rossignol an excellent escape from the tedium of office life. They also provided him with a diverse global community and a job—as a games journalist.Part personal history, part travel narrative, part philosophical reflection on the meaning of play, This Gaming Life describes Rossignol’s encounters in three cities: London, Seoul, and Reykjavik. From his days as a Quake genius in London’s increasingly corporate gaming culture; to Korea, where gaming is a high-stakes televised national sport; to Iceland, the home of his ultimate obsession, the idiosyncratic and beguiling Eve Online, Rossignol introduces us to a vivid and largely undocumented world of gaming lives.Torn between unabashed optimism about the future of games and lingering doubts about whether they are just a waste of time, This Gaming Life also raises important questions about this new and vital cultural form. Should we celebrate the “serious” educational, social, and cultural value of games, as academics and journalists are beginning to do? Or do these high-minded justifications simply perpetuate the stereotype of games as a lesser form of fun? In this beautifully written, richly detailed, and inspiring book, Rossignol brings these abstract questions to life, immersing us in a vibrant landscape of gaming experiences.“We need more writers like Jim Rossignol, writers who are intimately familiar with gaming, conversant in the latest research surrounding games, and able to write cogently and interestingly about the experience of playing as well as the deeper significance of games.”—Chris Baker, Wired“This Gaming Life is a fascinating and eye-opening look into the real human impact of gaming culture. Traveling the globe and drawing anecdotes from many walks of life, Rossignol takes us beyond the media hype and into the lives of real people whose lives have been changed by gaming. The results may surprise you.”—Raph Koster, game designer and author of A Theory of Fun for Game Design “Is obsessive video gaming a character flaw? In This Gaming Life, Jim Rossignol answers with an emphatic ‘no,’ and offers a passionate and engaging defense of what is too often considered a ‘bad habit’ or ‘guilty pleasure.’”—Joshua Davis, author of The Underdog“This is a wonderfully literate look at gaming cultures, which you don't have to be a gamer to enjoy. The Korea section blew my mind.”—John Seabrook, New Yorker staff writer and author of Flash of Genius and Other True Stories of Inventiondigitalculturebooks is an imprint of the University of Michigan Press and the Scholarly Publishing Office of the University of Michigan Library dedicated to publishing innovative and accessible work exploring new media and their impact on society, culture, and scholarly communication. Visit the website at www.digitalculture.org.

Introduction to Algorithms


Thomas H. Cormen - 1989
    Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanations have been kept elementary without sacrificing depth of coverage or mathematical rigor.

Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction


Daniel Shiffman - 2008
    Based on the ubiquitous Java, it provides an alternative to daunting languages and expensive proprietary software.This book gives graphic designers, artists and illustrators of all stripes a jump start to working with processing by providing detailed information on the basic principles of programming with the language, followed by careful, step-by-step explanations of select advanced techniques.The author teaches computer graphics at NYU's Tisch School of the Arts, and his book has been developed with a supportive learning experience at its core. From algorithms and data mining to rendering and debugging, it teaches object-oriented programming from the ground up within the fascinating context of interactive visual media.Previously announced as Pixels, Patterns, and Processing

Gamification by Design


Gabe Zichermann - 2011
    This book provides the design strategy and tactics you need to integrate game mechanics into any kind of consumer-facing website or mobile app. Learn how to use core game concepts, design patterns, and meaningful code samples to a create fun and captivating social environment.Whether you're an executive, developer, producer, or product specialist, Gamification by Design will show you how game mechanics can help you build customer loyalty.Discover the motivational framework game designers use to segment and engage consumersUnderstand core game mechanics such as points, badges, levels, challenges, and leaderboardsEngage your consumers with reward structures, positive reinforcement, and feedback loopsCombine game mechanics with social interaction for activities such as collecting, gifting, heroism, and statusDive into case studies on Nike and Yahoo!, and analyze interactions at Google, Facebook, and ZyngaGet the architecture and code to gamify a basic consumer site, and learn how to use mainstream gamification APIs from Badgeville"Turning applications into games is a huge trend. This book does a great job of identifying the core lasting principals you need to inspire your users to visit again and again." —Adam Loving Freelance Social Game Developer and founder of Twibes Twitter Groups

The Game Inventor's Guidebook: How to Invent and Sell Board Games, Card Games, Role-Playing Games, & Everything in Between!


Brian Tinsman - 2003
    Do you have an idea for a board game, card game, role-playing game or tabletop game? Have you ever wondered how to get it published? For many years Brian Tinsman reviewed new game submissions for Hasbro, the largest game company in the US. With The Game Inventor's Guidebook: How to Invent and Sell Board Games, Card Games, Role-playing Games & Everything in Between! he presents the only book that lays out step-by-step advice, guidelines and instructions for getting a new game from idea to retail shelf.

Dungeon Hacks: How NetHack, Angband, and Other Roguelikes Changed the Course of Video Games


David L. Craddock - 2015
    Stern administrators lorded over sterile university laboratories and stressed one point to the wide-eyed students privileged enough to set foot within them: Computers were not toys.Defying authority, hackers seized control of monolithic mainframes to create a new breed of computer game: the roguelike, cryptic and tough-as-nails adventures drawn from text-based symbols instead of state-of-the-art 3D graphics.Despite their visual simplicity, roguelike games captivate thousands of players around the world. From the author of the bestselling Stay Awhile and Listen series, Dungeon Hacks introduces you to the visionaries behind some of the most popular roguelikes of all time, and shows how their creations paved the way for the blockbuster video games of today—and beyond.

The Proteus Paradox: How Online Games and Virtual Worlds Change Us—And How They Don't


Nick Yee - 2014
    Yet inhabitants of virtual worlds rarely achieve this liberty, game researcher Nick Yee contends. Though online games evoke freedom and escapism, Yee shows that virtual spaces perpetuate social norms and stereotypes from the offline world, transform play into labor, and inspire racial scapegoating and superstitious thinking. And the change that does occur is often out of our control and effected by unparalleled—but rarely recognized—tools for controlling what players think and how they behave. Using player surveys, psychological experiments, and in-game data, Yee breaks down misconceptions about who plays fantasy games and the extent to which the online and offline worlds operate separately. With a wealth of entertaining and provocative examples, he explains what virtual worlds are about and why they matter, not only for entertainment but also for business and education. He uses gaming as a lens through which to examine the pressing question of what it means to be human in a digital world. His thought-provoking book is an invitation to think more deeply about virtual worlds and what they reveal to us about ourselves.

Information Dashboard Design: The Effective Visual Communication of Data


Stephen Few - 2006
    Although dashboards are potentially powerful, this potential is rarely realized. The greatest display technology in the world won't solve this if you fail to use effective visual design. And if a dashboard fails to tell you precisely what you need to know in an instant, you'll never use it, even if it's filled with cute gauges, meters, and traffic lights. Don't let your investment in dashboard technology go to waste.This book will teach you the visual design skills you need to create dashboards that communicate clearly, rapidly, and compellingly. Information Dashboard Design will explain how to:Avoid the thirteen mistakes common to dashboard design Provide viewers with the information they need quickly and clearly Apply what we now know about visual perception to the visual presentation of information Minimize distractions, cliches, and unnecessary embellishments that create confusion Organize business information to support meaning and usability Create an aesthetically pleasing viewing experience Maintain consistency of design to provide accurate interpretation Optimize the power of dashboard technology by pairing it with visual effectiveness Stephen Few has over 20 years of experience as an IT innovator, consultant, and educator. As Principal of the consultancy Perceptual Edge, Stephen focuses on data visualization for analyzing and communicating quantitative business information. He provides consulting and training services, speaks frequently at conferences, and teaches in the MBA program at the University of California in Berkeley. He is also the author of Show Me the Numbers: Designing Tables and Graphs to Enlighten. Visit his website at www.perceptualedge.com.

Evil by Design: Interaction Design to Lead Us Into Temptation


Chris Nodder - 2013
    Approaching persuasive design from the dark side, this book melds psychology, marketing, and design concepts to show why we're susceptible to certain persuasive techniques. Packed with examples from every nook and cranny of the web, it provides easily digestible and applicable patterns for putting these design techniques to work. Organized by the seven deadly sins, it includes:Pride -- use social proof to position your product in line with your visitors' values Sloth -- build a path of least resistance that leads users where you want them to go Gluttony -- escalate customers' commitment and use loss aversion to keep them there Anger -- understand the power of metaphysical arguments and anonymity Envy -- create a culture of status around your product and feed aspirational desires Lust -- turn desire into commitment by using emotion to defeat rational behavior Greed -- keep customers engaged by reinforcing the behaviors you desire Now you too can leverage human fallibility to create powerful persuasive interfaces that people will love to use -- but will you use your new knowledge for good or evil? Learn more on the companion website, evilbydesign.info.