I have given an example below of the beameraudience package. It is fairly minimal and not very exciting. Although it doesn't answer exactly the question that I asked it comes very close to it. All I need to do is comment out the modules I don't want and then compile.
The three macros \framefor{}{} \justfor{}{} \showcontentfor{}{} are used below. \framefor{audience}{frame contents} basically selects the whole frame for a the [audience]. As \begin{frame} and \end{frame} are defined in the macro they are not needed but the frame title is. \justfor{audience}{contents} can include full frame contents (requires use of \begin{frame}...\end{frame} or just in-frame content. \showcontentfor{audience}{content} is a slightly more subtle usage of \justfor{}{}
Looking at the beameraudience style file, one can only define one audience. If it was possible to define a list of audiences using the ifthenelsecommand allowing more than one audience type to be selected that would be ideal. By this I mean that I don't have to repeat the content for say two of three audience types, I can include the two in the option [audience=intermediate,expert].
\documentclass{beamer}
\usepackage[audience=
CHEM7002
%CHEM6005
%CHEM8005
]{beameraudience}% comment in the audience you are reaching out to...
\begin{document}
\begin{frame}{Grignard Reagents}
This frame appears for all modules as we do not use any of the beameraudience commands.
\end{frame}
\framefor{CHEM8005}
{
{Grignard Reagents-General reaction mechanisms}% definition of \framefor{audience} {\begin{Frame} Frame contents\end{frame}} hence the frame title being in parentheses and no \begin{frame} \end{frame} environment
This frame only appears for module CHEM8005 when compiled...
}
\begin{frame}{Grignard Reagents-Aldehydes and Ketones}
This frame appears for all modules as does this line.\\
\justfor{CHEM6005}{But this line only appears for module CHEM6005.}
\justfor{CHEM7002}{This line only appears for module CHEM7002.}
\justfor{CHEM8005}{This line only appears for CHEM8005.}
\end{frame}
\begin{frame}{Grignard Reagents-Esters}%[CHEM8005]
This frame appears for all modules.
\showcontentfor{CHEM6005}{CHEM6005. Only the barest details are necessary.}\showcontentfor{CHEM7002}{CHEM7002. A little bit more information is given.}\showcontentfor{CHEM8005}{CHEM8005. A lot more information and maybe a few diagrams are given for this module.}\end{frame}
\justfor{CHEM7002}{
\begin{frame}
Only content for CHEM7002
\end{frame}
}
\end{document}
\includeonlyframesin thebeamermanual. You can add alabel=<text>to every frame and then only include certain ones. – Martin Scharrer♦ Apr 19 '12 at 13:36beameraudience. This package is made to reassemble beamer frames. I never worked with it so i neither have a example ready nor any experience but from its description it seems to be handy. – bloodworks Apr 19 '12 at 13:55beameraudienceworks for you, please post an answer to your question so the rest of us can get an idea of what it can do. – Andrew Stacey Apr 20 '12 at 8:44