Software systems continue to pervade day-today life and so it becomes increasingly important to ensure the dependability, safety, and security of software. One approach to this end can be summarised under the broad term of formal methods, i.e., the formal analysis of requirements, software models, or programs. Formal methods in this sense are today used in many branches of the software industry, such as the huge internet companies, aerospace, automotive, etc. and even made their way into small to medium sized enterprises. In this article, we argue the opinion that today's students (and tomorrow's engineers) need to be provided with a basic understanding of formal methods in the broad sense (what is it, how does it feel to use it, what are advantages and limitations) already in undergraduate introductions to software engineering. We propose a generic course design that complements (otherwise completely ordinary) undergraduate introductions to software engineering with formal semantics and analyses of (visual) software description languages. We report on five years of teaching an implementation of the course design that indicate the feasibility of teaching without sacrificing classical software engineering topics and without over-straining students wrt. level or workload.