A CS0 COURSE USING SCRATCH* Mona Rizvi, Thorna Humphries Debra Major, Meghan Jones, Heather Lauzun Computer Science Department Department of Psychology Norfolk State University, Norfolk, VA Old Dominion University 23504 Norfolk, VA 23529 757-823-9454 757-683-4235 [email protected], [email protected] [email protected], [email protected], [email protected]

ABSTRACT Although computer science enrollment has increased in the freshman and sophomore levels over the past few years, computer science departments are still faced with retention issues, particularly if some of their majors have weak mathematics backgrounds and are placed directly in CS1. In this paper, a new CS0 course using Scratch is described, along with a study to determine the effectiveness of the CS0 course at improving the retention, performance and attitudes of at-risk majors. Initial assessments indicate that students who are programming using Scratch have a high degree of perceived self-efficacy with respect to their programming abilities. Furthermore, the midterm performance of the students who took the new CS0 course in Fall 2009 and are currently enrolled in CS1 exceeds that of students in previous years. INTRODUCTION According to the 2007-2008 Taulbee Survey [1], computer science enrollments have seen a long awaited upward turn in enrollments at the undergraduate level. The increase in enrollment was reported as 6.2% from 2007 to 2008 alone [1]. Thus, computer science departments are seeing a marked increase in enrollments at the freshmen and sophomore level. However, retention is still a major concern of some computer science departments. A study in the late 1990s [3] showed that the attrition rate was highest in the freshman and sophomore years for computer science (CS) majors. Although this study was completed over ten years ago, it still rings true today. At the authors’ university, more than half of first-year CS students who take CS1 in the Fall semester have either left the ___________________________________________ *

Copyright © 2010 by the Consortium for Computing Sciences in Colleges. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the CCSC copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Consortium for Computing Sciences in Colleges. To copy otherwise, or to republish, requires a fee and/or specific permission.

19

JCSC 26, 3 (January 2011) major or stopped actively attending the university by the Spring semester of the following year. To reduce the attrition rate in the freshman and sophomore years, researchers have targeted the CS1 and CS2 course sequence in an effort to produce courses that enable learning, stimulate a positive interest in programming and thus create a positive attitude towards computer science. Through several years of study, investigators have attributed various factors to the attrition rates of computer science majors. Some researchers suggest that introduction of the object-oriented (OO) paradigm in CS1 courses might have been a contributing factor in low enrollment [5]. According to McCauley and Manaris [9], 89% of the CACaccredited programs offered in 1999-2000 used C++ or Java as a first language. During the transition period from the procedural language paradigm to the OO paradigm, professors who taught procedural languages like Pascal learned either C++ or Java. Professors who were trained in a procedural language taught themselves the OO paradigm from a procedural perspective and thus taught their students in the same manner. In adopting this paradigm, topics such as classes, encapsulation and inheritance were added to a long list of other programming language concepts, and thus increased the complexity of the CS1 course. Many of the students who take CS1 have no prior knowledge of programming and must learn all these programming concepts in a short period of time. Furthermore, the current generation of students is not easily engaged using the traditional methods of teaching computer science. These students have been referred to as the “Nintendo generation,” and they want more media incorporated into the classroom as well as instant feedback [5]. With respect to this generation, students have little or no interest in learning how to program with common assignments such as calculating interest on an account or creating a grade book. Lastly, in the late 1990s, universities were faced with cutting the number of courses in their degree programs to lessen the effect of rising tuition cost. Therefore, courses such as CS0, which taught algorithm development and used visual aids like flowcharting and Nassi-Schneiderman charts, were often removed from curriculums, resulting in atrisk CS majors, majors that enter the university with weak mathematics or computer science backgrounds, being placed immediately in CS1. One approach to reducing the attrition has been to support learning how to program through the use of narrative tools, visual programming tools, and flow-model tools [5, 7, 12, 16]. The objective of these tools is to provide some level of abstraction with respect to the syntax of a programming language so that a student can concentrate on algorithm development. Additionally, some also provide instant feedback; e.g., Alice supports storytelling using animation. In this paper, a new CS0 course and a study that examines the effectiveness of Scratch to improve the retention and the performance of at-risk computer science freshmen (students with weak mathematics preparation) are described. These students are targeted due to the fact that at the authors’ university in 2005-2007, only 42% of these students passed CS1 as opposed to 72% of the student population that had the required mathematics background. Some preliminary results of the study are also presented.

