This text offers a unique treatment of discrete mathematics; it is organized by technique rather than topic focusing students on the construction and computation of objects. The text introduces algebras that directly apply to computer science; in addition to Boolean algebra, abstract data types are introduced as algebras and computational algebras.