Semantic errors are errors in the semantics of a program, which means there's something wrong in what is written in the program. This will mostly be typo's, small errors in an algorithm, design-flaws and incorrect assumptions. Of course, these kind of errors can not all be described here. I will only describe the most common errors that can be put in the category 'slip of the pen' (or sometimes 'slip of the mind').