Instructors of the introductory computer science courses, commonly called "CS1" and "CS2", face a large number of choices when designing their classes. Instructors have available to them a multitude of ways to explain each topic as well as course-wide choices such as objects-first or objects-late or using a functional or procedural language. Understanding how these options can affect student learning would help simplify these decisions. Unfortunately, just comparing how well students perform may not be accurate as it ignores the many confounding factors that could also have made a difference. To get beyond that problem, this study investigates underlying factors that affect student learning. Using a survey of instructors, we find that students' abilities are nearly always correlated with the importance that the instructor placed on a particular topic. Our results also highlight several "hard" topics for which student mastery and topic importance were not correlated in CS1 and only weakly correlated in CS2. While one might expect the time spent covering a topic in class to also be correlated with student mastery, we find little evidence of this. In fact, for some basic programming concepts, we document negative correlations between instructional time and learning. We discuss how instructors can use these results when organizing their courses and how the computer science education community can use this finding of "hard" topics to focus their efforts.
[1]
Nell B. Dale,et al.
Most difficult topics in CS1: results of an online survey of educators
,
2006,
SGCS.
[2]
Stephen H. Edwards,et al.
Ensemble: A Distributed Portal for the Distributed Community of Computing Education
,
2010,
ECDL.
[3]
Douglas D. Heckathorn,et al.
Implementation and Analysis of Respondent Driven Sampling: Lessons Learned from the Field
,
2006,
Journal of Urban Health.
[4]
Mark Guzdial,et al.
The FCS1: a language independent assessment of CS1 knowledge
,
2011,
SIGCSE.
[5]
Mark Guzdial,et al.
Developing a validated assessment of fundamental CS1 concepts
,
2010,
SIGCSE.
[6]
Carlos Gregorio Rodríguez,et al.
Computing Curricula 2001
,
2002
.
[7]
Matthew Hertz,et al.
What do "CS1" and "CS2" mean?: investigating differences in the early courses
,
2010,
SIGCSE.
[8]
Charles Kelemen,et al.
A 2007 Model Curriculum For A Liberal Arts Degree In Computer Science
,
2007
.
[9]
Karen Anewalt,et al.
A snapshot of current practices in teaching the introductory programming sequence
,
2011,
SIGCSE.
[10]
Michael C. Loui,et al.
Setting the Scope of Concept Inventories for Introductory Computing Subjects
,
2010,
TOCE.
[11]
Nell B. Dale.
Content and emphasis in CS1
,
2005,
SGCS.