Almost every computer science program contains two semester-long introductory courses, usually named Computer Science 1 (CS1) and Computer Science 2 (CS2). They have been a mandatory element of the ACM Computing Curriculum for nearly fifty years and are likely to remain so for many years to come. While there seems to be a broad agreement on the key elements of CS1, the curriculum for CS2 can vary significantly between institutions. What material should in fact be included in CS2? Ideally, an educator would want to cover the topics that students need to master in order to successfully learn other topics further in the course and in the subsequent courses in the curriculum (important topics). They would also want to concentrate on topics that students are likely to struggle with and take a longer time to understand (difficult topics).
This paper details the process and results of a multi-year international study that examined the
topics of difficulty and importance in CS2 using Delphi method (an iterative process for reaching
consensus among a group of subject experts that allows the participants to reconsider their opinions based on the anonymized responses of the other experts in the group provided at
preceding iteration). We present three topic sets aiming to inform the choice of topics for
designing a CS2 course or exam. The first set contains the topics selected based on importance
and indicates what topics should be included in a CS2 course or its textbook. The second set of
topics is based on both importance and difficulty and as such would be a guide for the creation of exams and concept inventories. The third set contains the topics that none of the faculty experts marked as either important or difficult suggesting delegation to a different course or leaving them for self-study. We also provide a comparison with other published topic sets for CS2.
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.