Fundamentals of Software Architecture: An Engineering Approach


Mark Richards - 2020
    Until now. This practical guide provides the first comprehensive overview of software architecture's many aspects. You'll examine architectural characteristics, architectural patterns, component determination, diagramming and presenting architecture, evolutionary architecture, and many other topics.Authors Neal Ford and Mark Richards help you learn through examples in a variety of popular programming languages, such as Java, C#, JavaScript, and others. You'll focus on architecture principles with examples that apply across all technology stacks.

Smashing UX Design: Foundations for Designing Online User Experiences


Jesmond Allen - 2012
    Treat it as the UX expert on your bookshelf that you can read from cover-to-cover, or to dip into as the need arises, regardless of whether you have 'UX' in your job title or not.

Invent To Learn: Making, Tinkering, and Engineering in the Classroom


Sylvia Libow Martinez - 2013
    Amazing new tools, materials and skills turn us all into makers. Using technology to make, repair or customize the things we need brings engineering, design and computer science to the masses. Fortunately for educators, this maker movement overlaps with the natural inclinations of children and the power of learning by doing. The active learner is at the center of the learning process, amplifying the best traditions of progressive education. This book helps educators bring the exciting opportunities of the maker movement to every classroom. Children are natural tinkerersTheir seminal learning experiences come through direct experience with materials. Digital fabrication, such as 3D printing and physical computing, including Arduino, MaKey MaKey and Raspberry Pi, expands a child’s toy and toolboxes with new ways to make things and new things to make. For the first time ever, childhood inventions may be printed, programmed or imbued with interactivity. Recycled materials can be brought back to life. While school traditionally separates art and science, theory and practice, such divisions are artificial. The real world just doesn’t work that way! Architects are artists. Craftsmen deal in aesthetics, tradition and mathematical precision. Video game developers rely on computer science. Engineering and industrial design are inseparable. The finest scientists are often accomplished musicians. The maker community brings children, hobbyists and professionals together in a glorious celebration of personal expression with a modern flare. When 3-D printing, precision cutting, microcomputer control, robotics and computer programming become integral to the art studio, auto shop or physics lab, every student needs access to tools, knowledge and problem solving skills. The maker movement not only blurs the artificial boundaries between subject areas, it erases distinctions between art and science while most importantly obliterating the crippling practice of tracking students in academic pursuits or vocational training. There are now multiple pathways to learning what we have always taught and things to do that were unimaginable just a few years ago. Making for every classroom budgetEven if you don’t have access to expensive (but increasingly affordable) hardware, every classroom can become a makerspace where kids and teachers learn together through direct experience with an assortment of high and low-tech materials. The potential range, breadth, power, complexity and beauty of projects has never been greater thanks to the amazing new tools, materials, ingenuity and playfulness you will encounter in this book. In this practical guide, Sylvia Martinez and Gary Stager provide K-12 educators with the how, why, and cool stuff that supports classroom making.

How Buildings Learn: What Happens After They're Built


Stewart Brand - 1994
    How Buildings Learn is a masterful new synthesis that proposes that buildings adapt best when constantly refined and reshaped by their occupants, and that architects can mature from being artists of space to becoming artists of time. From the connected farmhouses of New England to I.M. Pei's Media Lab, from "satisficing" to "form follows funding," from the evolution of bungalows to the invention of Santa Fe Style, from Low Road military surplus buildings to a High Road English classic like Chatsworth—this is a far-ranging survey of unexplored essential territory.More than any other human artifacts, buildings improve with time—if they're allowed to. How Buildings Learn shows how to work with time rather than against it.

Think Python


Allen B. Downey - 2002
    It covers the basics of computer programming, including variables and values, functions, conditionals and control flow, program development and debugging. Later chapters cover basic algorithms and data structures.

Computer Networks


Andrew S. Tanenbaum - 1981
    In this revision, the author takes a structured approach to explaining how networks function.

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.

The C Programming Language


Brian W. Kernighan - 1978
    It is the definitive reference guide, now in a second edition. Although the first edition was written in 1978, it continues to be a worldwide best-seller. This second edition brings the classic original up to date to include the ANSI standard. From the Preface: We have tried to retain the brevity of the first edition. C is not a big language, and it is not well served by a big book. We have improved the exposition of critical features, such as pointers, that are central to C programming. We have refined the original examples, and have added new examples in several chapters. For instance, the treatment of complicated declarations is augmented by programs that convert declarations into words and vice versa. As before, all examples have been tested directly from the text, which is in machine-readable form. As we said in the first preface to the first edition, C "wears well as one's experience with it grows." With a decade more experience, we still feel that way. We hope that this book will help you to learn C and use it well.

As Little Design as Possible


