There is a difference between programming and teaching. I have seen a lot of good programmers to be horrible teacher. In my opinion, this happens when people becomes delusional in thinking that teaching is just like writing programs — tell each and every step, in a logically perfect sequence. In reality, teaching is more than that. First of all, humans don’t need everything to be spelled out. In fact, that is detrimental to teaching (I’ll explain why later). Humans just need broad thick strokes here and there. They are good in connecting the strokes and building perfect picture themselves. In my opinion, the most important objective of teaching should be to generate motivation; not to spell out every detail.

## Deductive vs Inductive Teaching Style

I don’t know if they are correct terminology or not (deductive/inductive) but I am trying to use this to infer resemblance with deductive and inductive logic. According to my definition, deductive teaching style is to teach the most generalized theory first, then gradually coming down to more specific facts and real-life examples. It is like, teaching the formula first, then teaching how two numbers say and follows the formula. It is like deductive methods of logical proofs. On the other hand, inductive teaching style is to show small examples and then gradually point towards the pattern that all of the examples show and then finally revealing the generalized theory. For example, before showing the algebraic formula mentioned before, the teacher can show a few examples with numbers followed by an illustration of how this should always be the case, then finally revealing the formula.

Both inductive and deductive teaching styles are important and have their own niches. However, I’ve seen computer scientists and mathematicians who often try to shove deductive teaching style in all possible teaching scenario. May be they are too mesmerized with the beauty of a unified general theory to consider the students need and capacity of learning. For example, I’ve seen people who don’t want to teach Hidden Markov Models until they finish teaching the whole topic of Probabilistic Graphical Models. Once they finish teaching PGM, they are more interested to show how HMM is an instance of PGM and then uses theories of PGM to solve describing equations of HMM. I’ve heard occurrences where machine learning teachers are interested to teach the “Theories of Machine Learning” (e.g. PAC learning) first, and then teaching several instances of machine learning (eg. support vector machines etc). A more common example can be found when we analyze people teaching algorithms. Many people don’t want to give an example before describing an algorithm. They will describe an algorithm first. Then use an example while following the steps of the algorithm. Typically this style is harder for students to grasp. Because at the beginning, the students’ idea about the purpose of the algorithm is very vague. They are not clear what the algorithm is trying to do. They are not sure what are the typical problems that may arise while designing the algorithm. As a result, if the algorithm uses some trick to tackle over a specific genre of error, the students are totally at loss while seeing the description of the algorithm. However, when the same algorithm is described with examples first, with occasional stumble upon the problem cases, the students usually understand better.

I don’t know exactly why inductive teaching is a good fit for this case, but I can speculate some causes. I think, seeing an example first, gives the students a hands on experience to the problem first. They automatically start to gather many facts and ideas about the problem. After that, going for the generalized theory enables them to connect their own facts and ideas into the theory. Probably brain develops some of the neural connections beforehand, while seeing the examples. Seeing the theory just augments over those existing neural connections in order to understand the complete picture. On the other hand, in deductive teaching style, brain needs to build the neural connections for all the possible cases (including the atypical edge cases) at once. This might be cognitively difficult (building higher number of neural connection should require higher energy). In addition, there might be a motivational cause too. In inductive teaching style, the students automatically go for finding out the generalized theory while seeing the examples. When the theory is presented in front of them, it is already partially known to them. This might give them some complacency/empowerment which in turn help them to stay motivated (attentive) for what is presenting to them.

## Outlining and Emphasis

I’ve seen many teachers who don’t know where to emphasize more and where less. They give equal emphasis everywhere:

In my opinion proofs shouldn’t be shown in class unless they contain exceptionally novel ideas

- Why spoon-feeding everything is detrimental? (Cognitive load, forgetting factor, motivation and Exercise)

## Chalk-talk vs PowerPoint

-color of marker, handwriting, size and opaque body problem vs confined space problem

[Incomplete]