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