20

CCSC: Eastern Conference BACKGROUND AND RELATED WORK Scratch is a new media-rich programming language and environment developed by the Lifelong Kindergarten group at the MIT Media Lab with the UCLA Graduate School of Education and Information Studies, which was officially launched in May 2007 [15]. The goal of Scratch, as stated on its website, is: “Scratch is designed to help young people (ages 8 and up) develop 21st century learning skills. As they create Scratch projects, young people learn important mathematical and computational ideas, while also gaining a deeper understanding of the process of design. With Scratch, kids can create their own interactive stories, games, music, and animation and share their creations with one another on the Web.” [15] In addition to helping students develop or enhance their problem-solving skills, Scratch provides an environment conducive to learning about problem decomposition and the design process. The following design goals and features of Scratch make this programming language and environment an attractive choice for a CS0 course: the simple and intuitive snap-together block style programming constructs that prevent syntax errors, its media-richness, the support of common programming constructs, and the large online community of Scratch programmers that provide an enormous repository of programming examples. Scratch has been used extensively in the K-12 system, but there are only two formal reports of its use at the college level. Malan and Leitner performed some preliminary testing of Scratch as a precursor to Java in a course that was offered at Harvard Summer School. At the end of the course, they surveyed their students with respect to the impact that Scratch had on their experience programming in Java and found that 76% rated the effect as positive, 8% rated the effect as negative, and 16% indicated that there was no effect [7]. Wolz at The College of New Jersey has also used Scratch at the beginning of a CS1/CS2 course before transitioning into Java [18]. CS0 COURSE Using the Scratch programming environment, a new programming course was created as part of a NSF-CCLI proof-of-concept study. Lectures and in-class laboratory assignments were used to cover the topics that were taught in the course. At least one class period per week was spent on lab work. A final project was required that included three preliminary assignments: a project concept document (to get approval for the idea), a project update, and a detailed project description and storyboard. The course goals were as follows: (1) Be able to design and implement complex multimedia Scratch projects, (2) Use and understand basic programming constructs, including sequence, iteration and selection, and (3) Use and understand more complex programming constructs (variables, arrays, simple objects, functions, event-driven programming, and synchronization). Some of the major topics covered in the course were program design, 2D graphics and animation, multimedia, iteration and selection, synchronization, variables, and arrays. Table 1 contains an outline of the course. A subset of these topics and some of the related assignments are discussed below.

21

JCSC 26, 3 (January 2011)

2D Graphics and Animation Interesting Scratch projects involve a significant amount of graphics and animation. Because the student population was targeted based on weak mathematics preparation, the x-y coordinate system and simple geometry were reviewed. Throughout the course, these mathematical concepts were revisited in laboratory and homework assignments by including problems such as having a sprite move in a circular or rectangular motion, having a sprite jump up and down, and shading horizontal or vertical areas.

TABLE 1 CS0 Course Outline Week Topics 1 Introduction to programming General overview of Scratch 2-3 Motion (2D graphics) 4 Planning and designing a project Storyboards 5 Using multi-media (graphics and sound) 6-7 Iteration Boolean expressions Selection Midterm- 2 parts (paper and 8 9 programming)

Design Project planning and design were covered by introducing the concept of storyboards, which are well-suited to expressing the design of animations and games. Students were required to submit storyboards with their larger assignments and their final projects. Iteration and Selection In covering these topics, the programming assignments addressed if-else constructs and the different kinds of loops. Boolean logic was discussed and students had several exercises that required evaluating Boolean expressions. Synchronization Scratch has a broadcast/receive capability that is used to synchronize the interaction between sprites. A sprite broadcasts a message to the other sprites, which then receive the message in order to take an action. In the lectures about broadcasting, the concept of a function was introduced. The broadcast/receive capability can be used in the same way as a function to lessen repeated code. Variables Scratch supports numeric and string variables. Variables can be made local to a sprite or global. In one of the assignments on this concept, the Scratch pen blocks were used to create a flower-drawing “function” that used one variable to control the flower size and another to control the number of petals. The students also worked with Boolean variables (using 0 and 1).

22

