I am a student myself. At our university, we have a student-driven initiative which is called "Students to students" - higher grade students voluntarily give lectures on difficult subjects to younger students, removing all of the formality of standard lectures.
On the first semester, there come a bunch of first graders. And they are introduced to nothing other than dreaded Assembly 🙂 Having experienced no university lectures before, and kicking off first year with something completely different as ASM leaves newcomers baffled. That is where we step in 😁
Even though I am mostly organising lectures and arranging auditoriums, I have made a few lectures myself (If someone asks, those were on Interrupts, MPL and conditional operations).
In this article, I want to share my experience on what worked, and what didn't.
What worked really well in my case was comparing Assembly code to C code (in Lithuania, C is a standard language to be taught at school). C code is familiar to all of the students, thus making it easier to understand and read Assembly code.
Sometimes it is not possible to convert it 1 to 1, but that turned out to be even better. ASM --> C sometimes required additional steps in C, which in turn explained underlying logic of ASM.
This way, by seeing already familiar code by the side of ASM, they can understand things better.
When entering an unknown subject, it is much more useful to know WHY things are working or implemented in a particular way, rather than knowing WHAT they are doing.
Thats why I didn't talk only about my topic. For example, when talking about conditional operations, I had to explain how memory works, how commands are structured as machine code, that they are written as a sequence one after another, etc.
When you know the fact that commands are written into memory one after another,
jmps and their offsets in machine code start to make much more sense.
This might be obvious, but it is crucial to use simple language to explain difficult things. Avoid using any abbreviations until you've explained them and made sure that students understood it (more on that below).
This is not meant in a literal way. You need to know, that students are not yet serious scientists, that they have short attention spams, and do like jokes. Don't overkill with jokes or memes, they will find it cringey when it comes from older people and is overused 😁 use informal language, use student slang.
There is no point in lecture, if it was not understood. Be open to questions, ask for them, or even force someone to answer them. Especially people that are sleeping 😁 and definitely, don't expect perfect answer. Question them on their answer if it's wrong, to know their way of thinking and to fill in the gaps.
Double or triple check if majority has understood one point before moving to another and stay longer on the topic even if you have to go to absolute basics once again.
Pauses are really necessary. It is really difficult to concentrate on one subject for 1,5 hour. Give students a five minutes break to refresh their attention, to ponder on the subject you've been talking about, or simply to have a smoke 😁
Don't just give them all of your information. Ask students to explain things themselves. Ask them, why certain things are called so. Ask them, what is their opinion. Ask them control questions to see whether they follow you. Let them guess, and let them fail a lot to learn from own mistakes.
It is good to give students little excercices to understand subject deeper. After someone solved it, let them explain solution to their peers. It will benefit both them and other students.
Those were my learnings on teaching 🙂 please share your tips and tricks so me and other readers could improve our teaching skills!