The Elements of Computing Systems
by Noam Nisan, Shimon Schocken
Publisher: MIT Press 2005
Number of pages: 267
The book exposes students to a significant body of computer science knowledge, gained through a series of hardware and software construction tasks. These tasks demonstrate how theoretical and applied techniques taught in other computer science courses are used in practice.
Download or read it online for free here:
(multiple PDF files)
by Benjamin C. Pierce - University of Pennsylvania
These are notes for a course on software foundations, suitable for graduate or upper-level undergraduate students. They develop basic concepts of functional programming, logic, operational semantics, lambda-calculus, and static type systems.
by David Longstreet - SoftwareMetrics.Com
The book introduces the basic concepts of function point analysis and unit cost estimating, describes and defines the concepts necessary to establish a boundary between applications, identifies and rates external inputs and external outputs, etc.
by Leslie Lamport - Addison-Wesley Professional
This book shows how to write unambiguous specifications of complex computer systems. It provides a complete reference manual for the TLA+, the language developed by the author for writing simple and elegant specifications of algorithms and protocols.
by Michael R. Lyu - McGraw-Hill
From leading industrial/research experts, here is an insider's look at today's best practices for software reliability engineering. This is a guide for software developers, designers, project managers, high-level applications programmers, et al.