June 20, 2010
June 20, 2010
June 23, 2010
Computers in Education
15.864.1 - 15.864.7
Measuring the Effect of Intervening Early With at Risk Students in a CS1 Course
Abstract We recently converted a CS1 (Introduction to Computing) class to use the Python language in place of C++. Among other reasons, we hoped that the new language would help students who typically struggled with the course. Our typical drop+fail rate was around 25%-30% for C++, and we hoped the conversion would reduce this number. Though it did reduce slightly, 15%- 25%, it was not as significant as we had hoped. We therefore tried an early intervention strategy to help those students whom we could identify as struggling. We provided extra tutoring for only those students. We then calculated statistics on the effects this extra tutoring. The results were not good: we found no significant difference between the group of students who used the tutoring and those that did not. We review some of the potential reasons for this result.
Background, Why Python A CS1 course is a first course in computer science, and usually emphasizes an introduction to programming. It is also a course on problem solving and applying a programming language to solving a problem. As a result, the choice of programming language can have a significant impact on the implementation of the course (see Pears et al.8 for an excellent survey). A recent survey of the top thirty Ph.D. CS degree-granting programs showed a distinct preference for Java [Forbes and Garcia3]. For fifteen years C++ has been the language for our CS1-CS2 sequence—a long time in the computer science world.
As in some other institutions, non-CS majors have found our CS1 course to be useful. We find that now the majority of students in the course are non-CS majors who are not required to take the course. STEM students (Science, Technology, Engineering, Mathematics) are naturally drawn to the course, but we have found students from all majors in our CS1 course. As the impact of computing has grown across all fields there has been an increasing need for students in all majors to develop some programming skills. In particular, a computing course that, after one semester, develops students into effective programmers is needed. We found that C++ did not adequately satisfy that need within one semester, and we were not convinced that its sibling languages, Java and C#, satisfied that need significantly better.
Languages such as Alice [Powers et. al.9] and Scratch [Malan and Leitner7] have proven to be attractive introductions to computing, especially for non-majors. Media computation [Guzdial4] has also been effective. Non-language approaches such as the Principles of Computation [Cortina1] have also proven to be effective. However, many such approaches are for "CS0" courses. Such courses are valuable, but we are working with a course that must prepare students for CS2, and it has not yet been demonstrated that those approaches satisfy that goal.
Python features a mixture of readability and practicality—nice features for an introductory language. It is also an interpreted language that encourages experimentation—a great learning aid. It has a number of immediately available data structures (strings, lists, dictionaries a.k.a. associative arrays, and sets) with associated functions and methods to easily manipulate those structures. It is object-oriented which helps in preparation for both solving complex problems and other languages. It is a free language that runs under most environments including, but not
Punch, W., & Enbody, R., & McDonough, C., & Sticklen, J. (2010, June), Measuring The Effect Of Intervening Early For Academically At Risk Students In A Cs1 Course Paper presented at 2010 Annual Conference & Exposition, Louisville, Kentucky. 10.18260/1-2--16606
ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 2010 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015