Implementing IT0/CS0 with Scratch, App Inventor for Android, and ...

6 downloads 193 Views 938KB Size Report
language, App Inventor for Android, and Lego Minstorm robotics. Categories and Subject Descriptors. K.3.2 [Computer and Information Science Education]:.
Implementing IT0/CS0 with Scratch, App Inventor for Android, and Lego Mindstorms Suleyman Uludag

Murat Karakus

Stephen W. Turner

University of Michigan - Flint Dept of Comp Sci, Eng & Phy Flint, MI 48502

University of Michigan - Flint Dept of Comp Sci, Eng & Phy Flint, MI 48502

University of Michigan - Flint Dept of Comp Sci, Eng & Phy Flint, MI 48502

[email protected]

The trend of declining enrollment and interest in computing fields, combined with increased demand from the industry, challenges instructors to come up with new, fresh and appealing methodologies to attract and retain students. Further, with the diffusion of information and computing technologies into almost all fields of study, introductory computing courses for non-majors need approaches that motivate students to feel comfortable with the life-long learning of computing concepts and tools. The goal of this paper is to summarize our teaching experience blending the aforementioned two needs into one course that may be considered as a type of CS0/IT0 course. With the pedagogical underpinnings stemming from constructionist learning and contextualized computing education, we present our motivation and the details of a course that uses the Scratch programming language, App Inventor for Android, and Lego Minstorm robotics.

Categories and Subject Descriptors K.3.2 [Computer and Information Science Education]: Computer Science Education; D.2.6 [Programming Environments]: Graphical environments; D.3.2 [Programming Languages]: Language Classifications—Specialized application languages

General Terms Design, languages

Keywords CS0, IT0, computer science for non-majors, introductory programming, novice programming environments, information literacy, IT education, CS education,

1.

INTRODUCTION AND MOTIVATION

In recent years, student interest in information and computing technology (ICT) has declined to the extent that computer science departments face enrollment crises. Student

[email protected]

motivation to enroll in computing fields is in decline, and the problem is not helped when early computing courses are found to be uninteresting by and/or not involving of the students. In contrast, demand for competent, trained information technology (IT) professionals continues to rise. The strategic position of IT at the crossroads of Science, Technology, Engineering, and Mathematics (STEM) education is equally notable. The National Science Foundation (NSF) Strategic Plan 2006-2011 [6] calls for building excellence in undergraduate STEM education in order to maintain the U.S. position at the forefront of discovery and innovation. It underlines the aging science and engineering workforce coupled with continuing strong demand for STEM-related fields. The National Research Council (NRC) [2] notes that providing engaging laboratory exercises is one of the challenges of Degrees in CIS Freshmen Majors to CS education in STEM effective undergraduate fields [36]. 70

25

Students (1000s)

ABSTRACT

Students (1000s)

[email protected]

20 15 10 5

60 50 40 30 20 10 0

0

Year

(a)

Year

(b)

Figure 1: (a) Bachelor’s degrees awarded in 1000s in CS & CE from 1995 to 2009 [85], (b) Computer and information sciences degrees conferred from 1971 to 2009 as reported by U.S. Dept of Ed., Higher Education General Information Survey (HEGIS) [10]. In this context, this paper presents the description of CSC101, an introductory (IT0/CS0) course that aims to attack the declining enrollment problem while simultaneously providing more engaging laboratory exercises to potential undergraduate students in computing fields. The course utilizes extensive laboratory exercises that remain relevant to students’ real-world experiences, provide interesting and “cool” exercises, provides a gentle introduction to programming through graphical drag-and-drop programming languages such as Scratch, and uses familiar technology, such as the Android phone and LEGO Mindstorms robots.

1.1

The CS Enrollment Crisis

While there is a need to bring more students to STEM in general, and computing in particular, there has been an enrollment crisis in computing for the past decade or so [24]. Declining support both from industry and government, as well as its ever-deteriorating reputation and status among

% of freshmen to CS

