There are various themes in pedagogy that cater to different types of learner so classes should do their best to reflect these types in the classroom.
There should be a division between lectures and seminars/lab work, or theory and practice/debate. This means information is distributed en mass initally and the discussed in smaller groups for clarification.
As stated earlier (e8) students who are proficient in a topic, mitosis for example, should be able to help assist teaching those of a lower level covering that subject. By explaining a topic one comes to understand it better.
Each high level student will have a mentor he can refer or defer to in times of need and have dialogues with. A mentor must be at least a number of grades above the student.
E-learning will be progressively worked on as will videos created to explain all topics in the subject, complete with questions to assess comprehension and open questions that students might consider writing experiments for, contemplate on or engage in dialogue about.
New methodologies of teaching should constantly be assessed and debated. Also all new members should have some exposure to teaching seminars and lectures [not just participating].
[Note: In the years since I’ve written this the rise of MOOC’s and available resources for learning everything from code to languages has exploded across the internet, in this case these give the community nearly all the material required to created an extremely nuanced hierarchy of grades without lifting a finger. However, all free open projects should be given as much support as possible via the community to continually help and improve their services. I know these initial thoughts were written on buses and trains around town, each one of them could be the basis of whole books in themselves, however the good news is there is a huge wellspring of available resources now to help any community member learn an incredible amount even if they are the first in the community to express an interest in the field.]