Sophie Lovell - 2010
    Even if you don't immediately recognize his name, you have almost certainly used one of the radios, clocks, lighters, juicers, shelves or hundreds of other products he designed. He is famous not only for this vast array of well-formed products, but for his remarkably prescient ideas about the correct function of design in the messy, out-of-control world we inhabit today. These ideas are summed up in his 'ten principles' of good design: good design is innovative, useful, and aesthetic. Good design should be make a product easily understood. Good design is unobtrusive, honest, durable, thorough, and concerned with the environment. Most of all, good design is as little design as possible.In that spirit, this monograph is as little book as possible. It is a clear, comprehensive and beautiful presentation of Dieter Rams' life and his work. It is a must-have book for anyone interested in Rams' work, his legacy, and his ideas about how to live.

Storytelling with Data: A Data Visualization Guide for Business Professionals


Cole Nussbaumer Knaflic - 2015
    You'll discover the power of storytelling and the way to make data a pivotal point in your story. The lessons in this illuminative text are grounded in theory, but made accessible through numerous real-world examples--ready for immediate application to your next graph or presentation.Storytelling is not an inherent skill, especially when it comes to data visualization, and the tools at our disposal don't make it any easier. This book demonstrates how to go beyond conventional tools to reach the root of your data, and how to use your data to create an engaging, informative, compelling story. Specifically, you'll learn how to:Understand the importance of context and audience Determine the appropriate type of graph for your situation Recognize and eliminate the clutter clouding your information Direct your audience's attention to the most important parts of your data Think like a designer and utilize concepts of design in data visualization Leverage the power of storytelling to help your message resonate with your audience Together, the lessons in this book will help you turn your data into high impact visual stories that stick with your audience. Rid your world of ineffective graphs, one exploding 3D pie chart at a time. There is a story in your data--Storytelling with Data will give you the skills and power to tell it!

Contextual Design: Defining Customer-Centered Systems


Hugh Beyer - 1997
    This is a practical, hands-on guide for anyone trying to design systems that reflect the way customers want to do their work. The authors developed Contextual Design, the method discussed here, through their work with teams struggling to design products and internal systems. In this book, you'll find the underlying principles of the method and how to apply them to different problems, constraints, and organizational situations.Contextual Design enables you to+ gather detailed data about how people work and use systems + develop a coherent picture of a whole customer population + generate systems designs from a knowledge of customer work+ diagram a set of existing systems, showing their relationships, inconsistencies, redundancies, and omissions

R for Data Science: Import, Tidy, Transform, Visualize, and Model Data


Hadley Wickham - 2016
    This book introduces you to R, RStudio, and the tidyverse, a collection of R packages designed to work together to make data science fast, fluent, and fun. Suitable for readers with no previous programming experience, R for Data Science is designed to get you doing data science as quickly as possible. Authors Hadley Wickham and Garrett Grolemund guide you through the steps of importing, wrangling, exploring, and modeling your data and communicating the results. You’ll get a complete, big-picture understanding of the data science cycle, along with basic tools you need to manage the details. Each section of the book is paired with exercises to help you practice what you’ve learned along the way. You’ll learn how to: Wrangle—transform your datasets into a form convenient for analysis Program—learn powerful R tools for solving data problems with greater clarity and ease Explore—examine your data, generate hypotheses, and quickly test them Model—provide a low-dimensional summary that captures true "signals" in your dataset Communicate—learn R Markdown for integrating prose, code, and results

Eloquent JavaScript: A Modern Introduction to Programming


Marijn Haverbeke - 2010
    I loved the tutorial-style game-like program development. This book rekindled my earliest joys of programming. Plus, JavaScript!" —Brendan Eich, creator of JavaScriptJavaScript is the language of the Web, and it's at the heart of every modern website from the lowliest personal blog to the mighty Google Apps. Though it's simple for beginners to pick up and play with, JavaScript is not a toy—it's a flexible and complex language, capable of much more than the showy tricks most programmers use it for.Eloquent JavaScript goes beyond the cut-and-paste scripts of the recipe books and teaches you to write code that's elegant and effective. You'll start with the basics of programming, and learn to use variables, control structures, functions, and data structures. Then you'll dive into the real JavaScript artistry: higher-order functions, closures, and object-oriented programming.Along the way you'll learn to:Master basic programming techniques and best practices Harness the power of functional and object-oriented programming Use regular expressions to quickly parse and manipulate strings Gracefully deal with errors and browser incompatibilities Handle browser events and alter the DOM structure Most importantly, Eloquent JavaScript will teach you to express yourself in code with precision and beauty. After all, great programming is an art, not a science—so why settle for a killer app when you can create a masterpiece?

Dear Data


Giorgia Lupi - 2016
    The result is described as “a thought-provoking visual feast”.

Software Engineering (International Computer Science Series)


Ian Sommerville - 1982
    Restructured into six parts, this new edition covers a wide spectrum of software processes from initial requirements solicitation through design and development.