high-school students, have presented formidable challenges [52] in attracting new or retaining existing students in comFreshmen to CS puting fields [85]. Figure 1(a) shows Intentions the computer science 6 and computer engineering bache5 lor’s degree pro4 duction from 1993 3 to 2009 as re2 ported by Computing Research 1 Association (CRA) 0 Taulbee Survey. Figure 1(b) is a Year plot of the comFigure 2: Percentage of enterputer and inforing freshmen intending to major mation sciences in computer science. Source: NSF bachelor’s degrees conferred by degree- National Science Board, Science and Engineering indicators [9] . granting institutions in the US from 1971 to 2009 based on HEGIS survey [10]. Both graphs clearly depict an overall decline in interest for computing fields. At the same time, there appear to be some positive signals emerging recently [68]. There have been modest increases, both in computer science majors [85] and freshmen intentions, as published by National Science Board, Science and Engineering indicators [9], graphically shown in Figure 2. Yet, meeting the projected demand for graduates of computing-related programs (see for example [11]) looks likely to take more sustained effort. Another interesting observation concerning freshmen intentions is shown in Table 1. It reveals that even though the perYear CS STEM centage of students intending to 93 2.1 33.3 major in STEM fields has remained 94 2.5 32.7 relatively static from 1993 to 2009 95 3.0 32.4 (varying from 33.3% to 34.7%), 96 3.6 34.2 the number of freshmen displaying 97 4.1 34.2 CS intentions has fluctuated widely 98 4.6 32.0 over the years and has trended sig99 5.1 33.7 nificantly lower since 2001. One 00 5.2 33.1 01 4.7 32.5 way to interpret this observation is 02 3.1 33.5 that more efforts need to be made 03 2.4 32.6 to recast the image of CS as more 04 2.0 31.1 appealing, even to STEM-inclined 05 1.2 30.9 students. This is one aspect of 06 1.6 32.0 our motivation for proposing our 07 1.7 31.9 CSC101 course as we explain later. 08 1.5 34.7 Table 1: Percentage of entering freshmen intending to major in computer science versus in STEM fields by year. Source: NSF National Science Board, Science and Engineering indicators [9] .

1.2 Motivation for nonCS students For the more general student body beyond STEM fields, in order to participate effectively and confidently, and contribute productively, in today’s digital world, undergraduate students must be proficient with Information and Computing Technologies (ICT), regardless of their areas of study [70]. The traditional term of computer literacy for exposing students to ICT

has been replaced by the NRC by Information Technology (IT) fluency [55]. The former only encompasses skills that are likely to become obsolete with changing technology, whereas the latter includes not only the skills but also the foundational concepts and intellectual capabilities to adapt to changing technologies [4]. This theoretical framework, provided by NRC in [4], asserts that as students become more comfortable with information technology, they are able to express themselves creatively, to reveal knowledge in novel forms, and to synthesize new information. NRC has adopted the term FITness (Fluency in IT) to denote familiarity and comfort in the understanding and use of ICT. Even though students entering college today come with unprecedented levels of exposure to different manifestations of ICT in their daily lives, the growing concern and surprising reality, as concluded in many studies (e.g. [47] and [50]), is that FITness levels have been declining. While ICT holds the promise of increased productivity, this promise may not be realized due to the limited abilities of professionals to make efficient use of ICT [29]. A key reason is that FITness is dynamic and requires lifelong learning as technology changes. Another motivation for our CSC101 course is very nicely summarized in [35] as follows: In traditional programming-first introductory courses, generic problems are often used to introduce foundational programming skills and concepts that will become important to students as they progress to more advanced courses and attempt to solve more complex problems. Unfortunately, since the relevance of basic programming skills is often revealed in later courses, non-majors who are compelled or decide to take the introductory courses seldom experience the gratification of using their programming skills in a personally meaningful context. By failing to connect programming and CS concepts with students’ diverse interests and backgrounds, traditional introductory courses fail to motivate many students and may even discourage them from pursuing further CS learning. All of the above narrative and evidence have led us to our CSC101, a CS0/IT0 course. Three important components of the course for Contextualized Computing Education as noted above will be (1) the Scratch programming language from MIT, (2) the Android operating system for smartphones, and (3) the Lego Mindstorms robotics programming platform. The latter two are especially what most, if not all, students are already familiar with. They enable us to relate the fundamental computing topics to tangible real-life phenomena. The rest of the paper is organized as follows: Section 2 gives a comprehensive discussion of the related work. Pedagogical foundation of our course is presented in Section 3. The details of our CSC101 course are given in Section 4. Section 5 concludes the paper.

2.

RELATED WORK

As ACM Turing Award Winner Perlis puts it, everyone should learn to program as part of a liberal education [71]. The terminology for the introductory computing courses dates back to ACM 1978 Curriculum Recommendations [16] where a two-course sequence of CS1 and CS2 were first stated. Even though so much has changed since then in terms of technology, philosophy and structure, the CS1/CS2

