Supporting introductory test-driven labs with WebIDE

WebIDE is a new web-based development environment for entry-level programmers with two primary goals: minimize tool barriers to writing computer programs and introduce software engineering best practices early in a student's educational career. Currently, WebIDE focuses on Test-Driven Learning (TDL) by using small iterative examples and introducing lock-step labs, which prevent the student from moving forward until they finish the current step. However, WebIDE does not require that labs follow TDL. Instructors can write their own labs for WebIDE using any software engineering or pedagogical approach. Likewise, instructors can build custom evaluators — written in any language — to support their approach and provide detailed error messages to students. We report on a pilot study in a CS0 course where students were split into two groups, one that used WebIDE and one that didn't. The WebIDE group showed a significant improvement in performance when writing a simple Android application. Additionally, among students with some programming experience, the WebIDE group was more proficient in writing unit tests.

[1]  David S. Janzen,et al.  On the Influence of Test-Driven Development on Software Design , 2006, 19th Conference on Software Engineering Education & Training (CSEET'06).

[2]  Stephen H. Edwards,et al.  Improving student performance by evaluating how well students test their own programs , 2003, JERC.

[3]  Paul Roe,et al.  Learning to program through the web , 2005, ITiCSE '05.

[4]  Richard E. Pattis,et al.  Karel ++ A Gentle Introduction to the Art of Object-Oriented Programming , 1996 .

[5]  Paul Roe,et al.  ELP - A Web Environment for Learning to Program , 2002 .

[6]  Dianne Hagan,et al.  Teaching Java with the BlueJ Environment , 2000 .

[7]  Krzysztof Palacz,et al.  Lively Wiki a development environment for creating and sharing active web content , 2009, Int. Sym. Wikis.

[8]  Matthias Felleisen,et al.  The TeachScheme! Project: Computing and Programming for Every Student , 2004, Comput. Sci. Educ..

[9]  Michael Kölling,et al.  BlueJ - The Hitch-Hikers Guide to Object Orientation , 2002 .

[10]  David S. Janzen,et al.  Implications of test-driven development: a pilot study , 2003, OOPSLA '03.

[11]  Wilson C. Hsieh,et al.  Bigtable: A Distributed Storage System for Structured Data , 2006, TOCS.

[12]  Stephen H. Edwards,et al.  Using software testing to move students from trial-and-error to reflection-in-action , 2004, SIGCSE '04.

[13]  Kent L. Beck,et al.  Test-driven Development - by example , 2002, The Addison-Wesley signature series.

[14]  Matthias Felleisen,et al.  DrScheme: a programming environment for Scheme , 2002, J. Funct. Program..

[15]  David W. Valentine,et al.  CS educational research: a meta-analysis of SIGCSE technical symposium proceedings , 2004, SIGCSE '04.

[16]  Lech Madeyski,et al.  Test-Driven Development - An Empirical Evaluation of Agile Practice , 2009 .

[17]  Kathi Fisler,et al.  WeScheme: the browser is your programming environment , 2011, ITiCSE '11.

[18]  E. LESTER SMITH,et al.  AND OTHERS , 2005 .

[19]  J. Borstler,et al.  Teaching OO concepts-a case study using CRC-cards and BlueJ , 2002, 32nd Annual Frontiers in Education.

[20]  Dragan Mirkovic,et al.  CODELAB: A Developers' Tool for Efficient Code Generation and Optimization , 2003, International Conference on Computational Science.

[21]  David S. Janzen,et al.  Does Test-Driven Development Really Improve Software Design Quality? , 2008, IEEE Software.

[22]  David S. Janzen,et al.  Test-driven learning in early programming courses , 2008, SIGCSE '08.

[23]  John T. Stasko,et al.  Please address correspondence to , 2000 .

[24]  Christopher Douce,et al.  Automatic test-based assessment of programming: A review , 2005, JERC.

[25]  David S. Janzen,et al.  Test-driven learning: intrinsic integration of testing into the CS/SE curriculum , 2006, SIGCSE '06.

[26]  Pavel Azalov A web-based environment for introductory programming courses , 2007 .

[27]  Michael Kölling,et al.  The BlueJ System and its Pedagogy , 2003, Comput. Sci. Educ..

[28]  Paul Roe,et al.  A Web Based Environment for Learning to Program , 2003, ACSC.

[29]  Dianne Hagan,et al.  Teaching and Learning with BlueJ: an Evaluation of a Pedagogical Tool , 2004 .

[30]  Byron Weber Becker Teaching CS1 with karel the robot in Java , 2001, SIGCSE '01.

[31]  David S. Janzen,et al.  A survey of evidence for test-driven development in academia , 2008, SGCS.

[32]  David S. Janzen,et al.  Overcoming Obstacles to Test-Driven Learning on Day One , 2010, 2010 Third International Conference on Software Testing, Verification, and Validation Workshops.

[33]  Richard E. Pattis,et al.  Karel the Robot: A Gentle Introduction to the Art of Programming , 1994 .

[34]  David E. Pritchard,et al.  Evidence of Problem‐Solving Transfer in Web‐Based Socratic Tutor , 2006 .