Commonsense Computing: using student sorting abilities to improve instruction Tzu-Yi Chen Computer Science Dept. Pomona College Claremont, CA 91711 USA tzuyi@cs.pomona.edu Gary Lewandowski Mathematics and Computer Science Dept. Xavier University Cincinnati, OH 45207 USA lewandow@cs.xu.edu Robert McCartney Computer Science and Engineering Dept. University of Connecticut Storrs, CT 06269 USA robert@cse.uconn.edu Kate Sanders Mathematics and Computer Science Dept. Rhode Island College Providence, RI 02908 USA KSanders@ric.edu Beth Simon Computer Science and Engineering Dept. Univ. of California San Diego La Jolla, CA 92093 USA esimon@cs.ucsd.edu ABSTRACT We examine students’ commonsense understanding of com- puter science concepts before they receive any formal in- struction in the field. For this study, we asked students on the first day of a CS1 class to describe in English how they would arrange a set of numbers in ascending, sorted order; we then repeated the experiment asking students to sort a list of dates (in mm/dd/yyyy format). We found that a majority of students described a coherent algorithm; some described versions of insertion or selection sort, but many gave unexpected algorithms. We also found significant differences between responses given for sorting numbers versus dates. Based on our analysis of the data we suggest that beginning-programming instructors more ex- plicitly discuss data types, begin loop instruction with post- test loops, assist students in recognizing implicit conditional and iteration use in natural language solutions to problems, and recognize that novices and experts focus on different aspects of the problem in even basic problem solving tasks. Categories and Subject Descriptors K.3.2 [Computer Science Education]: Introductory Pro- gramming—abstract programming concepts General Terms Algorithms, Human Factors Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Copyright 200X ACM X-XXXXX-XX-X/XX/XX ...$5.00. Keywords CS1, preconceptions, resources, na¨ ıve, beginner, construc- tivism, sorting 1. INTRODUCTION This paper reports on the second in a series of projects in- vestigating “commonsense computing”: what students know about computing concepts before having formal instruction. Recent studies of computing students indicate that in- troductory students lack certain skills: both their ability to write programs [14], and their ability to read and trace code[13] are well below what we might expect. Ben-David Kolikant [3] found that students apply a sense of “mostly correct” to their programs, suggesting they do not even know what it would mean for their programs to work! These results are independent of the programming language and paradigm of instruction. On the other hand, studies have also demonstrated that students have considerable ability to reason about computer science topics. Ben-David Kolikant [2] found students could solve problems requiring concurrency; Gibson and O’Kelly [9] found pre-college students could solve a variety of search problems and beginning computer-science students could prove results about the Towers-of-Hanoi problem. This disconnect between demonstrated programming knowl- edge and demonstrated reasoning skills suggests students have considerable knowledge that we, as instructors, can leverage to teach computer science more effectively. To leverage students’ existing knowledge, however, we must first determine what that knowledge is. For our initial projects, we chose to focus on sorting, be- cause it not only encompasses key computing concepts such as models of storage, iteration, and conditional evaluation, but also is a “real world” task occurring naturally in stu- dents’ lives. The first project in this series, described in [18], investigated students’ knowledge of algorithms and sorting by giving them a list of ten positive integers and asking them to write a paragraph describing how they would put those