CCSC: Eastern Conference Arrays Arrays are known as lists in Scratch, and can be used to store numeric values or strings. The students completed several exercises: paper-based practice on arrays, an assignment to control dialogue with arrays and an assignment that used an array to represent the board of a tic-tac-toe game. Objects Although Scratch does not explicitly support objects, the sprites, with their own attributes, scripts, and local variables, model the concept of encapsulation very well. It is the belief of the authors that this concept will feel natural to the students when it is introduced to them later in CS1. THE STUDY In Fall 2009, a study was initiated to investigate the effectiveness of using Scratch to improve the retention and performance of at-risk computer science majors through the development of a new CS0 course. This section provides a description of the components of the study. It also provides some preliminary results. The study is scheduled to last for two years. The results reported below cover approximately one year of the study. Research Questions In this study, three research questions are being investigated. They are as follows: 1. Can students establish or improve their understanding of core programming concepts in order to help them be successful in CS1? 2. Can a media-rich programming language environment aid in the development of a positive first impression of programming? 3. Through the development of increased problem solving skills and a positive attitude, can the number of at-risk students retained in the computer science major be increased? Participants The target group in this study consists of students who entered the university with mathematics backgrounds that required them to take college algebra as their first mathematics course and who chose computer science as their major. These students were assigned to take the new CS0 course in Fall 2009. During Fall 2009, the comparison group consisted of students in CS1 who were not at-risk students. Assessment Instruments The grades of students in the target group were collected in CS0 and will be collected in CS1 and CS2, along with their responses to an online survey that will be administered each semester. The core of the survey measures the commitment to the 23

JCSC 26, 3 (January 2011) major, fit to major, programming and mathematics self-confidence, and programming proficiency. The scales for each of these categories were adapted from several existing instruments. Commitment was measured using adapted items from Meyer et al. [10]. Fit with major was measured using adapted items from Cable and Judge [2]. Lastly, programming and mathematics self–confidence are measured with adapted items from a subscale “Confidence in Learning Computer Science” of the “Computer Science Attitude Scale” created by Williams et al. [17]. The student’s perception of programming proficiency is measured with one item that was created by the investigators. Other areas covered in the survey consist of role ambiguity, participation, belongingness, classroom climate, effort, feedback from programming assignments, attitude towards the Scratch programming environment, and feedback from the professor. Results To Date The results to date include data collected through midterm of Spring 2010. In this section, the data analysis of the target students of CS0 is presented along with initial data from the members of the target group who are currently taking CS1. In the Fall 2009 CS0 course, students in the target group were surveyed at three different points during the semester. Students in the comparison group who were enrolled in CS1 were given the same survey twice during the semester. Analyses reported here were conducted with data from the final surveys administered. Table 2 presents correlations among the outcome variables (course grade, commitment to the CS major and fit with the major) and programming and math self-confidence and programming proficiency for CS0 students. Of note, course grade was positively related to programming proficiency. The categories of commitment to major and fit with major were both positively related to math and programming self-confidence and programming proficiency. As shown in Table 3, independent-sample t-tests revealed significant mean differences between students enrolled in CS0 and CS1. Specifically, students enrolled in CS0 reported significantly greater commitment to major and programming selfconfidence. TABLE 2 Correlations Between Outcome Variables and Self-confidence and Proficiency (CS0) Variable 1 2 3 4 5 6 1. Course Grade -2. Commitment to Major .38*** -3. Fit with Major .27*** .57*** -4. Programming Self-Confidence .19*** .64*** .60*** -5. Math Self-Confidence .24*** .62*** .56*** .63*** -6. Programming Proficiency .44*** .64*** .37*** .66*** .37*** -_____________________________________________________________________ Note: * p < .05; ** p < .01; *** p < .001; N = 43 for all variables except grade (N = 42)

24

CCSC: Eastern Conference TABLE 3 Mean Differences in Study Variables ScaleRang e Commitment to Major 5.43* 4.64* 1-7 Fit with Major 3.45* 3.61* 1-5 Programming Proficiency 3.58* 3.27* 1-5 Programming Self-Confidence 3.85* 3.33* 1-5 Note: * means are different at p < .05. NCS0 = 43; NCS1 = 33. Variable

CS0

CS1

