Measuring The Effect Of Intervening Early For Academically At Risk Students In A Cs1 Course
Author(s) -
William F. Punch,
Richard Enbody,
Colleen McDonough,
Jon Sticklen
Publication year - 2020
Language(s) - English
Resource type - Conference proceedings
DOI - 10.18260/1-2--16606
Subject(s) - computer science , python (programming language) , mathematics education , significant difference , programming language , multimedia , psychology , statistics , mathematics
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 Garcia 3 ]. 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 Leitner 7 ] have proven to be attractive introductions to computing, especially for non-majors. Media computation [Guzdial 4 ] has also been effective. Non-language approaches such as the Principles of Computation [Cortina 1 ] 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 P ge 15864.2 limited to, Microsoft Windows, Mac OS-X, and Linux. It includes many modern programming language features together with a seemingly limitless set of modules that extend it. Finally, Python interacts well with other languages. In short, Python can be described as a best-practices language, providing practical tools to do a job with a minimum of effort. Taken together these features allow a novice to focus more on problem solving and less on language issues. In addition, the built-in language features make data manipulation particularly easy allowing students to more easily work on real data. As a result, not only do students solve more challenging problems, but they also have a tool that can be used in subsequent courses, research or even personal use. Subsequently, a textbook that incorporates our approach is available: “The Practice of Computing Using Python” [Punch and Enbody 10 ], a textbook for using Python in a CS1 course. For these reasons, Python reduced our drop+fail rate, but the question remained: how can we reduce it further? To understand the issues, we need to explain the course.
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom