Temporal logics have gained prominence in computer science as a property specification language for reactive systems. There is even an IEEE standard temporal logic supported by a consortium of Electronic Design Tool developers. Such systems maintain ongoing interaction between the environment and the system and their specification requires formulating constraints on the sequence of steps performed by the system. Unlike Classical logics which explicitly use variables to range over time points, temporal logics, which are rooted in tense logics, provide a variable-free approach which deals with time implicitly, using modalities. The work on temporal logic for specifying and proving concurrent programs began with Pnueli’s initial identification of this logic for reactive systems [Pnu77]. Lamport also used temporal logic to reason about properties of distributed systems [Lam80]. We work in the setting of finite and infinite words over a finite alphabet. A diverse set of modalities can be formulated to give different temporal logics. However, over time, the linear temporal logic LTL has emerged as a standard formulation. A major driver for this choice is its economy of operators while being expressive; it just uses modalities U and S. The classical result of Kamp showed that the LTL logic is expressively complete with respect to FO-definable properties of words [Kamp68]. Moreover, as shown by Sistla and Clarke, the logic has elementary PSPACE-complete satisfiability [SC85]. Yet another class of temporal logics which provides very natural form of specification are the interval temporal logics. However, their high satisfaction complexity has prevented their widespread use. It can be seen from these developments that the concerns for expressive power of the temporal logic and its algorithmic complexity have been major drivers. They directly affect the usability of model checking tools developed. Several fragments/variants of LTL have been explored to improve its usability. For example, the industry standard PSL/Sugar adds regular expressions to LTL. Various forms of counting constructs allowing quantitative constraints to be enforced have also been added to LTL and to interval temporal logics. At the same time, keeping algorithmic complexity in mind, fragments of LTL such as TL[F,P] with low satisfaction complexity have been explored [EVW02, WI09]. But there are other possibilities. One less-known such theme is that of “deterministic logics”. In our own experience, while implementing a validity checker for an interval temporal logic over word models, we found marked improvements in efficiency when nondeterministic modal operators were replaced by deterministic or unambiguous ones [KP05]. This led to our interest in results on unambiguous languages, initiated by Schützenberger [Sch76]. In a subsequent paper [LPS08] we learnt that these could also be thought of as boolean combinations of deterministic and co-deterministic products over a small class, the piecewise testable languages. We expanded the scope of our work to studying determinism and guarding in modalities at all levels of temporal, timed and first-order logics. This tutorial is a presentation of temporal logics with deterministic as well as guarded modalities, their expressiveness and computational efficiency.