0 penilaian0% menganggap dokumen ini bermanfaat (0 suara)
177 tayangan3 halaman
A Web-based tutorial for the C programming language has been a success. We have developed an authoring system for such tutorials. The authoring system is based on a script le that describes the tutorial in the form of lessons divided into parts. The script le is given in the Hyper-Text Tutorial Markup Language (HTTML)
A Web-based tutorial for the C programming language has been a success. We have developed an authoring system for such tutorials. The authoring system is based on a script le that describes the tutorial in the form of lessons divided into parts. The script le is given in the Hyper-Text Tutorial Markup Language (HTTML)
Hak Cipta:
Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai PS, PDF, TXT atau baca online dari Scribd
A Web-based tutorial for the C programming language has been a success. We have developed an authoring system for such tutorials. The authoring system is based on a script le that describes the tutorial in the form of lessons divided into parts. The script le is given in the Hyper-Text Tutorial Markup Language (HTTML)
Hak Cipta:
Attribution Non-Commercial (BY-NC)
Format Tersedia
Unduh sebagai PS, PDF, TXT atau baca online dari Scribd
Brian L. Stuart Math/Computer Science Department, Rhodes College Memphis, TN stuart@mathcs.rhodes.edu
Abstract Therefore, we have embarked on a project to develop an
Due to experience with a Web-based C programming authoring system for such tutorials. tutorial, we have learned of the need for an authoring 2 The Markup Language system for such tutorials. Here we describe an extension of HTML we call Hyper-Text Tutorial Markup Language The authoring system is based on a script le that de- (HTTML) and a translator that takes an HTTML le scribes the tutorial in the form of lessons divided into and produces the corresponding HTML les and CGI parts. Each part may contain a question to be answered script sources. by the student. Along with the question itself, the script le describes what happens for both right and wrong 1 Background answers to the question. This script le is given in the The CS1 course at Rhodes takes a breadth-rst ap- Hyper-Text Tutorial Markup Language (HTTML), an proach with a lab component that focuses on program- extension of the Hyper-Text Markup Language (HTML) ming such as discussed in [1,3]. To better convey the intended to facilitate authoring interactive tutorials. It details of the language, we developed an on-line tutorial adds, to HTML, tags that delineate parts within a lesson for the C programming language as reported in [5]. Stud- and tags that describe short answer, one-of-many multi- ies of the impact of such Computer-Assisted Instruction ple choice and many-of-many multiple choice questions. approaches are reported in [2,4,6]. This tutorial operates HTTML Specic Tags: The new tags which we have across the Web. HTML pages present features of the C added to HTML describe the structure of a tutorial with language, and most end in a problem to be solved. These most describing the question and answer part of a tuto- problems are presented using HTML forms. When the rial. These new tags include: student submits a form, a CGI script on the host com- <lesson></lesson> Delimit a lesson. A lesson repre- puter checks the answer given by the student. If the sents a single session in the tutorial. answer is correct, the CGI script returns a page report- <part></part> Delimit a part of a lesson. Parts are ing that with a pointer to the next page in the tutorial. intended to be done in succession and are listed in Otherwise, the CGI script returns a page reporting that the index. the answer is incorrect, and for some combinations of <omc-question></omc-question> Delimit a one-of- question and answer, it includes an explanation of why many multiple choice question. The multiple choice the answer is wrong. questions work much like lists in HTML. While the tutorial has been successful as a tool in <mmc-question></mmc-question> Delimit a many-of- teaching the C programming language, its development many multiple choice question. has little to recommend it for those who wish to write <sa-question></sa-question> Delimit a short answer similar tutorials. Coordinating the HTML forms for question. <choice> Identify a potential answer to a question. For questions, the CGI scripts (which were written in Lex) multiple choice questions, the choices are listed as and the HTML response les proved to be a tedious task labels beside buttons in the browser. For short an- at best and somewhat error-prone. Also the use of Lex swer questions, choices are regular expressions that for CGI scripts is not easily portable to some platforms. dene specically recognized answers. <right> Mark this answer as a correct one. For many- of-many multiple choice questions, all right answers must be marked for the question to be counted cor- rect. For one-of-many multiple choice questions, any of the right answers will be accepted. The de- fault behavior of a right tag is as if it had been given as <right next> indicating that if the right Each choice for an answer is labeled as either right or answer(s) are given, then the tutorial moves on to wrong, and each has a response associated with it. For the next part. Alternatively, another page may be each choice, there is also an indication of what page we identied with a syntax similar to the anchor tag, should point to next. These can be specied by the use i.e. <right href=...>. of the next and repeat keywords. Using an href= in <wrong> Mark this answer as a wrong one. Unlike the the tag, we can also specify an arbitrary next page. right tag, any wrong answer given will result in the question being declared wrong regardless of the type choice: CHOICE choice_body RIGHT response of question. The wrong tag may also be used with | CHOICE choice_body RIGHT_NEXT response the same destination speciers as in the right tag | CHOICE choice_body RIGHT_REPEAT response and can also repeat. The default behavior for wrong | CHOICE choice_body RIGHT_HREF response tags is to repeat. ... ; Grammar for HTTML Tags: In this subsection, we choice_body: /* nothing */ present a YACC-like grammar for the new tags intro- | choice_body OTHER | choice_body OTHER_TAG ; duced for HTTML. The grammar as actually used in- The ... contains choice options for wrong answers that cludes productions that absorb any errors and attempts parallel those for right answers, and the grammar for to move through them making a best-guess attempt at response looks like that for choice_body. output rather than issuing error messages to the user. HTTML Processor: A le of HTTML code is processed If the input contains no HTTML specic tags, we want by a translator that produces a collection of HTML les it to be output without change. Alternatively, the le and CGI script les. It has a parser implemented in may contain one or more lessons. YACC. The parser collects the HTML portions of the file: /* nothing */ le and writes them to several HTML output les. For | file OTHER | file OTHER_TAG the entire tutorial script, an index le is written that is | file lesson ; divided into lessons and parts within each lesson. Each Each lesson in the le contains zero or more parts. part of a lesson is written to its own le and many of the The parts that make up a lesson may in part or in whole responses are written to les. be normal HTML code not delimited by the <part> and For each question, an HTML form is written to the </part> tags. Such code is included in the index le output for the le that contains the question. In ad- that is created from the HTTML code. dition to the HTML form, the translator produces the lesson: LESSON parts END_LESSON ; source code for a CGI script that processes the form. parts: /* nothing */ | parts part The translator component that generates the CGI source | parts OTHER | parts OTHER_TAG ; code forms a back-end analogous to a code generator in part: PART part_body END_PART ; a compiler. At the present time, we have implemented Each part will typically consist of some HTML code two such back-ends for the HTTML translator. The rst which teaches some particular concept followed by a back-end produces CGI scripts in Lex following the form question. used in our original C programming tutorial. We have also written a back-end that produces AppleScript code part_body: /* nothing */ for the CGI scripts so that they may be run on the Apple | part_body OTHER | part_body OTHER_TAG Macintosh. | part_body omc_question | part_body mmc_question | part_body sa_question ; 3 Example The questions all have pretty much the same structure, The language is illustrated here by way of a short ex- namely the text of the question followed by zero or more ample. choices for the answer. The question text is given in <lesson><part><omc-question> normal HTML code. What color is the sky? omc_question: OMC_QUESTION question_head <choice>red <wrong>Maybe at sunset omc_body END_OMC_QUESTION ; <choice>blue <right>Congratulations question_head: /* nothing */ <choice>green <wrong>Love to visit your planet. | question_head OTHER | question_head OTHER_TAG <choice>yellow ; <wrong>Staring at the sun again? omc_body: /* nothing */ </omc-question></part><part><mmc-question> | omc_body choice ; What computers did Seymore Cray design? The many-of-many and short answer questions are han- <choice>CDC 6600 <right>The 6600 is considered dled similarly. one of his landmark designs. <choice>Apple II <wrong>The Apple II was tives to lessons. Our plan is that these tags invoke score designed by Steve Wozniak. keeping activities in the CGI scripts and perhaps change <choice>Cray 1 <right>Who do you think did the default behavior of <right> and <wrong> tags. For design the Cray 1? example, wrong answers would, by default in tests, go <choice>Cray 2 <right>All of the Cray 1 through ahead to the next part rather than repeat the current 4 series were designed by him. part. <choice>ENIAC <wrong>Before his time. We are also considering implementing a Tool Com- </mmc-question></part><part><sa-question> mand Language (TCL) back-end. Since TCL has been What is the name of a CS professional society? ported to a variety of platforms including Unix and X, <choice>AOL <wrong>Look again the Macintosh and MS-Windows, it provides the oppor- <choice>ACM <right>By George, you've got it. tunity to simplify support for multiple platforms with </sa-question></part></lesson> only one back-end. TCL also provides support for regu- Assuming this code is contained in the le lar expressions addressing the original motivation for us- example.httml , it is processed with the command ing Lex in the rst place. Also the TCL support for reg- httml example.httml . The translator then cre- ular expressions is more capable than the limited string ates an index le, example.html and the HTML recognition that we nd in AppleScript. Finally, TCL is les example-1-1.html , example-1-2.html and interpreted. The compiling time for Lex output domi- example-1-3.html which contain HTML code nates the translation time for that back-end. Compiling for each of the three parts. A fourth HTML le, the AppleScript into executable form has also proved example-1-4.html is written which announces comple- problematic. It does not appear to be possible to drive tion of the lesson and provides a pointer back to the this process from the translator, so we currently force index. the user to manually initiate the process. Since the CGI With only minor dierences, the output produced scripts have very little computational overhead, we do by the translator with the Lex back-end is essen- not expect any detrimental eect from using interpreted tially the same as the code that was used in our scripts. C tutorial. The CGI code for the questions are Finally, we would like to simplify the use of this lan- written to the les example-1-1.l, example-1-2.l guage by providing an editor similar to many of the and example-1-3.l, and these les are compiled into HTML editors available. We would like to have buttons the executables example-1-1.cgi, example-1-2.cgi or menu choices that can create lesson, part and question and example-1-3.cgi. For the one-of-many multiple templates to be lled in. Similar facilities could be used choice question the responses are written to the les to simplify specifying choices and responses to questions. example-1-1.wrong1to example-1-1.wrong4. For the many-of-many multiple choice question in Part 2, we References have ve choices for answers. In general if we have n [1] ACM/IEEE-CS Joint Curriculum Task Force, choices, then there are 2n possible sets of answers the \Computing Curricula 1991," CACM, June 1991, student may give, and we would like to produce a dif- Vol. 34, No. 6, pp 69{84. ferent response for each. Consequently, only the right [2] Chambers, Jack & Sprecher, Jerry, Computer- answer is written to its own le, example-1-2.right in Assisted Instruction, Prentice-Hall, Englewood this case. The responses for wrong answers are encoded Clis, NJ, 1983. in the CGI script itself. The short-answer question is [3] Denning, Peter, et. al., \Computing as a Disci- structured much like the one-of-many. Here we gener- pline," CACM, January 1989, Vol. 32, No. 1, pp ate the HTML response les example-1-3.wrong1 and 9{23. example-1-3.right2. For this case, though, we also have an additional le example-1-3.wrong that is the [4] Shlechter, Theodore, Problems and Promises of response for a generic wrong answer that doesn't match Computer-Based Training, Ablex Publishing Cor- any of the choices specied. poration, Norwood NJ, 1991. For the AppleScript back-end, we generate the same [5] Stuart, Brian L., \Computer-Assisted Instruction set of HTML les. Instead of the Lex source code, the via the World-Wide Web," Proceedings of the 34th translator puts the AppleScript directly into the .cgi Annual Southeast ACM Conference, 1996, pp 49{56. les [6] Wilkinson, Alex, Classroom Computers and Cogni- 4 Future Directions tive Science, Academic Press, New York, 1983. In addition to the tags discussed here, the translator recognizes tags that delimit quizzes and tests as alterna-