In this lecture I will attempt to summarize the state of the art in observer theory for linear finite-dimensional time-invariant systems. This will include the contributions made by the author in collaboration with Uwe Helmke and Paul Fuhrmann. Roughly speaking, the observation problem is to calculate present values of one set of time signals given information about the past values of another set of time signals, where both signal sets are interconnected by the action of a dynamical system. Rigorous definitions of various types of (partial) observability in the language of behaviors as well as definitions of the corresponding observers will be given. These definitions will be specialised to (strictly causal) state-space systems. I will formulate observability tests, necessary and sufficient criteria for the existence of observers as well as characterizations of observers. Some parametrization results will be reported that hook in with other areas of Mathematics such as optimization, polynomial matrix theory and singularity theory.