In this paper, we discuss why deduction is not sufficient for knowledge representation of programs with commonsense. Requirements of representation of incomplete, evolutive and conflicting knowledge led to a rise of alternative logic formalisms, dubbed nonmonotonic logics. Important features of nonmonotonic logic were discussed on the example of default logic – a role of assumptions in reasoning, use of fixpoint constructions as a formal tool for building a nonmonotonic semantics and, finally, computational aspects of nonmonotonic reasoning. This overview is completed by a presentation of our approach to updates. Updates are closely connected to nonmonotonic reasoning. We construct our approach for assumption based frameworks (and for default theories, as a consequence).