duo is widely used in the literature to refer to the introductory computing courses for majors. Significant growth in demand for computing graduates and the diffusion of computing fundamentals into most of the other fields of study have made apparent that an additional preparatory course to CS1/CS2 sequence is warranted. This raised the issue of preparing majors into CS1/CS2 sequence with additional content and the term coined for this course has become CS0. However, no ACM Curricula Recommendations has included any definitions or models for CS0. Even though the literature is full of references to CS0, CS1, and CS2 terms, there is no universally agreed upon delineation of these three courses in terms of their coverage. After ACM Computing Curricula 2001, the distinction between CS0 and CS1 has become even fuzzier. Further, some issues of disagreement for CS0 include how much, if any, programming to include in CS0, breadth-first versus depth-first approach, separate CS0 for computing majors [57], targeted majors [44, 78] and non-majors [31, 43, 23]. Benefits of CS0/IT0 courses are discussed in [49, 59] for majors and in [27, 30] for the non-majors. A good summary of CS0 history from 1968 to the 1990s is given in [58]. Starting from the 2005 recommendations, the ACM has separated Information Technology (IT) from the Computer Science degree. IT2008 [8] defines IT as follows: IT, as an academic discipline, is concerned with issues related to advocating for users and meeting their needs within an organizational and societal context through the selection, creation, application, integration and administration of computing technologies. One of the 5 pillars of IT, as given in IT2008, is programming. Thus, a CS0-type course for IT majors is also needed. With this, we consider our CSC101 course as a CS0/IT0-type course.

2.1

IT0/CS0 objectives

In the literature, the objective of IT0/CS0 courses fall into one or more of the following categories: 1. A service course that teaches some practical computing knowledge and/or meets a general education requirement at the institution [21], 2. To improve retention and success in subsequent CS courses, particularly CS1 [26, 22], 3. To provide a broad overview of the field, for prospective majors and non-majors alike. [20], 4. To increase diversity of students to the major [15], 5. To prepare students to analyze and address the current ethical, social and legal implications of the growing ubiquity of and increased reliance on technology [74],

2.2

Choice of programming language

Even though some CS0/IT0 courses are offered without any programming, the majority have some sort of programming in their content. A survey and taxonomy of languages and environments used to make programming easier to learn for novice programmers is presented in [51]. Another good survey and classification of different programming languages

Primary Secondary Tertiary Alice [67, 83, 78, 28, 60, 49, 25] HTML [67, 46, 39] Lego Mindstorms [21] [67] Visual Basic [21] Scratch [56, 76, 25] Python [44, 80, 14] VPython [44] MatPlotLib [44] Java [56] Flash [78] GameMaker [62, 75] javaScript [57, 20] Greenfoot [37] C++ [57] C# [62] Robotics [68, 67] [83] JPie [38] MATLAB [54] StarLogo TNG [82] karel [72] Drizzle [32] Visual Logic [40] Sibelius [78] Jeroo [77] OOPIC [73]

Table 2: Variety of languages used in introductory programming classes with the classification based on the order in which they are introduced their respective classes. used in introductory programming courses is given in [69]. A very recent brief history of learning to program is given in [33]. Guzdial in [41] classifies entry-level programming into LOGO-based [1], graphical rule-based (aka microworld ) and pedagogical (by means of the programming environment) approaches. Scratch is an example of the former, Alice is an example that uses rule-based microworlds, and Greenfoot is an example of the latter [33]. These three are compared and contrasted by their creators in [81]. The use of robotics (such as Karel [66] or Lego Mindstorms) in introductory programming courses are also reported in the literature, such as in [83, 67, 68]. A brief snapshot of the variety of programming languages used in IT0/CS0 courses is shown in Table 2 as collected from the published literature. Primary, secondary and tertiary designations indicate the order of the exposure of multiple languages in class.

3.

PEDAGOGICAL PILLARS

The first pedagogical pillar of our CSC101 is on the Constructionist learning theory [65, 45, 64], by Papert, which is based on the constructivist theories of psychology by Jean Piaget. As noted in [13], Papert considers knowledge and learning as firmly grounded in contexts, and shaped by their active and engaged uses. In his landmark book [63], Papert describes his involvement with toy automobiles at the age of two and how it drove his curiosity and motivation in learning mathematics during his schooling later. He used Piaget’s theory and his own learning experience to develop his theory. His use of gear as transitional object is similar to our use of smart phones and Lego robotics. Constructionist learning is usually, albeit partially, mapped to the learn-by-making

