Design and Evaluation of a Block-based Environment with a Data Science Context

As computing becomes pervasive across fields, introductory computing curricula needs new tools to motivate and educate the influx of learners with little prior background and divergent goals. We seek to improve curricula by enriching it with authentic, real-world contexts and powerful scaffolds that can guide learners to success using automated tools, thereby reducing the strain on limited human instructional resources. To address these issues, we have created the BlockPy programming environment, a web-based, open-access, open-source platform for introductory computing students (https://www.blockpy.com). BlockPy has an embedded data science context that allows learners to connect the educational content with real-world scenarios through meaningful problems. The environment is block-based and gives guiding feedback to learners as they complete problems, but also mediates transfer to more sophisticated programming environments by supporting bidirectional, seamless transitions between block and text programming. Although it can be used as a stand-alone application, the environment has first-class support for the latest Learning Tools Interoperability standards, so that instructors can embed the environment directly within their Learning Management System. In this paper, we describe interesting design issues that we encountered during the development of BlockPy, an evaluation of the environment from fine-grained logs, and our future plans for the environment.

[1]  Eric Rosenbaum,et al.  Scratch: programming for all , 2009, Commun. ACM.

[2]  Mark Guzdial,et al.  Motivation and nonmajors in computer science: identifying discrete audiences for introductory courses , 2005, IEEE Transactions on Education.

[3]  Jonathon David Hellmann DataSnap: Enabling Domain Experts and Introductory Programmers to Process Big Data in a Block-Based Programming Language , 2015 .

[4]  Dennis Brylow,et al.  Introducing Computing Concepts to Non-Majors: A Case Study in Gothic Novels , 2015, SIGCSE.

[5]  Kalpathi R. Subramanian,et al.  Bringing Real-World Data And Visualizations Into Data Structures Courses Using BRIDGES , 2016, SIGCSE.

[6]  Brett D. Jones Motivating Students to Engage in Learning: The MUSIC Model of Academic Motivation. , 2009 .

[7]  Miklós Maróti,et al.  A Visual Programming Environment for Learning Distributed Programming , 2017, SIGCSE.

[8]  David Weintrop,et al.  To block or not to block, that is the question: students' perceptions of blocks-based programming , 2015, IDC.

[9]  Mark Guzdial,et al.  Exploring hypotheses about media computation , 2013, ICER.

[10]  Katy Jordan,et al.  Initial trends in enrolment and completion of massive open online courses , 2014 .

[11]  Yoshiaki Matsuzawa,et al.  Language Migration in non-CS Introductory Programming through Mutual Language Translation Environment , 2015, SIGCSE.

[12]  Stephen H. Edwards,et al.  Pythy: improving the introductory python programming experience , 2014, SIGCSE '14.

[13]  V. Shute Focus on Formative Feedback , 2007 .

[14]  Johan Jeuring,et al.  Towards a Systematic Review of Automated Feedback Generation for Programming Exercises , 2016, ITiCSE.

[15]  Rachel Schutt,et al.  Doing Data Science , 2013 .

[16]  Scott Rixner,et al.  An environment for learning interactive programming , 2014, SIGCSE '14.

[17]  Thomas W. Price,et al.  iSnap: Towards Intelligent Tutoring in Novice Programming Environments , 2017, SIGCSE.

[18]  Mark Guzdial,et al.  Imagineering inauthentic legitimate peripheral participation: an instructional design approach for motivating computing education , 2006, ICER '06.

[19]  Michael Goldweber,et al.  A framework for enhancing the social good in computing education: a values approach , 2012, ITiCSE-WGR '12.

[20]  Steve Cooper,et al.  Mediated transfer: Alice 3 to Java , 2012, SIGCSE '12.

[21]  David Weintrop,et al.  Using Commutative Assessments to Compare Conceptual Understanding in Blocks-based and Text-based Programs , 2015, ICER.

[22]  David Bau,et al.  Using Pencil Code to Bridge the Gap between Visual and Text-Based Coding (Abstract Only) , 2015, SIGCSE.

[23]  Philip J. Guo,et al.  Perceptions of non-CS majors in intro programming: The rise of the conversational programmer , 2015, 2015 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[24]  Johan Jeuring,et al.  Ask-Elle: an Adaptable Programming Tutor for Haskell Giving Automated Feedback , 2017, International Journal of Artificial Intelligence in Education.

[25]  Wu-chun Feng,et al.  Block-based programming abstractions for explicit parallel computing , 2015, 2015 IEEE Blocks and Beyond Workshop (Blocks and Beyond).

[26]  Etienne Wenger,et al.  Situated Learning: Legitimate Peripheral Participation , 1991 .

[27]  Michael D. Ernst,et al.  Introductory programming meets the real world: using real problems and data in CS1 , 2014, SIGCSE '14.

[28]  Clifford A. Shaffer,et al.  Computing with CORGIS: Diverse, Real-world Datasets for Introductory Computing , 2017, Inroads.

[29]  Philip J. Guo Online python tutor: embeddable web-based program visualization for cs education , 2013, SIGCSE '13.

[30]  Thomas W. Price,et al.  Comparing Textual and Block Interfaces in a Novice Programming Environment , 2015, ICER.

[31]  Amjad Altadmri,et al.  Building on Blocks: Getting Started With Frames in Greenfoot 3 (Abstract Only) , 2016, SIGCSE 2016.

[32]  Austin Cory Bart,et al.  Design and Preliminary Results From a Computational Thinking Course , 2015, ITiCSE.