I have lectured, taught, or assisted in a variety of courses relating to numerical and computational methods, from the upper level undergraduate to the advanced graduate level. Here are the elements I have found to be helpful as an instructor:
Research Projects
For advanced classes, a research project (incorporating numerical research, usually some software development, and a write-up) are a very nice way for students to tie in their research with their academic coursework. I think that a project should be mandatory in graduate level courses, but for undergraduates they are better replaced with more directed work.
Programming Homework Assignments
The core of any computational science class is accessible programming assignments. For students with no programming experience you will need to back up your assignments with some introductory sessions to the programming environment, and ideally some sort of "help room" offered either by your department or a student organization such as SIAM. Allowing multiple frameworks and programming languages can be difficult, I accepted programs written in any language but supported only one environment, usually freely available in the University computer laboratories (operating system, editor, shell, interpreter, etc...)
Quizzes
I really like short 10-15 minute in-class quizzes once every week or every other week. It is good two-way feedback: the students see how they are doing against my expectations and against each other, and I see which concepts they are hitting and missing. This style of evaluation is not very commonly used in Europe, and I think this is a shame.
Examinations
Examinations are pencil and paper, with analysis of algorithms, code fragments, and mathematical techniques. I have never participated in a computer laboratory examination, either as a student or an instructor/evaluator. I think the closest thing I have seen is requiring a student to demonstrate their homework or project as well as answer questions about design or implementation.
The Dishonesty Constraint
Both as a student and as an instructor, I have seen enough dishonesty in the academic system to avoid relying on honor for more than 50% of a student's grade. This means that evaluations such as projects and homework, where access to external resources could lead to academic dishonesty, do not contribute to more than 50% of the course grade.