Anda di halaman 1dari 3

A Hyper-Text Tutorial Markup Language

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 Speci c 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. de ne speci cally 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
identi ed with a syntax similar to the anchor tag, should point to next. These can be speci ed 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 speci ers 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 speci c 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 di erences, 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 e ect 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 Cli s, 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 speci ed. 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-

Anda mungkin juga menyukai