A good teacher has sound knowledge of the courses they teach. A good teacher maintains up-to-date information about their course’s subjects (as well as subjects related to course contents — this can be difficult, see you can’t know everything). A good teacher provides historical context for material in a course. A good teacher provides contemporary context for material in a course. A good teacher facilitates discussion and understanding between students (and sometimes facilitates intellectual conflict). A good teacher must promote conceptual reasoning (abstraction and reflection used to solve a design problem) and help students become analytical thinkers (good at separating a complex design problem into its constituent smaller parts).