mpm + book   93

Elements of Programming
After ten years in print, our publisher decided against further printings and has reverted the rights to us. We are publishing Elements of Programming in two forms: a free PDF and a paperback.
7 weeks ago by mpm
This web page contains a free electronic version of my (soon to be) self-published textbook Algorithms, along with other lecture notes I have written for various theoretical computer science classes at the University of Illinois, Urbana-Champaign since 1998.
book  algorithm 
january 2019 by mpm
The Datacenter as a Computer: Designing Warehouse-Scale Machines
This book describes warehouse-scale computers (WSCs), the computing platforms that power cloud computing and all the great web services we use every day. It discusses how these new systems treat the datacenter itself as one massive computer designed at warehouse scale, with hardware and software working in concert to deliver good levels of internet service performance. The book details the architecture of WSCs and covers the main factors influencing their design, operation, and cost structure, and the characteristics of their software base.
datacenter  book 
december 2018 by mpm
Books about Nodejs, Angular2, Agile, Clean Code, Docker, Golang, Microservices, REST, TDD, BDD, and Startups.
book  rest  testing  agile  go  design  ddd 
september 2018 by mpm
Computer Networks: A Systems Approach
This site contains source text for Computer Networks: A Systems Approach, now available under terms of the Creative Commons (CC BY 4.0) license.
book  networking 
august 2018 by mpm
e-book version of Bartosz Milewski's Category Theory for Programmers
book  functional  math 
august 2018 by mpm
Book of Types
I've been working on a book about type-level programming in Haskell for a few weeks now. I'm releasing the first three chapters today
haskell  book 
july 2018 by mpm
Category Theory for Programmers unofficial PDF and LaTeX source
Bartosz Milewski's 'Category Theory for Programmers' unofficial PDF and LaTeX source
math  book  c++  haskell 
october 2017 by mpm
ML for the Working Programmer
In response to recent requests, and with the agreement of Cambridge University Press, I have decided to make the full text of the book available in PDF
book  functional 
september 2017 by mpm
The Theory and Practice of Concurrency
Since C.A.R. Hoare’s text Communicating Sequential Processes was published in 1985, his notation has been extensively used for teaching and applying concurrency theory. This book is intended to provide a comprehensive text on CSP from the perspective that 12 more years of research and experience have brought.
csp  concurrency  book 
august 2017 by mpm
Concurrent and Real Time Systems: the CSP approach
This book provides an introduction to Communicating Sequential Processes (CSP) and its use as a formal method for concurrency
csp  concurrency  book 
august 2017 by mpm
A modular, capability-based operating system

This “book” is a collection of topics describing the Fuchsia operating system. Sections will be populated over time
book  integrity 
june 2017 by mpm
Functional Design and Architecture
This book covers many questions of the design of big applications using pure functional approach and advanced techniques. I wanted to make a complete philosophy and methodology of functional programming design that I called ‘Functional Declarative Design’ or FDD (in opposite to OOD)
book  functional  haskell 
may 2017 by mpm
A description of the Erlang Runtime System ERTS and the virtual Machine BEAM.
book  erlang 
april 2017 by mpm
Site Reliability Engineering
Members of the SRE team explain how their engagement with the entire software lifecycle has enabled Google to build, deploy, monitor, and maintain some of the largest software systems in the world
february 2017 by mpm
Basic Category Theory
This short introduction to category theory is for readers with relatively little mathematical background. At its heart is the concept of a universal property, important throughout mathematics. After a chapter introducing the basic definitions, separate chapters present three ways of expressing universal properties: via adjoint functors, representable functors, and limits. A final chapter ties the three together.
For each new categorical concept, a generous supply of examples is provided, taken from different parts of mathematics. At points where the leap in abstraction is particularly great (such as the Yoneda lemma), the reader will find careful and extensive explanations
book  functional 
january 2017 by mpm
Readings in Database Systems, 5th Edition
Readings in Database Systems (commonly known as the "Red Book") has offered readers an opinionated take on both classic and cutting-edge research in the field of data management since 1988. Here, we present the Fifth Edition of the Red Book
book  database 
december 2015 by mpm
Computer Networking : Principles, Protocols and Practice
Computer Networking : Principles, Protocols and Practice (aka CNP3) is an ongoing effort to develop an open-source networking textbook that could be used for an in-depth undergraduate or graduate networking courses.
book  networking 
november 2015 by mpm
Operating Systems: Three Easy Pieces
Welcome to Operating Systems: Three Easy Pieces, a free online operating systems book! The book is centered around three conceptual pieces that are fundamental to operating systems: virtualization, concurrency, and persistence. In understanding the conceptual, you will also learn the practical, including how an operating system does things like schedule the CPU, manage memory, and store files persistently
september 2015 by mpm
16 Free Data Science Books
I've took some time to compile my top recommendations of quality data science books that are either available for free (by generosity of the author) or are Pay What You Want (PWYW) with $0 minimum.
july 2015 by mpm
Linux Inside
A series of posts about the linux kernel and its insides
linux  book 
june 2015 by mpm
Linkers and Loaders
These are the manuscript chapters for my Linkers and Loaders, published by Morgan-Kaufman
book  compiler 
june 2015 by mpm
The Design of Approximation Algorithms
This is the companion website for the book The Design of Approximation Algorithms by David P. Williamson and David B. Shmoys
book  algorithms 
february 2015 by mpm
The Boost C++ Libraries
This book is an introduction to the Boost C++ Libraries. The Boost C++ Libraries complement the standard library. Because the Boost C++ Libraries are based on the standard, they are implemented using state-of-the-art C++. They are platform independent and are supported on many operating systems, including Windows and Linux, by a large developer community
c++  book 
november 2014 by mpm
Stuff Goes Bad: Erlang in Anger
This book intends to be a little guide about how to be the Erlang medic in a time of war. It is first and foremost a collection of tips and tricks to help understand where failures come from, and a dictionary of different code snippets and practices that helped developers debug production systems that were built in Erlang.
erlang  book 
september 2014 by mpm
Open Data Structures
Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs.

