Engineering Software - a Collection of Practice Projects

"Engineering"
is the application of principles of science and mathematics to the design of
useful things. To engineer software is to apply principles of mathematics to software design and implementation. Since software consists, literally, of
formulas in mathematical logic, the principles of logic provide the basis for
engineering software. These projects provide a practice ground for beginning to engineer
software using the tools of mathematical logic.