If your intent is to include only a single course .tex file with your template, then you set all your titles, headings, etc. in the course .tex file and use \input{<filename>} in your template file. Here's a brief illustration of what I'm talking about (you would have a number of course.tex files):
course.tex
% Course preamble
\usepackage{<packages>}% Course-specific package(s)
%...
\begin{document}
% Course body/content
\end{document}
template.tex
\documentclass{article}% Main document class
% Template preamble
\usepackage{fancyhdr}% http://ctan.org/pkg/fancyhdr
\usepackage{<packages>}% Generic packages used throughout all courses
%...
% Other generic packages
% Other generic settings
\input{course}
The \input{<filename>} command extracts the contents of <filename>.tex verbatim and inserts it in a document where it is called. As such, you're able to include anything in <filename>.tex that you would normally in your main .tex template file. Just as long as the sequence of commands follow the regular/required document structure:
\documentclass{<class>}
%preamble
\begin{document}
%body
\end{document}
You'll note that, when \input{course} is replaced with the contents of course.tex in the first example, the above document structure will result, leading to a successful compile that is course specific.
As mentioned, this does not allow you to mix courses together and compile (say) course1.tex and course2.tex into your main template, since the each would have a preamble that would conflict with the regular document structure. If you do want this setup (for whatever reason), the you need to consider using something like the standalone package/document class or the subfiles package.
As an interesting side-note, consider reading When should I use \input vs. \include?