Data structures presented in the book include stacks, queues, deques, and lists implemented as arrays and linked-lists; space-efficient implementations of lists; skip lists; hash tables and hash codes; binary search trees including treaps, scapegoat trees, and red-black trees; integer searching structures including binary tries, x-fast tries, and y-fast tries; heaps, including implicit binary heaps and randomized meldable heaps; graphs, including adjacency matrix and ajacency list representations; and B-trees.
book  datastructure 
june 2014 by mpm
Is Parallel Programming Hard, And, If So, What Can You Do About It?
The purpose of this book is to help you understand how
to program shared-memory parallel machines without
risking your sanity
concurrency  book  non-blocking 
september 2013 by mpm
Distributed systems for fun and profit
In this text I've tried to provide a more accessible introduction to distributed systems. To me, that means two things: introducing the key concepts that you will need in order to have a good time reading more serious texts, and providing a narrative that covers things in enough detail that you get a gist of what's going on without getting stuck on details
september 2013 by mpm
Probability and Statistics Cookbook
The cookbook contains a succinct representation of various topics in probability theory and statistics. It provides a comprehensive reference reduced to the mathematical essence, rather than aiming for elaborate explanations
math  statistics  probability  book 
september 2012 by mpm
Learning Go
"Learning Go" is a book that gives an introduction into the Go language of Google. It is licensed under a copy-left license.
book  go 
may 2012 by mpm
Think Stats
Think Stats is an introduction to Probability and Statistics for Python programmers
book  python  statistics 
april 2012 by mpm
Network Programming with Go
An e-book on building network applications using the Google Go programming language (golang)
networking  book  go 
march 2012 by mpm
Think Stats
Think Stats: Probability and Statistics for Programmers is a textbook for a new kind of introductory prob-stat class. It emphasizes the use of statistics to explore large datasets. It takes a computational approach
book  statistics  math  probability 
january 2012 by mpm
Is Parallel Programming Hard, And, If So, What Can You Do About It?
The purpose of this book is to help you understand how to program shared-memory parallel machines without risking your sanity. By describing the algorithms and designs that have worked well in the past, we hope to help you avoid at least some of the pitfalls that have beset parallel projects. But you should think of this book as a foundation on which to build, rather than as a completed cathedral. Your mission, if you choose to accept, is to help make further progress in the exciting field of parallel programming, progress that should in time render this book obsolete. Parallel programming is not as hard as it is reputed, and it is hoped that this book makes it even easier for you.
concurrency  book 
december 2011 by mpm
Let Over Lambda
This is a book about programming macros in lisp. Unlike most programming books that only give them a cursory overview, this book is a series of tutorials and examples designed to get you programming sophisticated macros as efficiently and quickly as possible. Mastering macros is the final step to graduating from an intermediate lisp programmer to a lisp professional
book  lisp 
august 2011 by mpm
How to Think Like a (Functional) Programmer
How to Think Like a Computer Scientist is an introductory programming textbook based on the OCaml language
book  ocaml  functional  language 
august 2011 by mpm
Software Foundations
This electronic book is a one-semester course on Software Foundations -- the mathematical theory of programming and programming languages -- suitable for graduate or upper-level undergraduate students. It develop basic concepts of functional programming, logic, operational semantics, lambda-calculus, and static type systems, using the Coq proof assistant.
book  functional  fault-prevention 
august 2011 by mpm
Design and Validation of Computer Protocols
The first part of the book gives the reader an overview of the types of fundamental coordination problems that a protocol designer must be able to recognize. It covers the basics of error control, flow control, and protocol structuring, and presents ten basic rules of protocol design. Part two covers protocol specification and modeling techniques, and introduced the notion of a protocol validation model. Part three gives an overview of protocol synthesis, conformance testing, manual and automated protocol validation techniques. In the final part of the book a detailed description is given of a set of tools that can be used to attack the protocol design problem in a rigorous and practical manner
book  distributed  protocol 
april 2011 by mpm
Clever Algorithms: Nature-Inspired Programming Recipes
The book "Clever Algorithms: Nature-Inspired Programming Recipes" by Jason Brownlee PhD describes 45 algorithms from the field of Artificial Intelligence. All algorithm descriptions are complete and consistent to ensure that they are accessible, usable and understandable by a wide audience
algorithm  book 
april 2011 by mpm
The Implementation of Functional Programming Languages
My 1987 book is now out of print, but it is now available online in its entirety (SPJ)
book  functional 
february 2011 by mpm
XSLT Cookbook
Including "duplicate string n times" recipe
xslt  book 
october 2010 by mpm
Software Architecture in Practice, Second Edition
substantially updated to reflect the latest developments in the field
book  architecture 
july 2010 by mpm
Fast portable non-blocking network programming with Libevent
This document will teach you how to use Libevent 2.0 to write fast portable asynchronous network IO programs in C
book  concurrency 
june 2010 by mpm
The Practice of Parallel Programming by Sergey Babkin
This book provides an advanced guide to the issues of the parallel and multithreaded programming. It goes beyond the high-level design of the applications, into the details that are often overlooked but vital to make the programs work. The contents is oriented towards the programming of the operating systems and of the business applications, as opposed to the scientific calculations
concurrency  book 
february 2010 by mpm
The Fourth Paradigm: Data-Intensive Scientific Discovery
In The Fourth Paradigm: Data-Intensive Scientific Discovery, the collection of essays expands on the vision of pioneering computer scientist Jim Gray for a new, fourth paradigm of discovery based on data-intensive science and offers insights into how it can be fully realized.
december 2009 by mpm
Elements of Statistical Learning
Data Mining, Inference, and Prediction
statistics  book 
october 2009 by mpm
Principles of Computer System Design: An Introduction
This textbook, an introduction to the principles and abstractions used in the design of computer systems, is an outgrowth of notes written for 6.033 Computer System Engineering over a period of 40-plus years
july 2009 by mpm
Introduction to Information Retrieval
The book aims to provide a modern approach to information retrieval from a computer science perspective.
book  search 
february 2009 by mpm
The Little Book of Semaphores
The Little Book of Semaphores is a free (in both senses of the word) textbook that introduces the principles of synchronization for concurrent programming
concurrency  book 
january 2009 by mpm
Differentiated Services for the Internet
Differentiated Services for the Internet
book  networking 
december 2008 by mpm
ACM Classic Books Series
list of classic books is the result of a poll ACM conducted where members named their favorite computer science books
january 2008 by mpm
This is a penultimate draft of our soon to appear textbook
book  algorithm 
october 2007 by mpm
Introduction to Statistical Thought
The book is intended as an upper level undergraduate or introductory graduate textbook in statistical thinking with a likelihood emphasis for students with a good knowledge of calculus and the ability to think abstractly.
book  statistics 
august 2007 by mpm
Compiler Construction
This is a slightly revised version of the book published by Addison-Wesley in 1996
compiler  book 
august 2007 by mpm
Task-Centered User Interface Design
The central goal of this book is to teach the reader how to design user interfaces that will enable people to learn computer systems quickly and use them effectively, efficiently, and comfortably. The interface issues addressed are primarily cognitive, that is, having to do with mental activities such as perception, memory, learning, and problem solving. Physical ergonomic issues such as keyboard height or display contrast are covered only briefly.
design  book  usability 
april 2007 by mpm
Basics of Compiler Design
I have taught an undergraduate compilers course for over a decade. In the last several years, I have used my own textbook "Basics of Compiler Design". I have now decided to make this available online.
compiler  book 
april 2007 by mpm
Developing applications with Objective Caml
This is a preliminary translation of the book Développement d'applications avec Objective Caml by Emmanuel Chailloux, Pascal Manoury and Bruno Pagano, published by O'Reilly France.
functional  ocaml  book 
april 2007 by mpm
This book is intended for anyone who wants to become a better Lisp programmer
book  lisp 
april 2007 by mpm
Capability-Based Computer Systems
This book was published by Digital Press in 1984. It is still the most thorough survey and description of early capability-based and object-based hardware and software systems
book  integrity  confidentiality 
april 2007 by mpm
« earlier      
per page:    204080120160

Copy this bookmark: