  This thesis develops the theory of sheaves and cosheaves with an eye towards
applications in science and engineering. To provide a theory that is
computable, we focus on a combinatorial version of sheaves and cosheaves called
cellular sheaves and cosheaves, which are finite families of vector spaces and
maps parametrized by a cell complex. We develop cellular (co)sheaves as a new
tool for topological data analysis, network coding and sensor networks. A
foundation for multi-dimensional level-set persistent homology is laid via
constructible cosheaves, which are equivalent to representations of
MacPherson's entrance path category. By proving a van Kampen theorem, we give a
direct proof of this equivalence. A cosheaf version of the i'th derived
pushforward of the constant sheaf along a definable map is constructed directly
as a representation of this category. We go on to clarify the relationship of
cellular sheaves to cosheaves by providing a formula that defines a derived
equivalence, which in turn recovers Verdier duality. Compactly-supported sheaf
cohomology is expressed as the coend with the image of the constant sheaf
through this equivalence. The equivalence is further used to establish
relations between sheaf cohomology and a herein newly introduced theory of
cellular sheaf homology. Inspired to provide fast algorithms for persistence,
we prove that the derived category of cellular sheaves over a 1D cell complex
is equivalent to a category of graded sheaves. Finally, we introduce the
interleaving distance as an extended pseudo-metric on the category of sheaves.
We prove that global sections partition the space of sheaves into connected
components. We conclude with an investigation into the geometry of the space of
constructible sheaves over the real line, which we relate to the bottleneck
distance in persistence.
