In programming practice, side effects are a well-known phenomenon. However, a formal definition of side effects is missing. Intuitively, a side effect of a propositional statement is a change in state of a program or model other than the effect (or change in state) it was initially executed for. In this book, I will check this intuition and I will give a formal definition of side effects. I will do so by modifying a system for modelling program instructions and program states, Quantified Dynamic Logic (QDL), to a system called Dynamic Logic with Assignments as Formulas (DLAf), which in contrast to QDL allows assignments in formulas and makes use of short-circuit evaluation. I will show the underlying logic in those formulas to be a variant of short-circuit logic called repetition-proof short-circuit logic. Using that, I can give the definition and even a classification of side effects. The definition and the classification of side effects outlined in this book not only open doors to further research in this area, but also hold high potential for applications in the programming industry.