In response to the programming proficiency item of the survey, 55.8% of the target group felt that they were able to identify problems in their programs but sometimes needed help to find solutions. Items ranged from not being able to start a program assignment without assistance to being able to independently identify problems and find solutions. Analyses of target group surveys also indicated a slight drop in positive attitudes toward programming over the semester. With respect to retention of the target group, at least 70% of these students were retained in the major, some of which enrolled in CS1 in the following semester. Twenty-four of the target group, which consisted of an equal number of students who either passed or failed CS0, enrolled in CS1 in Spring 2010. Others of the target group failed to enroll in CS1 due to scheduling conflicts. Of these twenty-four freshman CS majors, 66% were passing CS1 at midterm. This is in contrast to a 42% final passing rate in CS1 for freshman majors in 2005-2007, and 44% in Fall 2008. CONCLUSION Scratch is a media-rich programming language and environment that is free from the distraction of syntax while supporting the implementation of complex projects, such as games. It thus enables focus to be placed on algorithm development and the design of projects. Although our study is in its initial stages, analysis of the surveys and the early data on the performance of the target group in CS1 show promising results that indicate that a CS0 course using Scratch as a programming language can be used to effectively prepare at-risk computer science majors for CS1. Sixty-six percent of the at-risk CS majors were passing the CS1 course at midterm, compared to the previous year in which at-risk students were placed into CS1 and fifty-six percent of them failed. However, there is still a lot of analysis that must be completed in the coming year in order to a make a definitive statement on the effectiveness of a CS0 course using Scratch. ACKNOWLEDGEMENTS This work was supported, in part, by the National Science Foundation under Grant DUE-0837695.

25

JCSC 26, 3 (January 2011) REFERENCES [1] 2007-2008 Taulbee Survey, Computing Research News, 21(3) 3, 8-23, May 2009. [2] Cable, D. M. and Judge, T. A., Person-organization fit, job choice decisions, and organizational entry, Organizational Behavior and Human Decision Processes, 67(3), 294-311, 1996. [3] Cohoon, J. M. and Chen L. Y., Migrating out of Computer Science, Computing Research News, 15(2), 2-3, 2003. [4] Cooper, S., Dann, W., Pausch, R., Alice: A 3-D Tool for Introductory Programming Concepts, Journal of Computing Sciences in Colleges, 15(5), 108117, 2000. [5] Guzdial, M. and Soloway E., Teaching the Nintendo generation to program, Communications of the ACM, 45(4), 17-21, 2002. [6] Guzdial, M., Introduction to Media Computation: A Multimedia Cookbook in Python, Upper Saddle River, NJ: Pearson Prentice Hall, 2005. [7] Malan, D. J and Leitner, H. H., Scratch for Budding Computer Scientists, SIGSCE’07, Covington, KY, 223-227, 2007. [8]

Manaris, B., Dropping CS Enrollments: Or the Emperor’s New Clothes?, Inroads SIGCSE Bulletin, 39(4), 6-9, 2007.

[9] McCauley, R. and Manaris, B., Survey of Departments offering CAC-Accredited Degree Programs, 2002, www.cs.cofc.edu/~mccauley/survey. [10] Meyer, J. P., Allen, N. J., and Smith, C. A., Commitment to organizations and occupations: Extension and test of a three-component conceptualization, Journal of Applied Psychology, 78, 538-551, 1993. [11] Moskal, B., Lurie, D., Cooper, S., Evaluating the Effectiveness of a New Instructional Approach. SIGCSE’04, Norfolk, VA, 75-79, 2004. [12] Powers, K., Cooper, S., Goldman, K., Carlisle, M., McNally, M., Proulx, V., Tools for Teaching Introductory Programming: What Works? SIGSCE’06, 560561, Houston, TX, March, 2006. [13] Programming Concepts and Skills Supported in Scratch. http://scratch.mit.edu/files/program-concepts-v5.doc, retrieved November 19, 2009. [14] Resnick, M., Maloney, J., Monroy-Hernandez, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum, E., Silver, J., Silverman, B., and Kafai, Y., Scratch Programming for All, Communications of the ACM, 52(11), 60-67, 2009. [15] Scratch website. http://scratch.mit.edu, retrieved November 19, 2009. [16] Sloan, R. H. and Troy, P., CS 0.5: A Better Approach to Introductory Computer Science for Majors, SIGCSE’08, Portland, OR, 271-275, 2008.

