I can remember two teachers warning us about the difficulty of a subject.
- The first warning was by a teacher of measure theory and probabilities.
In the first half of the semester we'll study measure theory. There will be a midterm exam on measure theory. Then in the second half we'll study probabilities. The final exam will be entirely focused on probabilities. Every year I warn the students about the second half of the semester. Students seem to interiorise the concepts of measure theory perfectly, and then they understand nothing of its application to probabilities. In the past twenty years I have never managed to understand why. So I'm warning you. The second half of the semester is apparently more difficult than the first half, although I don't know why.
And his prediction turned true; most students struggled with the second half of the semester, and failed the final exam.
It wasn't a warning so much as an admission of failure on his part.
He was an awesome teacher in my opinion, but this was one big failure in his teaching. So, if you find yourself warning your students about the difficulty of a subject: try to fix it. Warning the students that they'll fail is not a solution, it is not helpful, it is only an admission of failure on your part.
In the case of measure theory and probabilities, my understanding is that students were very good at learning all the very formal definitions and theorems. Students were very good at handling measurable functions $f : A \mapsto B$. But when we applied measure theory to probabilities, suddenly we were dealing with random variables, which are measurable functions $X : \Omega \mapsto B$ except space $\Omega$ "doesn't matter" or is left unspoken and undefined, so really $X$ feels like a function with a codomain but no domain, and students were confused because the very dry formalism of measure theory was now cohabitating with the very blurry vagueness of functions with undefined domains.
But the teacher never identified this precise difficulty; so year after year he warned the students about a difficulty without being able to make his class less difficult. The materials covered in the second half of the semester is in my opinion not harder than the material covered in the first half; but it does require a shift in philosophy because of these unspoken domains.
- The second warning was by a teacher of the C programming language
So far we have only introduced variables. Now we will introduce pointers. This is a very hard topic and it makes language C much harder to learn than some other languages. It's okay if you don't get it at first.
Again, the prediction turns out to be true: many students start learning C, but never understand pointers and never become good C programmers, or at least it takes them an awful long time before they understand pointers.
Pointers are variables that hold the memory addresses of variables.
That's it. Pointers defined in one sentence, and it's actually super simple. So why are pointers so difficult? It's a self-fulfilling prophecy. Most teachers gloss over the topics of variables, which is reputed to be easy, and then dive into pointers and spend a lot of time on it, because it's reputed to be hard. But pointers are actually extremely simple, provided the student really understands variables. Trying to teach pointers on the shaky foundations of mistaught variables is what makes it hard.
Warning the students that "pointers are difficult, it's okay if you don't get it" is not helpful at all. It's laziness on the part of the teacher. Instead of warning the students of the difficulty, the teacher should identify where the difficulty stems from, and do a better job of explaining what a variable is.