Objectives and objective assessment in CS1

When designing a first semester "CS1" programming subject, I advocate "truth in sentencing". That is, the objectives should be explicit, and the assessment tasks should reflect the objectives. This may appear to be a statement of the obvious, but few subjects satisfy these criteria. The traditional CS1 approach is to set students the task of writing extensive code, as early as possible. On closer inspection of such subjects, one finds marking schemes for exams and assignments that are generous to the point of being inconsistent with the subject objectives. Instead, students should not write any original code in CS1, and should be examined by multiple choice question.