Five years ago, the idea emerged that rather than presuming whether or not students had the necessary background or aptitude to enter CS1 based on satisfied prerequisites, to actually test students during the very first day of class. The questions then became "What kind of test to administer?" "What options to offer students with identified deficiencies?" and "Whether or not to enforce assessment test results?"In this paper, we report on an approach taken addressing the issue of the preparedness of students entering CS1. Specifically, we discuss the adoption of a first-day assessment test in lieu of completed course prerequisites for determining students' preparedness, and the development of a corresponding CS0 "fallback" course intended to provide the appropriate background for those students lacking the necessary programming reasoning skills, as indicated by assessment test results. We report here on the adequacy of the assessment test designed, the effectiveness of the CS0 course as targeted for CS1 success, and the perceptions of students as to the impact that the CS0 course has had on their ultimate success in CS1.It was decided that such an assessment test should be designed not to measure specific programming knowledge, but to measure whether students had the minimal degree of programming reasoning ability expected for success in CS1. With this intension, an assessment test was designed (by the third author) containing a set of ten simple programming questions. In addition, the questions were written in a pseudocode style comprehensible to anyone with sufficient aptitude or experience, regardless of particular prior programming language exposure.
Categories and Subject Descriptors
K.3.2 [Computers and Education]: Computer and Information Science Education.Along with the assessment test, a new "fallback" CS0 course was developed (by the first and second authors) designed to best prepare students for CS1. Thus, the view of this course was not one of providing a particularly broad view of computing for nonmajors (as is typical of most CS0 courses), but with the goal of providing majors with the appropriate mental models and conceptualization of programming for future success in CS1 [5,7].
General TermsLanguages, Measurement.
KeywordsComputer Science Education, CS0, CS1, Student Assessment, Curriculum Design. Finally, the question as to whether or not to enforce assessment test results, that is, to deny immediate entry into CS1 to those students not achieving adequate scores and requiring them to take CS0 first, was considered and decided against. The reasons for this were both philosophical and practical. If students who performed poorly on the assessment test were so notified, and still decided to remain in CS1, it was felt that they should be allowed to do so. Secondly, making students who have had previous programming courses from area institutions (and who still performed inadequately on the assessment test) take the CS0 course prior to taking CS1 would appear to show lack of confidence in other instituti...