or learn-by-doing motto, as noted by the originator in [65]: From constructivist theories of psychology, we take a view of learning as a reconstruction rather than as a transmission of knowledge. Then we extend the idea of manipulative materials to the idea that learning is most effective when part of an activity the learner experiences as constructing a meaningful product. Second pedagogical foundation is active learning as coined by Bonwell and Eison in [19]. Another pedagogical pillar is grounded in the Project-based learning methodology by Blumenfeld [18]. We believe that fostering student engagement and longer lasting learning are achieved by combining student interest with a variety of challenging, authentic and real-world problem-solving tasks. Another objective is to shift the students from the state of passive learners to the level of active learning by engaging them with intensive lab exercises. The intensive labs facilitate the students’ learning at comprehension, application, synthesis and evaluation levels of cognition based on the classical taxonomy of cognitive levels by Bloom [17]. As a result of the learn-by-doing method, the learning outcome for the students is exposure to the real-world problems and acquisition of skills sought by the current, tight and highly competitive job market, especially under the positive job outlook for computing graduates, as outlined in [11]. The NRC also encourages eliciting and working with students’ preexisting knowledge in [34, 61]. The Report on Reports, by Project Kaleidoscope [5, 7] emphasizes connecting learning to the world beyond the classroom in order to highlight the relevance. It highlights the significance of applications of class material to the experience of students. The positive utility of the role of prior knowledge in learning and bringing real-world problems into classrooms is pointed out in [48]. The NSF report Shaping the Future, Volume II [3] (as noted in [5]), indicates that the incorporation of knowledge of what STEM practitioners do in their daily jobs is very important to the education of students in these fields, as relevant knowledge accelerates learning by facilitating a better organization of the information. Another observation, from offering an introductory computing course like ours, is that such courses must keep the students engaged by showing them how their everyday activities, both online and offline, are influenced by ICT [53]. Finally, Georgia Institute of Technology’s offering [42], and conclusion from years of offering similar courses, indicate that CS0-like courses must be taught in terms of practical domains or contexts that students recognize as important. They call this approach as Contextualized Computing Education, which is what our philosophy in designing and developing CSC101 in this manner with labs is guided by.

4.

OUR CS0/IT0 COURSE

The goal of our CS0/IT0 (CSC101) is three-fold: 1. Educate students with varied backgrounds. Our school has added a new technology general education requirement for all entering students as of Fall of 2009. Therefore, many non-majors will be taking our course. 2. Educate ICT students who lack preparation. Some computer science and computer information systems majors lack the proper background to begin their studies. Therefore, many majors will be taking this course.

3. Educate high-school students who may enroll at our university. High-school students in a pre-engineering program, offered in conjunction with a local school district, will also be taking this course.

4.1

App Inventor for Android

