I like the students to learn mostly by doing, rather than listening to lectures or watching demonstrations. I set them a fun and exciting challenge and give them limitations and hints and tips, and they have to come up with solutions and actually build and test them and get them to work.