Most of the available extra patches / protocols are written for ns2
versions 2.26 2.27 2.28 2.29 2.30 2.31 2.32 2.33 ( 2.34 ).
The source code files are c++ files.
Thus the easy way is to use the ns2 version that the patch was meant for.
In very rare occasions, an LQ member will modify the code to a later ns2.
About the protocols that teachers will suggest : Don't know.
But may be the teachers will assign an ns2 protocol,
that they used 10 years ago, when they were students.