Louisville, Kentucky
June 20, 2010
June 20, 2010
June 23, 2010
2153-5965
Computers in Education
7
15.864.1 - 15.864.7
10.18260/1-2--16606
https://peer.asee.org/16606
514
Bill Punch is an Associate Professor in the Department of Computer Science at Michigan State University as well as the director of Michigan State's High Performance Computing Center. He is co-director of the Genetic Algorithms Research and Applications Group or GARAGe. His main interests are genetic algorithms and genetic programming, including theoretical issues (parallel GA/GP) and application issues (design, layout, scheduling, etc.). He also has conducted active research in data mining, focusing on the use of ontologies such as WordNet and Wikipedia for text search. He has also just published the textbook "The Practice of Computing using Python", a CS1 text using Python as the main language.
Richard is an Associate Professor in the Department of Computer Science and Engineering. He joined the faculty in 1987 after earning his Ph.D. in Computer Science from the University of Minnesota. Richard received his B.A. in Mathematics from Carleton College in Northfield, Minnesota in 1976, and spent six years teaching high school mathematics in Vermont and New Hampshire. Richard's research interests are in computer security, computer architecture, web-based distance education and parallel processing, especially the application of parallel processing to computational science problems. In 1998 Richard pioneered a CS1 course (first course in Computer Science) over the World Wide Web using RealVideo synchronized with PowerPoint. Together with Bill Punch he recently published a textbook using Python in CS1: The Practice of Computing Using Python (Addison-Wesley, 2010).
Colleen A. McDonough is a graduate assistant at the College of Engineering at Michigan State University. She is the coordinator of two component projects of a National Science Foundation grant focusing on retention issues and engaging early engineering students, and also serves as an academic advisor. Prior to coming to MSU, Colleen spent ten years as a development officer in the non-profit sector. She earned her bachelos degree in sociology from William Smith College and her mastes degree in Public Administration from the University of Southern California. McDonough is currently a doctoral student in the Higher, Adult and Lifelong Education program at Michigan State. Her areas of interest include educational theory, student development and education policy.
Jon Sticklen is the Director of the Center for Engineering Education Research at Michigan State University. Dr. Sticklen is also Director of Applied Engineering Sciences, an undergraduate bachelor of science degree program in the MSU College of Engineering. He also is an Associate Professor in the Department of Computer Science and Engineering. Dr. Sticklen has lead a laboratory in knowledge-based systems focused on task specific approaches to problem solving. Over the last decade, Dr. Sticklen has pursued engineering education research focused on early engineering; his current research is supported by NSF/DUE and NSF/CISE.
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