26

CCSC: Eastern Conference [17] Williams, L., Wiebe, E., Yang, K., Ferzli, M., and Miller, C., In Support of Pair Programming in the Introductory Computer Science Course, Computer Science Education, 12, 197-212, 2002. [18] Wolz, U., Leitner, H., Malan, D. and Malony, J., Starting with Scratch in CS 1, SIGCSE’09, Chattanooga,TN, 2-3, 2009.

27

A CS0 course using Scratch

ABSTRACT. Although computer science enrollment has increased in the freshman and sophomore levels over the past few years, computer science ...

59KB Sizes 4 Downloads 163 Views

Recommend Documents

elementary mechanics using matlab a modern course ...
read this user guide in order for this unit to function properly. ... The problem is that once you have gotten your nifty new product, the elementary mechanics using ...

Problem Set 0: Scratch
Sep 10, 2010 - form that may take a few minutes, so best not to wait until the very last ... you with an email address of the form [email protected], ...

Problem Set 0: Scratch
Sep 10, 2010 - dishonesty: you may not submit the same or similar work to this course that you have submitted or will submit to another. Nor may you provide or make available solutions to problem sets to individuals who .... a bit simpler than we exp

Problem Set 0: Scratch
Sep 10, 2010 - All work that you do toward fulfillment of this course's expectations .... For clues on a Mac, select About This Mac from your Apple menu and ...

lrwpanerrordistanceplot.cc ../scratch/lrwpanerrordistanceplot.cc: In ...
ns3/ptr.h:456:7: error: invalid use of incomplete type 'class ns3::SpectrumValue' m_ptr>Unref ();. ^. In file included from ./ns3/lrwpanphy.h:25:0, from ./ns3/lrwpanmac.h:32, from ./ns3/lrwpannetdevice.h:28, from ../scratch/lrwpanerrordistanceplot.cc

Problem Set 0: Scratch
Sep 10, 2010 - appropriateness of some discussion, contact the course's instructor. ... phone at 617-‐495-‐9000, in person in Science Center B-‐14, or via ...

Scratch-21stCenturySkills.pdf
Page 1 of 2. Scratch is a new programming environment developed by the Lifelong. Kindergarten research group at the MIT Media Lab (http://scratch.mit.edu).

Problem Set 0: Scratch
Sep 10, 2010 - appropriateness of some discussion, contact the course's instructor. ... phone at 617-495-9000, in person in Science Center B-14, or via email ...

Scratch Semi.pdf
Sign in. Loading… Page 1. Whoops! There was a problem loading more pages. Retrying... Scratch Semi.pdf. Scratch Semi.pdf. Open. Extract. Open with. Sign In.

Setup: Scratch GPIO - GitHub
details of Scratch GPIO is available on his website: http://cymplecy.wordpress.com/scratchgpio/. How to install Scratch GPIO. Obtain Scratch GPIO. Scratch GPIO ...

Problem Set 0: Scratch
Sep 10, 2010 - phone at 617-495-9000, in person in Science Center B-14, or via email ... If you're running Windows (particularly a 64-bit version thereof) and ...

Scratch Programming
design your own sprites, how to clone them in Scratch 2.0, .... You don't need to install any software to use Scratch 2.0: it runs inside your browser, using an Internet connection. Scratch 2.0 needs a computer that can run the Adobe Flash Player, th

Linux From Scratch
Home page: http://linux-net.osdl.org/index.php/Iproute2 ...... man pages Describe C programming language functions, important device files, and significant.

Scratch 5 km.pdf
1 ROULLEAU LEO FRA OUI n°532 96 1 ESM 1 M 00:17:20 17.32 [38] CA PONTCHARRA LA ROCHETTE. 2 DANNOUX Cedric FRA n°551 91 1 SEM 2 M 00:17:44 16.93 Non Licencié. 3 LE SOUARNEC Mael FRA 1446793 n°540 86 2 SEM 3 M 00:17:54 16.77 CAPR. 4 TOURNIER NICOLA

Starting from Scratch
are individually tailored quality systems designed for a specific business or ... has been no out-of-the-box tool, checklist or internet guide to implementing a.