Strategies for encouraging individual achievement in introductory computer science courses

Students in introductory computer science courses often vary widely in background and ability. As a result, some students are bored by the pace of presentation, while others struggle to keep up. This paper describes our experience using open-ended assignments and programming contests to capture the interest of our strongest students without adversely affecting the educational experience for the other students in the class. This approach has been markedly successful, particularly for highly motivated students, who are often able to work well beyond the level of the class. The paper also includes a survey of student reactions to the various extra-credit opportunities, which indicates that many student value this component of the class even if they do not participate directly in these activities.