by Benjamin C. Pierce
Publisher: University of Pennsylvania 2010
These are notes for a one-semester course on Software Foundations -- the mathematical theory of programming and programming languages -- suitable for graduate or upper-level undergraduate students. They develop basic concepts of functional programming, logic, operational semantics, lambda-calculus, and static type systems, using the Coq proof assistant.
Home page url
Download or read it online for free here:
by Damith C. Rajapakse
A collection of practical tips gathered from the authors' software engineering experience and from many books on the topic. It does not intend to cover software engineering theory. The book is meant for software engineering project courses.
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 Johannes Sametinger - Springer
The book explains what is software reuse, what benefits to expect, different forms of software reuse, software components, different kinds of components, examples of successful component reuse, introduction to software engineering, and more.
by Divakar Viswanath - The MIT Press
This book examines and explains a variety of scientific programming models with an emphasis on how programming constructs map to different parts of the computer's architecture. Two themes emerge: program speed and program modularity.