The Android OS for smart phones has recently positioned itself to dominate the market. Figure 3(a) shows the market share for smart phones as of March 2011 while Figure 3(b) gives a better view of the trends by means of the market share of the recent smart phone activations: Half of those surveyed had chosen the Android device. According Smartphone Recent Activations (March '11)

Smartphone Market Share (March '11) 50% 37% 27%

25%

22% 10%

Android

Apple iOS

RIM Microsoft BlackBerry Mobile

3%

2%

Palm / WebOS

Symbian

15% Android

(a)

Apple iOS

7%

RIM Microsoft BlackBerry Mobile

2%

1%

Palm / WebOS

Symbian

(b)

Figure 3: (a) Smartphone market share, (b) Smartphone market share by means of recent activations as of March 2011. Source: The Nielsen Mobile Insights, National

to the Nielsen surveys, the market penetration of Android is even bigger among the younger consumers. That means, more than half of the college students will have used an Android device before taking our CSC101. Android opensource runs a modified Linux kernel with Java-based applications through a Dalvik virtual machine framework. In December of 2010, Google released Google App Inventor for Android (AIA) for developing applications by using a graphical interface that is very similar to MIT’s Scratch. The goal is to give a head-start on Android platform application development for non-programmers. This is accomplished using the more intuitive drag-and-drop features commonly available within web browsers. A number of colleges have already started using AIA in different courses for non-majors as reported in a recent panel [79] and a workshop [12], but the details are not published. The approach closest to our work is a course offered at the University of San Francisco [84], in which Android phones are used as robots by the students to develop applications. Our approach uses AIA to develop real applications for the Android, which gives the students a greater sense of involvement, due to their ability to create applications they might use outside of the classroom. Additionally, we make use of Lego Mindstorms to take advantage of the use of robot kits [68, 66] with which many students will already be familiar.

4.2

AIA and Mindstorms

In order to deal with such a challenging and somewhat heterogeneous student mix, we have decided, based on the pedagogical justifications and motivations as outlined in Sections 1 and 3, to make use of Scratch, Google AIA and Lego Mindstorms. Scratch serves as a soft introductory programming language. Then, we aim at contextualizing the topics to raise the interest and motivation of the students by means of assignments using AIA for Android apps. We hypothesize with theoretical underpinnings given in Section 3 that relating the curriculum to the students’ immediate life in some

Figure 4: School Spirit : Sample Lab using App Inventor for Android

Figure 5: Bluetooth connection lab to Lego Mindstorms using App Inventor for Android

meaningful ways we can pave the way for a more successful education and career for majors and facilitate non-majors life-long learning processes to make more effective use of technology in their educational, personal and professional lives. We have piloted the first offering of our course in the Winter semester of 2011. We are still in the process of developing more labs using AIA. We have just obtained some internal funding for more smart phones and LEGO Mindstorms robotic kits.

4.2.1

AIA Lab Exercise

In an introductory lab exercise with AIA, we relate to another popular topic among student, i.e. school athletics. Students develop an audio player app to play a marching song (Hail to the Victors for our case) with some university logo as shown in Figure 4. Then, they use USB connection to an Android phone to upload the app to the phone. There were many who had their own Android phones and who enthusiastically used their own phones to upload the app they have created.

4.2.2

assess how well the class in general and AIA and robotics labs in specific are received by the students.

AIA and Lego Mindstorms Exercise

Another interesting part of AIA is its support for the Lego Mindstorms robotics interface. This opens many more interesting venues with which to engage students in the class content, and it potentially makes a more lasting impact in their careers. Figure 5 shows a screenshot of a Lab exercise where an Android phone is used to get connected to a Lego Mindstorms robotics device and start/stop its servomotor. Figure 6 shows the graphical, drag-and-drop type code of the aforementioned app in block editor in a browser.

4.3

Figure 6: Code inside block editor for the Bluetooth lab to Lego Mindstorms using App Inventor for Android

Assessment

With the addition of the new equipment, we will be conduction surveys to measure the effectiveness of the labs in this Summer term. We are also planning to make use of 1-minute, anonymous feedback papers from the students to

4.4

Future Work

In future offerings of our course, we are planing to include open-ended group projects to give students more opportunities to develop other relevant Android labs that are relevant to their majors, professional careers and/or personal lives.

5.

CONCLUSION

In this paper, we have summarized our teaching experience in CSC 101, a IT0/CS0 course. We have elaborated on the objectives of the course for majors and non-majors, as well as the pedagogical motivation and foundations. An extensive survey of related work from the literature is also provided. To the best of the authors’ knowledge, our combination of Scratch, App Inventor for Android, and Lego Mindstorms robotics in an IT0/CS0 course is unique and holds some

promise as an appealing course for both majors and nonmajors. The main thrust of our approach is on contextualizing the curriculum delivery, in terms of phenomena that the students are previously familiar with, and leveraging it to raise their interest and involvement in the subject matter. We have piloted the course for the first time in the Winter semester of 2011, and we are in the process of developing more lab exercises for future offerings, as well as setting up a formal assessment of its effectiveness.

6.

REFERENCES

[1] LOGO Software. http: //el.media.mit.edu/logo-foundation/products/software.html. Accessed on May 15th, 2011. [2] The National Research Council (NRC). http://sites.nationalacademies.org/NRC/. [3] Shaping the Future, Volume II: Perspectives on Undergraduate Education in Science, Mathematics, Engineering and Technology. National Science Foundation, nsf98-128, 1998. www.nsf.gov/pubs/1998//nsf98128/nsf98128.htm. [4] Being fluent with information technology. National Academy Press, 2000. National Research Council. (U.S.). Committee on Information Technology Literacy. [5] Recommendations for Action in support of Undergraduate Science, Technology, Engineering, and Mathematics. Project Kaleidoscope, PKAL Report on Reports - I, 2002. www.pkal.org/documents/ReportOnReports.cfm. [6] National Science Foundation Investing in America’s Future: Strategic Plan FY 2006-2011, October 2006. www.nsf.gov/publications/pub summ.jsp?ods key=nsf0648. [7] Transforming America’s Scientific and Technological Infrastructurence, Recommendations for Urgent Action. Project Kaleidoscope, PKAL Report on Reports - II, 2006. www.pkal.org/documents/ReportOnReportsII.cfm. [8] ACM The Computing Curricula Information Technology Volume. http: //www.acm.org//education/curricula/IT2008Curriculum.pdf, 2008. Accessed on May 14th, 2011. [9] National Science Foundation, National Science Board, Science and Engineering Indicators: 2010, Chapter 2. Higher Education in Science and Engineering . http://www.nsf.gov/statistics/seind10/, January 2010. Accessed on May 9th, 2011. [10] U.S. Department of Education, National Center for Education Statistics, Higher Education General Information Survey (HEGIS), ”Degrees and Other Formal Awards Conferred” surveys, from Ch. 3 of Digest of Education Statistics 2010. http://nces.ed.gov/programs/digest/d10/, April 2011. Accessed on May 12th, 2011. [11] Bureau of Labor Statistics, U.S. Department of Labor, Occupational Outlook Handbook, 2010-11 Edition, Computer Software Engineers and Computer Programmers, accessed on May 1, 2011. www.bls.gov/oco/ocos303.htm. [12] H. Abelson, M. Chang, E. Mustafaraj, and F. Turbak. Mobile phone apps in cs0 using app inventor for android: pre-conference workshop. J. Comput. Small Coll., 25:8–10, June 2010. [13] E. Ackermann. Piaget’s constructivism, papert’s constructionism: What’s the difference? In Constructivism: Uses and Perspectives in Education Conference Proceedings, [September. [14] K. K. Agarwal and A. Agarwal. Simply python for cs0. J. Comput. Small Coll., 21:162–170, April 2006. [15] K. Anewalt. Making cs0 fun: an active learning approach using toys, games and alice. J. Comput. Small Coll., 23:98–105, January 2008. [16] R. H. Austing, B. H. Barnes, D. T. Bonnette, G. L. Engel, and G. Stokes. Curriculum ’78: recommendations for the undergraduate program in computer science - a report of the acm curriculum committee on computer science. Commun. ACM, 22:147–166, March 1979. [17] B. S. Bloom and D. R. Krathwohl. Taxonomy of Educational Objectives, Handbook 1: Cognitive Domain. Addison Wesley Publishing Company, October 1956. [18] P. C. Blumenfeld, E. Soloway, R. W. Marx, J. S. Krajcik, M. Guzdial, and A. Palincsar. Motivating project-based learning: Sustaining the doing, supporting the learning.

Educational Psychologist, 26:369 – 398, 1991. [19] C. C. Bonwell and J. A. Eison. Active learning : creating excitement in the classroom. George Washington University, ERIC Clearinghouse on Higher Education, Washington, DC :, 1991. [20] A. Brady, P. Cutter, and K. Schultz. Benefits of a cs0 course in liberal arts colleges. J. Comput. Small Coll., 20:90–97, October 2004. [21] D. C. Cliburn. A cs0 course for the liberal arts. SIGCSE Bull., 38:77–81, March 2006. [22] C. R. Cook. A computer science freshman orientation course. SIGCSE Bull., 28:49–55, June 1996. [23] T. J. Cortina. An introduction to computer science for non-majors using principles of computation. In Proceedings of the 38th SIGCSE technical symposium on Computer science education, SIGCSE ’07, pages 218–222, New York, NY, USA, 2007. ACM. [24] P. J. Denning and A. McGettrick. Recentering computer science. Commun. ACM, 48:15–19, November 2005. [25] M. des Jardins and M. Littman. Broadening student enthusiasm for computer science with a great insights course. In Proceedings of the 41st ACM technical symposium on Computer science education, SIGCSE ’10, pages 157–161, New York, NY, USA, 2010. ACM. [26] C. Dierbach, B. Taylor, H. Zhou, and I. Zimand. Experiences with a cs0 course targeted for cs1 success. In Proceedings of the 36th SIGCSE technical symposium on Computer science education, SIGCSE ’05, pages 317–320, New York, NY, USA, 2005. ACM. [27] J. P. Dougherty. Information technology fluency at a liberal arts college: experience with implementation and assessment. J. Comput. Small Coll., 18:166–174, February 2003. [28] J. P. Dougherty. Concept visualization in cs0 using alice. J. Comput. Small Coll., 22:145–152, January 2007. [29] J. P. Dougherty, T. Dececchi, T. Clear, B. Richards, S. Cooper, and T. Wilusz. Information technology fluency in practice. In Working group reports from ITiCSE on Innovation and technology in computer science education, ITiCSE-WGR ’02, pages 153–171, New York, NY, USA, 2002. ACM. [30] J. P. Dougherty, T. Dececchi, T. Clear, B. Richards, S. Cooper, and T. Wilusz. Information technology fluency in practice. SIGCSE Bull., 35:153–171, June 2002. [31] A. Epperson. Computer literacy revisited: a comprehensive investigation of computer literacy. ACM Inroads, 1:30–33, June 2010. [32] J. C. Ernest, A. S. Bowser, S. Ghule, S. Sudireddy, J. P. Porter, D. A. Talbert, and M. J. Kosa. Weathering mindstorms with drizzle and diode in cs0. In Proceedings of the 10th annual SIGCSE conference on Innovation and technology in computer science education, ITiCSE ’05, pages 353–353, New York, NY, USA, 2005. ACM. [33] S. Fincher and I. Utting. Machines for thinking. Trans. Comput. Educ., 10:13:1–13:7, November 2010. [34] A. T. R. for Teachers National Research Council (U.S.). Committee on How People Learn, S. Donovan, and J. Bransford. How students learn: mathematics in the classroom. How students learn. National Academies Press, 2005. [35] A. Forte and M. Guzdial. Motivation and nonmajors in computer science: identifying discrete audiences for introductory courses. Education, IEEE Transactions on, 48(2):248–253, May 2005. [36] M. A. Fox and E. Norman Hackerman. Evaluating and Improving Undergraduate Teaching in Science, Technology, Engineering, and Mathematics. National Research Council of the National Academies, The National Academies Press, 2003. [37] R. J. Gallant and Q. H. Mahmoud. Using greenfoot and a moon scenario to teach java programming in cs1. In Proceedings of the 46th Annual Southeast Regional Conference on XX, ACM-SE 46, pages 118–121, New York, NY, USA, 2008. ACM. [38] K. J. Goldman. A concepts-first introduction to computer science. In Proceedings of the 35th SIGCSE technical symposium on Computer science education, SIGCSE ’04, pages 432–436, New York, NY, USA, 2004. ACM. [39] M. B. Gousie. A robust web programming and graphics course for non-majors. In Proceedings of the 37th SIGCSE technical symposium on Computer science education, SIGCSE ’06, pages 72–76, New York, NY, USA, 2006. ACM. [40] D. Gudmundsen, L. Olivieri, and N. Sarawagi. Using visual logic©: three different approaches in different courses -

[41]

[42] [43] [44]

[45] [46]

[47]

[48]

[49]

[50]

[51]

[52] [53] [54]

[55] [56] [57]

[58] [59]

[60]

[61]

[62]

[63] [64]

[65]

[66]

general education, cs0, and cs1. J. Comput. Small Coll., 26:23–29, June 2011. M. Guzdial. Programming environments for novices. In S. Fincher and M. Petre, editors, Computer science education research, pages 127–154. Taylor & Francis, 2004. M. Guzdial. Education: Teaching computing to everyone. Commun. ACM, 52:31–33, May 2009. M. Guzdial and A. Forte. Design process for a non-majors computing course. SIGCSE Bull., 37:361–365, February 2005. S. Hambrusch, C. Hoffmann, J. T. Korb, M. Haugan, and A. L. Hosking. A multidisciplinary approach towards computational thinking for science majors. In Proceedings of the 40th ACM technical symposium on Computer science education, SIGCSE ’09, pages 183–187, New York, NY, USA, 2009. ACM. I. Harel and S. Papert. Constructionism. Ablex, Norwood, NJ, 1991. T. J. Hickey. Scheme-based web programming as a basis for a cs0 curriculum. In Proceedings of the 35th SIGCSE technical symposium on Computer science education, SIGCSE ’04, pages 353–357, New York, NY, USA, 2004. ACM. J. S. Hilberg and G. Meiselwitz. Undergraduate fluency with information and communication technology: perceptions and reality. In Proceedings of the 9th ACM SIGITE conference on Information technology education, SIGITE ’08, pages 5–10, 2008. John D. Bransford, Ann L. Brown, and Rodney R. Cocking, editors. How People Learn: Brain, Mind, Experience, and School. The National Academy of Sciences, 1999. www.nap.edu/catalog.php?record id=9853. K. Johnsgard and J. McDonald. Using alice in overview courses to improve success rates in programming i. In Software Engineering Education and Training, 2008. CSEET ’08. IEEE 21st Conference on, pages 129 –136, april 2008. K. Kaminski, J. Switzer, and G. Gloeckner. Workforce readiness: A study of university students’ fluency with information technology. Comput. Educ., 53:228–233, September 2009. C. Kelleher and R. Pausch. Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Comput. Surv., 37:83–137, June 2005. M. Klawe and B. Shneiderman. Crisis and opportunity in computer science. Commun. ACM, 48:27–28, November 2005. S. Kurkovsky. Making computing attractive for non-majors: a course design. J. Comput. Small Coll., 22:90–97, January 2007. S. Lee and E. Hildreth. An introductory computational course for science students. J. Comput. Small Coll., 25:60–65, June 2010. H. Lin. Fluency with information technology. Government Information Quarterly, 17(1):69–76, 2000. D. J. Malan and H. H. Leitner. Scratch for budding computer scientists. SIGCSE Bull., 39:223–227, March 2007. R. D. McFarland. Development of a cs0 course at western new mexico university. Journal of Computing Sciences in Colleges, 20:308–313, October 2004. W. Mitchell. Another look at cs0. J. Comput. Small Coll., 17:194–205, October 2001. B. Moskal, D. Lurie, and S. Cooper. Evaluating the effectiveness of a new instructional approach. SIGCSE Bull., 36:75–79, March 2004. P. Mullins, D. Whitfield, and M. Conlon. Using alice 2.0 as a first language. J. Comput. Small Coll., 24:136–143, January 2009. N. R. C. U. C. on Learning Research, E. Practice, J. Bransford, S. Donovan, and J. Pellegrino. How people learn: bridging research and practice. Compass Series. National Academy Press, 1999. M. Panitz, K. Sung, and R. Rosenberg. Game programming in cs0: a scaffolded approach. Journal of Computing Sciences in Colleges., 26:126–132, October 2010. S. Papert. Mindstorms: Children, Computers, and Powerful Ideas. 1990. S. Papert. Situating constructionism. In I. Harel and S. Papert, editors, Constructionism, pages 1–12. Ablex, Norwood, NJ, 1991. S. Papert and I. Harel. Constructionism. Ablex Publishing Corporation, Norwood, 1991. chapter 1 is available www.papert.org/articles/SituatingConstructionism.html. R. Pattis. A Gentle Introduction to the Art of Programming.

John Wiley & Sons, 1981. [67] J. Pearce and M. Nakazawa. The funnel that grew our cis major in the cs desert. SIGCSE Bull., 40:503–507, March 2008. [68] J. L. Pearce. Requiring outreach from a cs0-level robotics course. J. Comput. Small Coll., 26:205–212, May 2011. [69] A. Pears, S. Seidman, L. Malmi, L. Mannila, E. Adams, J. Bennedsen, M. Devlin, and J. Paterson. A survey of literature on the teaching of introductory programming. SIGCSE Bull., 39:204–223, December 2007. [70] G. Pearson, A. Young, N. A. of Engineering. Committee on Technological Literacy, and N. R. C. (U.S.). Technically speaking: why all Americans need to know more about technology. E-Libro. National Academy Press, 2002. [71] A. Perlis. The computer in the university. In M. Greenberger, Ed., Computers and the World of the Future. MIT Press, Cambridge, MA, USA, 1962. [72] O. S. Peter Brusilovsky and S. Sosnovsky. Mini-languages for non-computer science majors: what are the benefits? In Interactive Technology and Smart Education. Emerald Group Publishing, 2004. [73] C. Pheatt. Integrating oo concepts into a cs0 course. J. Comput. Small Coll., 19:61–67, April 2004. [74] T. S. Purewal, Jr. Social networking: the new computer fluency? In Proceedings of the 41st ACM technical symposium on Computer science education, SIGCSE ’10, pages 112–116, New York, NY, USA, 2010. ACM. [75] Y. Rankin, A. Gooch, and B. Gooch. The impact of game design on students’ interest in cs. In Proceedings of the 3rd international conference on Game development in computer science education, GDCSE ’08, pages 31–35, New York, NY, USA, 2008. ACM. [76] M. Rizvi, T. Humphries, D. Major, M. Jones, and H. Lauzun. A cs0 course using scratch. J. Comput. Small Coll., 26:19–27, January 2011. [77] D. Sanders and B. Dorn. Jeroo: a tool for introducing object-oriented programming. SIGCSE Bull., 35:201–204, January 2003. [78] D. L. Smarkusky and S. A. Toman. An interdisciplinary approach in applying fundamental concepts. In Proceedings of the 10th ACM conference on SIG-information technology education, SIGITE ’09, pages 224–228, New York, NY, USA, 2009. ACM. [79] E. Spertus, M. L. Chang, P. Gestwicki, and D. Wolber. Novel approaches to cs 0 with app inventor for android. In Proceedings of the 41st ACM technical symposium on Computer science education, SIGCSE ’10, pages 325–326, New York, NY, USA, 2010. ACM. [80] J. Stamey and S. Sheel. A boot camp approach to learning programming in a cs0 course. J. Comput. Small Coll., 25:34–40, May 2010. [81] I. Utting, S. Cooper, M. K¨ olling, J. Maloney, and M. Resnick. Alice, greenfoot, and scratch – a discussion. Trans. Comput. Educ., 10:17:1–17:11, November 2010. [82] K. Wang, C. McCaffrey, D. Wendel, and E. Klopfer. 3d game design with programming blocks in starlogo tng. In Proceedings of the 7th international conference on Learning sciences, ICLS ’06, pages 1008–1009. International Society of the Learning Sciences, 2006. [83] B. L. Wellman, J. Davis, and M. Anderson. Alice and robotics in introductory cs courses. In The Fifth Richard Tapia Celebration of Diversity in Computing Conference: Intellect, Initiatives, Insight, and Innovations, TAPIA ’09, pages 98–102, New York, NY, USA, 2009. ACM. [84] D. Wolber. App inventor and real-world motivation. In Proceedings of the 42nd ACM technical symposium on Computer science education, SIGCSE ’11, pages 601–606, New York, NY, USA, 2011. ACM. [85] Zweben, S. . Computing degree and enrollment trends: From the 2008-2009 CRA Taulbee Survey. www.cra.org/govaffairs/blog/wp-content/uploads/2010/03/ CRATaulbee-2010-ComputingDegreeandEnrollmentTrends.pdf. accessed on May 6th, 2011.

Suggest Documents