
A Web-Based Programming Environment for Novice Programmers Nghi Truong Bachelor of Information Technology (Queensland University of Technology, Australia) A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy School of Software Engineering and Data Communications Faculty of Information Technology Queensland University of Technology July 2007 Keywords Computer programming, flexible delivery, web, tutoring system, on-line learning, feedback, fill in the gap, static analysis, cyclomatic complexity, automated testing, dynamic analysis, black box, white box, feedback, XML, assessment i ii Abstract Learning to program is acknowledged to be difficult; programming is a complex intellectual activity and cannot be learnt without practice. Research has shown that first year IT students presently struggle with setting up compilers, learning how to use a programming editor and understanding abstract programming concepts. Large introductory class sizes pose a great challenge for instructors in providing timely, individualised feedback and guidance for students when they do their practice. This research investigates the problems and identifies solutions. An interactive and constructive web-based programming environment is designed to help beginning students learn to program in high-level, object-oriented programming languages such as Java and C#. The environment eliminates common starting hurdles for novice programmers and gives them the opportunity to successfully produce working programs at the earliest stage of their study. The environment allows students to undertake programming exercises anytime, anywhere, by “filling in the gaps” of a partial computer program presented in a web page, and enables them to receive guidance in getting their programs to compile and run. Feedback on quality and correctness is provided through a program analysis framework. Students learn by doing, receiving feedback and reflecting - all through the web. A key novel aspect of the environment is its capability in supporting small “fill in the gap” programming exercises. This type of exercise places a stronger emphasis on developing students’ reading and code comprehension skills than the traditional approach of writing a complete program from scratch. It allows students to concentrate on critical dimensions of the problem to be solved and reduces the complexity of writing programs. iii iv Contents KEYWORDS ......................................................................................................................................... I ABSTRACT ........................................................................................................................................ III CONTENTS .......................................................................................................................................... V LIST OF FIGURES ........................................................................................................................... IX LIST OF TABLES ............................................................................................................................. XI LIST OF ABBREVIATIONS ......................................................................................................... XIII STATEMENT OF ORIGINAL AUTHORSHIP ............................................................................ XV PREVIOUSLY PUBLISHED MATERIAL ................................................................................. XVII ACKNOWLEDGEMENTS ............................................................................................................ XIX CHAPTER 1 - INTRODUCTION ...................................................................................................... 1 1.1 AIMS AND OBJECTIVES ................................................................................................................. 2 1.2 THESIS CONTRIBUTIONS ............................................................................................................... 4 1.3 OUTLINE OF THESIS ...................................................................................................................... 9 CHAPTER 2 - LITERATURE REVIEW ........................................................................................ 13 2.1 INTRODUCTION ........................................................................................................................... 13 2.2 EDUCATION BACKGROUND ........................................................................................................ 14 2.2.1 Scaffolding ......................................................................................................................... 14 2.2.2 Bloom’s Taxonomy ............................................................................................................ 16 2.2.3 Constructivism ................................................................................................................... 17 2.3 OVERVIEW OF APPLICATIONS IN COMPUTER SCIENCE EDUCATION ............................................ 20 2.3.1 Computer Assisted Instruction ........................................................................................... 20 2.3.1.1 Intelligent Applications .............................................................................................................. 23 2.3.1.2 Non-Artificial Intelligent Applications ...................................................................................... 25 2.3.2 Computer Assisted Assessment .......................................................................................... 29 2.4 FUTURE DIRECTION OF APPLICATIONS IN COMPUTER SCIENCE EDUCATION .............................. 34 2.5 WEB-BASED PROGRAMMING ENVIRONMENTS ........................................................................... 36 2.5.1 CodeSaw ............................................................................................................................ 36 2.5.2 CourseMaster .................................................................................................................... 37 2.5.3 WebToTeach ...................................................................................................................... 38 2.5.4 CodeLab............................................................................................................................. 39 2.5.5 InSTEP ............................................................................................................................... 39 2.5.6 WWW for Learning C++ ................................................................................................... 40 2.5.7 W4AP ................................................................................................................................. 41 2.5.8 JERPA ................................................................................................................................ 41 2.5.9 VECR ................................................................................................................................. 42 2.5.10 Ludwig ............................................................................................................................. 42 2.5.11 ALECS ............................................................................................................................. 43 2.6 PROGRAM ANALYSIS AND AUTOMATED MARKING SYSTEMS .................................................... 43 2.6.1 ITPAD ................................................................................................................................ 43 2.6.2 Expresso............................................................................................................................. 44 2.6.3 TRY .................................................................................................................................... 45 2.6.4 BOSS .................................................................................................................................. 46 2.6.5 Datlab ................................................................................................................................ 46 2.6.6 ASSYST .............................................................................................................................. 47 2.6.7 Web-CAT ........................................................................................................................... 47 2.6.8 GAME: A Generic Automated Marking Environment ....................................................... 48 2.6.9 HomeWork Generation and Grading Project .................................................................... 49 2.6.10 PASS ................................................................................................................................ 49 2.6.11 IRONCODE ..................................................................................................................... 50 2.6.12 Online Judge .................................................................................................................... 50 v 2.7 DISCUSSION AND SUMMARY ....................................................................................................... 51 CHAPTER 3 - THE ENVIRONMENT FOR LEARNING TO PROGRAM (ELP) ..................... 57 3.1 INTRODUCTION ...........................................................................................................................
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages307 Page
-
File Size-