$\begingroup$

There is one strategy, at least, that often works, especially with older and more experienced students. Using it in Secondary School would, perhaps, be too risky. It is also probably not indicated for core courses except when no alternative can be found.

The underlying principle is that you should not lie to your students or present yourself as other than you are. In other words, don't fake it. On the other hand, what you are is a scholar: someone who can learn. Someone who knows how to learn.

The basic technique is to run the class like a learning lab in which everyone contributes ideas constantly. There is more discussion and almost no "lecture" unless you can get the students to give mini-lectures on cool things they have discovered about the topic. It is teamwork in the extreme with yourself just a team member.

EXCEPT, that your main job is to show them how to learn: research, reading, experimentation, trial and error. You don't supply a lot of course content but you do supply learning strategies and feedback on the things that the students learn.

A slightly less important task is to guide the students away from pure chaos. You will need to get them to focus on things in a reasonable order, delaying things that seem deeper or less connected to the main ideas being presented.

To ease your comfort level, try to find a few recognized experts in the topic at hand. This doesn't necessarily mean text-book authors, unfortunately. You might be surprised that some of them are willing to give you guidance (pointers to papers, etc) that will help you guide the class.

One trick is to have daily summaries produced, perhaps by yourself, and perhaps by students, rotating this task and making the summaries available to all: What are the two or three most important things we discovered today.

If the course is about programming you can organize a very agile team to try to produce something interesting within the framework of the course. If it is about theory you can try to teach students how to find the crux of the proof of a theorem (for example).

Note that this is exactly what you are forced to do if you are teaching a topic that is state-of-the-art, edge-of-the-known-world stuff. Nobody knows how to teach it methodically, so try to develop the method yourselves.

Another use of this is when a group of students forms a Learning Club to explore some topic. The group leader may know a bit more than the others and can try to guide them, but it is a learning-for-all situation.

Learning how to learn is likely more important than any specific topic. Without that you can never leave your guides behind nor can you outshine your teachers. Older students have, hopefully, already experienced learning and, hopefully, have a few learning strategies developed already so it isn't as big a task as teaching novices in a field in which they have no preparation at all.

I note that there was a time, around 1980, I think, at which you could earn a Doctorate from Carnegie Mellon University in CS, but could not earn an undergraduate degree. The reasoning behind that was that "there was insufficient academic content" at the time in CS, in the faculty's judgement. The doctoral students were, of course, developing that content that could later filter down to a wider audience.