home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-05-23 | 48.4 KB | 1,357 lines |
- CAT(TS):COMPUTER ASSISTED TESTING (IN TECHNICAL SUBJECTS)
- May 23rd, 1991
-
- Carl W. David
-
-
- Department of Chemistry
- University of Connecticut
- Storrs, Connecticut 06269-3060
-
- TABLE OF CONTENTS
- _________________
-
-
-
- INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . 1
- A Polemic . . . . . . . . . . . . . . . . . . . . . . . 1
- What are we going to do? Improve testing! . . . . . . . 3
- Caveats . . . . . . . . . . . . . . . . . . . . . . . . 4
- Why should I read this manuscript? . . . . . . . . . . 6
- Acknowledgements . . . . . . . . . . . . . . . . . . . 7
- IMPLEMENTATION . . . . . . . . . . . . . . . . . . . . . 7
- PROCTORn . . . . . . . . . . . . . . . . . . . . . . . . 8
- Purpose:To administer a computer assisted examination. 8
- Implementation . . . . . . . . . . . . . . . . . . . . 8
- Function. . . . . . . . . . . . . . . . . . . . . . . . 9
- Philosophy of Browsing . . . . . . . . . . . . . . . 11
- The Rest of this Book . . . . . . . . . . . . . . . . 11
- UTILITIES . . . . . . . . . . . . . . . . . . . . . . . 12
- UtilTest . . . . . . . . . . . . . . . . . . . . . . 13
- Routines found in UTILITY.PAS and their use. . . . . 14
- EVALUATING EXPRESSIONS . . . . . . . . . . . . . . . . 16
- EVALTEST . . . . . . . . . . . . . . . . . . . . . . 18
- EXAMPLES . . . . . . . . . . . . . . . . . . . . . . . 19
- A First Test Question . . . . . . . . . . . . . . . . 19
- A simple Calculus Question . . . . . . . . . . . . . 19
- An Advanced Thermodynamics Question . . . . . . . . . 19
-
- COMPUTER ASSISTED TESTING
- in technical subjects
-
-
-
- INTRODUCTION
- ____________
-
-
-
- A POLEMIC
- _________
-
-
- "The objective is to dramatically improve our schools
- by the year 2000. There is no higher priority for
- business than this. Without an educated populace we
- cannot have a strong economy."
- David T. Kearns, Chairman, Xerox Corp.
- Business Tokyo, March 1990, page 57
- "across the political spectrum, officials and business
- leaders worry about American schoolchildren lagging
- behind Asian schoolchildren, about electronic markets
- ceded to the Japanese, about a self-indulgent corpo-
- rate culture that has thrived on short-term profits,
- about an American political system that has grown cyn-
- ical, slashing, and corrupt....
-
- In education, the President promises that American
- Students will be the best in the world at math and
- science by the turn of the century. And the Nation
- Governors' Association, meeting in Washington last
- week echoed the goal. But some educators merely shake
- their heads, arguing that that is unlikely. Even as
- the the President praised the governors' interest in
- education, Congressional Democrats criticized the
- "tepid" 2% education spending increase proposed by the
- Administration which holds that increased outlays are
- not necessarily the key to education improvement."
- Maureen Dowd, New York Times, May 4, 1990, Section 4,
- page 1
-
-
-
- THE PROBLEM
-
-
- Is there anyone left in this country who doubts that
- there is a problem in mathematics and science education?
- Parents, educators, business leaders, intellectuals, and
- even politicians all bemoan the failings of the education
- system which is going to leave us bereft of native born sci-
- entists, and dependent on the generosity of other nations'
- expatriates for our future survival.
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
- "This year I am teaching math, and I can see why there
- is little physics in the inner-city schools. The stu-
- dents cannot do the mathematics"
- S. W. Brekke, Letter, Physics Today, Aug. 1986, pg
- 74.
- "A test of 47,000 College Freshman prompts call for
- continuance of remedial program. A third or more of
- the students entering New Jersey colleges have not ac-
- quired the verbal and mathematical skills they need to
- do college-level work, ..."
- New York Times, Nov. 23, 1979, pg 21.
- "Report after report has shown that American students
- are straggling near the tail end of all international
- math and science competitions. What should be done?"
- F. Hechinger, The New York Times, March 1, 1989, pg.
- B7.
-
-
-
- A SOLUTION?
-
-
- Having spent a lifetime in education, as a professor of
- chemistry on the one hand, and as a member of my local
- school board on the other, it has become apparent to me that
- reforming the educational system in situ is impossible.
- _______
- Partly, this is because no teachers accept culpability
- and/or responsibility for their work. Even I, when faced
- with criticism that my students in freshman chemistry, when
- passed and sent on to organic, can not do stoichiometry, do
- not know what equilibrium means, can't tell an acid from a
- base, etc., etc., etc., exclaim:"I taught it. They "passed"
- the tests. What more is there?"
-
- If I am not responsible for the failings of my efforts
- once my students leave me (provided that I have not pandered
- to the local authorities and passed fools and charlatans),
- then I can not criticize teachers in the lower regions of
- the establishment when they also fail to teach material
- which I regard as necessary(1) .
-
- After a lifetime of reflection on the problem, and watch-
- ing the country fritter away a king's ransom for "research"
- and other frivolities in the educational infrastructure, af-
- ter seeing an enormous investment in computer hardware and
- software without any discernible gains, it becomes apparent
- that something is structurally wrong with the system, and
- conventional methods of fixing the system just won't work.
-
- ----------------
-
- 1 Actually, this last sentence is, post hoc ergo propter
- _____________________
- hoc, false. If the students haven't learned, one has no
- ___
- proof that the teachers haven't taught!
-
-
- 2
-
-
-
-
-
-
-
-
-
- In fact, heresy, heresy, pouring money into the system won't
- cure its ills.
-
- The New York Times reports:
- "U.S. PANEL FAULTS UNIFORM TESTING --- Fairness and
- Accountability Are at Issue, Especially in Multiple
- Choice Format. report urged changes in standardized
- tests themselves and in the ways they are used, be-
- cause current tests are often misleading or unfair and
- because the nation's changing work force. report said
- too many tests emphasizing'lower thinking skills' were
- consuming too much classroom time and school money."
- May 24, 1990, New York Times
-
- If one agrees that multiple choice testing is harming the
- total educational system, and if one feels that national
- testing and accountability is important for nudging the sys-
- tem into improvements, then it is clear that improving test-
- ing is the sine qua non for consideration.
- ____________
-
- In what direction then should we turn for testing? In
- TECHNICAL testing, it is clear that we need to turn away
- from multiple choice methods and toward truly objective
- methods of assessment. We need to increase the pressure on
- students to retain knowledge. We need to ignore the
- following:
- "New York State's Education Commissioner said today
- that the state's public schools should adopt a far
- broader measure than standardized tests in assessing
- student performance."
- Sam Howe VerHovek
- New York Times, May 23, 1990.
-
- The challenge is there. The gauntlet has been thrown.
- "No more awards for predicting rain. Only for building
- arks."
- COMAC, Summer 1990, Solomon Garfunkel, page 2
- as re-quoted from
- Business Week, Spring 1990
-
-
-
- WHAT ARE WE GOING TO DO? IMPROVE TESTING!
- _________________________________________
-
-
- After jousting with educators over what is and isn't
- taught, what is and isn't learned, etc., etc., ad nauseam,
- __________
- one comes to the conclusion that no one knows what is being
- truly learned. The tests which we employ locally are defec-
- tive, and those used nationally are worse. Measuring what
- is going on is the first step in correcting what is uni-
- versally perceived as a major problem in America.
-
- To improve testing we need to:
-
-
- 3
-
-
-
-
-
-
-
-
-
- 1. eliminate multiple choice testing, which warps the way
- test takers think,
- 2. require that students maintain the earlier learned
- skills needed at the current level (precursor material),
- 3. eliminate or curtail partial credit on poorly worked
- problems,
- 4. demand that the word "mastery" be meaningful, i.e., that
- students command that part of the material which is cen-
- tral to continuing on.
-
- In this book I present the codes and programs required to
- implement Computer Assisted Testing, in which students are:
-
- 1. held responsible for earlier, precursor material,
- 2. held to a performance level which clearly demonstrates
- mastery of material without recourse to partial credit,
- 3. and results in grades which are meaningful.
-
- Computer Assisted Testing allows the teacher to construct
- examinations which are graded in real time by computer.
- When a student makes a mistake, the teacher can have previ-
- ously decided to offer help on this question, and this help
- can be offered uniformly and fairly (even handed) to all
- students who make a similar error. This help, programmed
- into the computer, is available in a fairer manner than the
- help obtained when the teacher approaches the desk of a stu-
- dent with a problem during an examination, and the student
- artfully wheedles some hint from the teacher. Alterna-
- tively, the teacher could have decided not to offer help
- other than the information that the student has made an er-
- ror. Even this information can be helpful to a student.
-
- If a student truly can't do the work (can't complete the
- problem), then at some point the student will have to give
- up. There can be no self deception, no fooling oneself when
- it comes to passing or not passing Computer Assisted Tests.
- If you finish, you demonstrated that you knew the material.
- If you don't finish, you know that something is wrong!
- ___
-
-
-
- CAVEATS
- _______
-
-
- My intention is to give you, the reader, the tools for
- creating Computer Assisted Tests in an MS-DOS environment.
- These tools consist of programs which themselves will gener-
- ate programs. The tests we are creating ARE programs which
- run under MS-DOS (the operating system).
-
- It is important to understand that the customization of
- tests, both the questions themselves, and the help schemata
- employed, depend on the teacher (you) deciding upon various
- things such as levels of help, phraseology of questions and
-
-
- 4
-
-
-
-
-
-
-
-
-
- help statements, etc., etc., etc.. Therefore, as you adopt
- Computer Assisted Testing, you will also be adopting a
- method of working which involves creating not only tests,
- but programs WHICH ARE tests! The investment made by you in
- creating each test question will be partially repaid by be-
- ing able to virtually clone that question into many other
- similar questions with minimal effort. Further, preserving
- the questions on disk in a library will allow you at some
- future date to create similar tests easily by assembling
- pre-tested questions into packages as needed. Also, the
- test questions, once obsolete for some reason, can be re-
- leased to your students for use as study material. All this
- will be explained later.
-
- There is one over-riding decision which I am making for
- you, which you should accept now (or put this book down).
- That is, I have chosen to work in Turbo Pascal (from
- Borland). There are lots of other choices, but this one
- provides tons of tools for program development, lots of
- knowledgeable consultants, and is very, very inexpensive in
- keeping with Borland's philosophy.
-
- If you choose to use the system of examinations that I am
- providing, then you need not learn Turbo Pascal, and you
- need not ever be involved in changing the format of test
- questions. HOWEVER, the chances are that you will not be
- happy with the choices that I have made in terms of how to
- structure questions, help, etc.. THEREFORE you will have to
- be willing to take my questions and change them, i.e., re-
- program them. This will entail learning Turbo Pascal! In
- any event, you will need to purchase Turbo Pascal version
- 6.0. You will not need to learn TP6.0 unless you want to
- perform surgery on questions once you have created them us-
- ing the procedures included here, i.e., you find that your
- taste and mine differ(vide infra). To summarize, you must
- __________
- purchase Turbo Pascal Version 6.0! You need not learn it
- unless you choose, but you must make the program TPC.EXE
- available to the Computer Assisted Testing programs which
- you will use to create test questions and examinations.
-
- Further good advice is to use a computer with a hard
- disk. We are going to be creating programs which must be
- compiled before they are in a form useful for students. Al-
- though all of this will be set up to run fairly automat-
- ically, the fact is that once you get started, you will
- rapidly generate an enormous number of files of test
- questions. If you attempt to keep these on floppy disks,
- you will be in big trouble. Therefore, I recommend that at
- least for you personally, for development purposes, have a
- PC with a hard disk (the bigger the better). That is not to
- say that you shouldn't back up your test question files to
- floppy disk. You should, religiously! But going to a
- floppy based archive for a question is not pleasant, while
- having thousands of questions at hand, possibly divided into
-
-
- 5
-
-
-
-
-
-
-
-
-
- directories according to subject or sequence number, or
- something, will be very, very handy.
-
- On the other hand, please do not ask your school to equip
- the examination PC's with hard disks. They should be plain
- vanilla items, with one and only one floppy disk drive and
- ________________
- 640K of core (i.e., bare bones)! Do not get sophisticated
- here and network them! Whether we like it or not, some stu-
- dents will try and steal questions, and it is important to
- make it as hard as possible to accomplish this task, vide
- ____
- infra.
- _____
-
-
-
- WHY SHOULD I READ THIS MANUSCRIPT?
- __________________________________
-
-
- It is true that the diskette contained with this manu-
- script has on it a program which will allow you, by means of
- filling in blanks and choosing from menus, to create tests
- which are "ready to go". In essence, you can treat the en-
- tire business as a black box in which you pay no attention
- what so ever to the details, and create tests immediately.
-
- But this would deprive you of several important advan-
- tages. First, there are times when you teach certain spe-
- cific methods for solving problems, in which the student,
- generally, follows your method and arrives at an answer.
- For such highly structured methods, there is no general
- method of testing, and you will be required to come up with
- a PASCAL scheme which carries the student through the vari-
- ous steps one at a time IF YOU CHOOSE TO GIVE THE STUDENT
- GUIDED HELP IN THIS STRUCTURED METHOD. That is, if the stu-
- dent, using pencil and paper, does not come up with the cor-
- rect answer, and you, in writing the test decide to offer
- help, then you can give STRUCTURED help if you can program
- it yourself in PASCAL, but are stuck with unstructured help
- if you can not program it yourself in PASCAL. Therefore,
- reading the book, and understanding the various PROCEDURES
- and FUNCTIONS which are given to you (put at your disposal),
- will open a wider universe of testing possibilities for you.
-
- Secondly, and of lesser importance, once a test has been
- created, it is useful to be able to clone that test without
- going through all the menus and such which the test genera-
- tor program will force upon you. Therefore, for cloning
- purposes, knowing some PASCAL, some editing, etc., is worth-
- while.
-
- Finally, as with any tool, understanding its inner
- workings makes you more comfortable in using it, especially
- when something unexpected happens. Since no programs are
- perfect, you can expect glitches and bugs to appear; being
- knowledgeable will help you in stamping them out.
-
-
- 6
-
-
-
-
-
-
-
-
-
-
-
-
-
- ACKNOWLEDGEMENTS
- ________________
-
-
- All the code that is going to be shown and discussed in
- this book and included on the distribution diskette(s) is
- either original coding (by me) or public domain coding re-
- leased to the general public. I will specifically acknowl-
- edge the authorship of coding when I know it, so that these
- persons can feel some pride of authorship. This code "bor-
- rowed" from others has been (often) substantially altered by
- me.
-
- The central algorithm for evaluating expressions was sig-
- nificantly enhanced by my wife, Elaine David, who discovered
- that using bakwards paired brackets could help one locate
- appropriate places for the multiplication sign (*), i.e., we
- find juxtapositions of items without an intervening opera-
- tor, place a )( pair between the items, and expand )( to )*(
- vide infra.
-
- I also wish to acknowledge the support of Professor
- Maryanski, Associate Vice President of the University of
- Connecticut, who supported this work with a starter grant
- which enabled me to purchase the PC upon which all this work
- was done. Finally, I wish to note that not one federal
- funding agency was willing to support this work, that every
- referee that read my entreaties failed me, and that I have
- been forced therefore to abandon this project.
-
-
-
- IMPLEMENTATION
- ______________
-
-
- What follows is a structured (logically, I hope) dis-
- cussion of the Computer Assisted Scheme I have created.
-
- The student, when handed a diskette, places that diskette
- in the A: drive of an MS-DOS machine, and types in PROCTOR4
- for a 4 question exam (the student has been told how many
- questions, 2 thru 9, to expect).
-
-
-
-
-
-
-
-
-
-
-
- 7
-
-
-
-
-
-
-
-
-
- PROCTORN
- ________
-
-
-
- PURPOSE:TO ADMINISTER A COMPUTER ASSISTED EXAMINATION.
- ______________________________________________________
-
-
- This main (driver) procedure performs the following
- functions:
-
- 1. Initialization of variables
- 2. Read student diskette and determine if student is start-
- ing or continuing an examination
- 3. Loop over remaining questions:
- a. Read next question from diskette (overlay). It is
- the responsibility of each question to perform the
- following functions:
- 1) If this is a re-run of a question, read the save
- file (*.SAV) otherwise, create the question and
- create the save file (*.SAV).
- 2) Present question to student.
- 3) If desired, echo question to a disk file (*.$$$)
- 4) Accept student responses, judge them, act on
- that judgement
- 5) If desired, echo all student responses to a disk
- file.
- b. At the end of each question, when the student has
- "gotten it right", record that fact, along with
- other pertinent data, such as whether or not the
- student needed help and if so, whether or not the
- student needs to solve a similar (cloned?) problem
- 4. If done with prescribed number of questions, exit from
- PROCTOR else go back and continue to the next question.
-
-
-
- IMPLEMENTATION
- ______________
-
-
- In order to implement the above, I have written each
- question as an OVERLAY, running under a master program
- (PROCTOR), so that exiting from the overlay without aborting
- means that the question has been answered or skipped (al-
- though possibly after help has been given).
- +-------------------+
- | PROCTOR |
- +----+--------------+
- |
- |
- +---------+---------+---------+
- | | | |
- +-------+ +-------+ +-------+ +-------+
- | Q1 | | Q2 | | Q3 | | Q4 |
- +-------+ +-------+ +-------+ +-------+
-
-
- 8
-
-
-
-
-
-
-
-
-
- The driving program presents unanswered questions in order.
- At each return, the main program updates the grade book
- (perhaps with information passed back from the overlaid
- question), and then goes on to overlay the next question.
-
- To leave the examination the student either completes all
- the questions correctly (with or without help) or chooses to
- leave the examination in the middle (choosing the F6 option
- vide infra of quitting the examination). In either case,
- provided no tampering has occurred, the diskette which the
- student hands back to the monitor (or teacher) contains a
- record of what has transpired, as well as re-start material
- so that if the student needs to come back an complete a
- question, the same numbers will be used in the second pres-
- entation (even if they were chosen at random initially).
-
-
-
-
- FUNCTION.
- _________
-
-
- We now expand on the various functions of PROCTOR as
- noted above (features marked 'future' are to be
- implemented):
-
- 1. Initialization
- a. Set counters, assuming that this is a start of exam-
- ination, not a continuation of a previous examina-
- tion.
- b. (future) Check that program has been loaded at
- proper point, i.e., that no TSR has been loaded
- which could allow student to interrupt the testing
- procedure for improper reasons.
- c. Obtain the students password(2)
-
- ----------------
-
- 2 Just as I am writing this (May, 1990), word comes that
- several students were canvassing in our dormitories, of-
- fering to take a Chemistry final examination for money.
- Several were caught, but the important fact is that many
- students remain, as ever, interested in the easy way
- out. It pays us to implement guardian schemes to pro-
- tect the honest student from the sleazy ones. To do
- this, we UUENCODE the grade book on the student's disk
- and then when the student starts work, we use the
- PROCTOR program to UUDECODE the grade file that is in-
- cluded on the diskette. Since UUENCODE and UUDECODE
- Pascal source code in the public domain is available, it
- is technically possible to incorporate this feature into
- our schemes. Since the test questions themselves are in
- compiled form vide infra nothing on the student disk is
- __________
- human readable, and the driver program can't be executed
-
-
- 9
-
-
-
-
-
-
-
-
-
- d. Read (and decode) the existing grade file.
- 2. Is this a resumption? If this is a resumption, then
- check which questions have already been done correctly,
- and mark them in such a way that they are not presented
- to the student.
- 3. Process the current question The depth of analysis of
- errors, and the depth of error handling is a function of
- the purpose of the examination. For pre-college stu-
- dents, in which examinations are related closely to re-
- mediation, the depth should be greater than for college
- students. College students most likely should only be
- aided slightly, with the intention of inducing them to
- find their own errors. Thus, for college students, the
- following sequence need not descend more than one level
-
- ----------------
- without the password! (I realize how ineffectual the
- scheme I have outlined is, and in a future implementa-
- tion, I assume that a full password protection scheme
- will be created.)
-
- To create the initial grade file, use program
- INITGRAD vide infra Thus the files on the diskette are
- __________
- printable but not understandable, and a password then
- protects the contents of the disk from being de-crypted
- by unauthorized persons. I suggest that the teacher use
- a once only password scheme, and that the student get
- her password when she surrenders her identification to
- the test monitor. Once used, I suggest that the pass-
- word be destroyed, so that the next time this student
- gets a diskette with an examination on it, there is a
- new password in place.
-
- I accept that the overhead, the human wear and tear
- of implementing this is unpleasant, but I feel it is
- necessary and can be circumvented by persons who feel it
- is unnecessary; just issue a blanket password, and use
- it everywhere and every time (PASSWORD is a famous
- choice for the universal password).
-
- If UUENCODing is not sufficient, then a higher order
- coding scheme will be required, but at the outset, we
- use this simple scheme. Our assumption is that students
- will be monitored so that no disks are removed from the
- examination room (for leisurely inspection/hacking) and
- that no one brings a disk in with a copy of either
- UUDECODE or UUENCODE. Teachers are of course required
- to maintain vigilance, since students will often leave
- no stone unturned in order to pass a course.
-
- One last note, students who remove diskettes from
- their machines during a test, attempt some hacking, and
- who then re-start their tests with purloined results
- will generate PASCAL runtime errors!
-
-
- 10
-
-
-
-
-
-
-
-
-
- into help schemes, while for lower level students, the
- depth of help (and diagnosis) might be larger.
- a. Clear the Screen, write the question to the top of
- the screen, put up the standard menu (calculator,
- answer, help, quit).
- b. Accept the answer given by the student, compare to
- the right answer. If student answer equals right
- answer, update grade book, exit loop to next ques-
- tion item. If student answer is wrong (and the stu-
- dent asks for help), then check if it is in
- repertoire of answers which instructor wishes to of-
- fer aid for; if so, give the help, record that help
- has been given. Return for student answer.
- 4. Update grade file, i.e., encrypt the current grade file,
- UUENCODE it into printable form, and write it to disk.
- 5. If student needed help during this last question, deter-
- mine from strategy whether to offer another, diminish
- grade, etc. etc. etc..
- 6. Start up next question or, if at end of exam, halt proc-
- essing.
-
-
-
- PHILOSOPHY OF BROWSING
- ______________________
-
-
- Should students be able to read all the questions on an
- examination and choose the order in which they are going to
- work? This question is central to the organization of the
- driver program. It implies that if students have access to
- a diskette and choose to quit the examination, their exam-
- ination will have to be changed (possibly only by cloning)
- so that when they return they are not at an advantage rela-
- tive to those who stayed. Perhaps a grade penalty must be
- exacted for any student who leaves and returns. We will of-
- fer these options to teachers later in the process. For the
- current system, browsing is not allowed. The current
- PROCTOR program goes through the questions in order, once,
- and then exits. Students who wish to can re-start the pro-
- gram, whereupon they are offered a second chance to attempt
- problems which have not yet been done. An alternative
- scheme certainly can be invented.
-
-
-
- THE REST OF THIS BOOK
- _____________________
-
-
- To process a single question, we require various utili-
- ties for writing the question out, accepting answers, etc..
- To start this book, we present our utilities with explana-
- tions below. Once the utilities are out of the way, we will
- present a set of questions, in ascending order of diffi-
- culty. Then we will present the utility programs for creat-
-
-
- 11
-
-
-
-
-
-
-
-
-
- ing test questions and tests (made up of those questions),
- libraries, etc..
-
- It is apparent, to me, that the level of equation proc-
- essing that we can accomplish with the scheme I will outline
- here is quite limited. Had I gotten external support for
- programmer help, I would have reprogrammed the entire system
- using graphics, so that I could employ a more sophisticated
- equation processor, but alas, that is not to be.
-
- The following code is placed in the public domain. You
- may read it, copy it, modify it, spurn it. Any code which I
- have taken from other public domain sources are noted as
- such. You should be aware that there are commercial and
- shareware products which could be used instead of ours,
- which would be more efficient. However, in the spirit of
- "giving it away", the code included here is free. Including
- commercial units by experts will substantially improve your
- examinations.
-
- No claim for finality (closure or completeness) is made
- here. The material included is the first step on a long
- road which will never end.
-
- One last disclaimer- no attempt at elegance or sophisti-
- cation has been made in creating these codes. Rather, sim-
- plicity, transparency of understanding, etc., have been
- accentuated. Professional programmers scoffing at the code
- should remember that speed is not of the essence here, and
- that therefore, what counts is the ultimate user who may be
- a beginning programmer. Some day, when the system is more
- fully implemented, I assume that users will come on line who
- are not programmers at all, and for whom this is all a
- "black box". For those people, improvements in the sophis-
- tication of the code makes sense, since they will never read
- it anyway. But at the outset, where I am assuming that the
- reader is either a Pascal programmer or is willing to learn
- Pascal programming, there is no need to concern oneself with
- anything other than clarity. To paraphrase Einstein: "...
- matters of taste are left to the tailor ...".
-
-
-
- UTILITIES
- _________
-
-
- For those unused to Turbo Pascal, and who are learning it
- here simultaneously, we offer the utilities in a unit (which
- we can modify later as we find other needs). The diskette
- contains the code in a form ready for use with Turbo Pascal.
- Therefore, you can compile this unit directly, setting the
- destination to disk, creating a UTILITY.TPU file. The .TPU
- file is going to be loaded each time the proctor program is
-
-
-
- 12
-
-
-
-
-
-
-
-
-
- loaded, making the contents of this unit available to you
- for use(3)
-
- If you are reading this chapter, then you are either
- knowledgeable in Turbo Pascal programming, or you are learn-
- ing it. In either case, you should be aware that the fol-
- lowing manuscript text is not definitive, since as bugs are
- noted in utilities, I have gone in and corrected them. The
- composition of this manuscript, on the other hand, is an on-
- going process which may or may not reflect the latest
- changes of the files. Therefore, when in doubt, check the
- distribution disks to see the actual code.
-
- For the novice, you should first learn elementary edit-
- ing, using the WordStar like commands that Turbo Pascal
- uses. I have included an editor of this type (freeware) for
- your use in case you do not like using the Turbo Editor (it
- takes some time to load, since it loads both compiler
- (linker, etc.) and editor. Please feel free to edit back up
- copies of programs included here, with the intent of improv-
- ing them. I assume that you have Turbo Pascal 5.5 or 6.0.
-
-
-
- UTILTEST
- ________
-
-
- UTILTEST.PAS, is a utility test program which allows you to
- check that the utilities are working properly before you
- commit to using them. It is included on the distribution
- diskette. When you compile and execute the program, it will
- load the UTILITY.TPU file from the diskette (unless you used
- TPUMOVER to move UTILITY.TPU into the TURBO.TPL file). You
- should exercise the UTILITY.TPU unit extensively, until you
- are satisfied that it will serve our purposes.
-
-
-
- ----------------
-
- 3 In fact, since it is going to be used so often, it makes
- sense to include this in the TURBO.TPL file, which is
- loaded each time the Turbo Pascal compiler is loaded.
- To do this, compile UTILITY.PAS to disk, creating a file
- UTILITY.TPU. Next, from the DOS prompt execute TPUMOVER
- with the arguments TURBO.TPL and UTILITY.TPU, i.e. :
- TPUMOVER TURBO.TPL UTILITY.TPU
- whereupon you will enter the mover program which will
- allow you to move UTILITY.TPU into TURBO.TPL. THe ad-
- vantage of doing this is that UTILITY.TPU will then al-
- ways be available to you no matter what. The
- disadvantage is that you will decrease the size of other
- programs you are creating, since UTILITY.TPU will always
- be in memory.
-
-
- 13
-
-
-
-
-
-
-
-
-
- ROUTINES FOUND IN UTILITY.PAS AND THEIR USE.
- ____________________________________________
-
-
- Since the computer assisted testing system is evolving,
- the printed documentation which you are currently reading
- need not correspond exactly to the current contents of the
- actual distribution diskettes. Within reason, every attempt
- has been made to upgrade the documentation as changes are
- made in the various units, but slight differences between
- this documentation and the diskette's version should be ac-
- cepted. The diskette takes preference over the documenta-
- tion!
-
- What follows is an English description of the included
- utility routines:
-
- 1. Noise(WhatSounds:Sounds)
- ________________________
-
- Noise is a program which will give various sounds ac-
- cording to the kind of argument passed, i.e., Good, Bad,
- FinishedGood, FinishedBad, Acknowledge, Cont. Each of
- these sounds consists of a duration, frequency and repe-
- tition pattern. They have no intrinsic meaning, and can
- be altered easily.
-
- 2. Read_Key
- ________
-
- Contrary to most of the other procedures in this
- file, Read_Key is a function. This function serves two
- purposes. First, it obtains characters, function keys
- as well as normal characters, and second, it sets the
- global variable Escape_Struck true or false depending on
- whether or not the user has struck the ESCape key.
-
- 3. Our_Write(X,Y,s);
- _________________
-
- Our_Write is a procedure which takes over a line
- starting at the point X,Y and writes a string (s). Af-
- ter writing the string, Our_Write clears the rest of the
- line!
-
- 4. YesNo(X,Y,s);
- _____________
-
- Function YesNo prints a prompt (s) at the pont (X,Y)
- and then ways for a value in the set 'y','n','N','Y'.
- Yes returns True, No returns false.
-
- 5. Pause(X,Y,s);
- _____________
-
- Pause prints a prompt (s) at the pont (X,Y) and then
- waits for any keystroke from the keyboard.
-
- 6. CheckBrackets(Str,Err,Err_Message)
- __________________________________
-
-
-
- 14
-
-
-
-
-
-
-
-
-
- CheckBrackets counts the number of left and right
- brackets in an algebraic expression and returns a mes-
- sage about that count. If the expression is well
- formed, the count should be zero and the procedure
- should return an Err of zero and an Err_Message of
- 'O.K.'. Either can then be used for future reference.
-
- 7. Remove_Double_Blanks(Str)
- _________________________
-
- This procedure takes a string and shrinks it by re-
- placing all multiple blanks with a single blank, suit-
- able for printing.
-
- 8. Remove_all_blanks(Str);
- _______________________
-
- As implied by the name, this procedure changes a
- string with blanks into one without any blanks by
- squeezing the string. This is required so that there
- will be no blanks in equations, even if the student
- typed some in to improve readability. In case extra
- blanks crept in to a string during substitutions, this
- procedure will remove them!
-
- 9. Trim_fore_aft(Str);
- ___________________
-
- This procedure removes leading and trailing blanks,
- but leaves internal blanks alone.
-
- 10. PoseQuestion(Y,question);
- _________________________
-
- This procedure writes the text (question) out, start-
- ing in column one of line Y. The line is broken at a
- blank, no words are artificially split up.
-
- 11. Read_Equation(X,Y,
- __________________
- L{length},
- __________
- s{returned string},
- ___________________
- char_set);
- __________
-
- This procedure reads an equation, accepting numbers,
- algebraic symbols, the period, and all the chars in the
- char_set, which allows for functions and the current
- variable.
-
- 12. Read_Float_Masked(X,Y,L
- _______________________
- {number of places to right of decimal
- _____________________________________
- point},
- _______
- Prompt (text of prompt message),
- ________________________________
- Print_Prompt {show old value?
- ______________________________
- (Boolean)},
- ___________
- W {resultant value/or original one,
- ____________________________________
- real})
- ______
-
-
-
-
- 15
-
-
-
-
-
-
-
-
-
- This procedure prompts at (X,Y) for an answer of the
- form +x.yyyE+zz where L is the number of y's in the
- x.yyy form, i.e., 3 here. If Print_Prompt is true, the
- old value of W is printed inside the prompt, otherwise
- it is not show.
-
- 13. Read_Fixed_Masked(X,Y,
- ______________________
- Left,LRight {number of places to left
- _____________________________________
- & right of decimal point},
- __________________________
- Prompt {text of prompt message},
- ________________________________
- Print_Prompt {show old value?
- ______________________________
- (Boolean)},
- ___________
- W {resultant value/or original one,
- ____________________________________
- real})
- ______
-
- This procedure prompts at (X,Y) for an answer of the
- form +xxx.yy where Left is the number of x's in the
- xxx.yy in the form, i.e., 3 here, and LRight is the num-
- ber of y's. If Print_Prompt is true, the old value of W
- is printed inside the prompt, otherwise it is not show.
-
- 14. Read_Integer_Masked(X,Y,
- ________________________
- L, {number of digits},
- ______________________
- Prompt {text of prompt message},
- ________________________________
- Print_Prompt {show old value?
- ______________________________
- (Boolean)},
- ___________
- IW {resultant value/or original one,
- _____________________________________
- integer})
- _________
-
- This procedure prompts at (X,Y) for an answer of the
- form +yyy where L is the number of y's in the yyy form,
- i.e., 3 here. If Print_Prompt is true, the old value of
- IW is printed inside the prompt, otherwise it is not
- show.
-
-
-
- EVALUATING EXPRESSIONS
- ______________________
-
-
- The single most important difference between Computer As-
- sisted Testing and all other kinds of testing (not including
- oral examinations) is that Computer Assisted Testing can be
- used to ascertain whether or not a students formula is cor-
- rect. Thus, when a student gets a wrong numerical answer,
- the computer can ask for the formula (or expression) used to
- obtain this (incorrect) answer and ascertain whether or not
- the expression itself was correct (relative to the known
- right answer). Where in hand grading you might not see the
- equation (tired, bored, angry (?)), the computer tirelessly
- handles each students responses equitably and uniformly.
- So, our problem is, how do we get the computer to understand
- formulas?
-
-
-
- 16
-
-
-
-
-
-
-
-
-
- Assume that the student gives an answer 'x+4' and the
- computer is looking for the formula which you wrote as
- '4+x'. Clearly, if we subsitute THE SAME random number into
- each of these expressions we will get the same answer!
-
- Assume that we have an expression
- 4-1.01x
- and the student enters
- -1.01x+4
- Assume that the random number generator creates for its next
- returned value the number 0.01234.
- -1.01*0.01234 + 4 = 4 - 1.01*0.01234
- so you can see that substituting the random number into the
- "correct" and the "student" equations results in a numerical
- equality. We are sure that the two forms are equal. If we
- doubt it, do the process again with a different random num-
- ber. Since the equations are both linear, it is impossible
- that the equality could hold at two different values of 'x',
- and therefore we are assured that the forms are equivalent.
-
- We will also get the same answer if the student is play-
- ing games and entered '2+2+x', and '(x+2)+2', etc., etc.,
- etc.. In other words, no matter what the student offers
- (lexicographically), we can cope provided that the students
- response evaluates to the 'correct' value.
-
- If the student offered '4.1+x', then provided we set our
- tolerance level for numerical equality low enough, we can
- distinguish between this response and the desired one. We
- will use a statement:
- IF ABS(student_value - our_value) <= tolerance THEN
- ___________________________________________________
- as our central scheme for deciding whether or not the stu-
- dents answer is correct, i.e., agrees with what we expect.
-
- So, summarizing, we see that to tell if two expressions
- are the same:
-
- 1. make sure that both equations have the variable present
- 2. substitute a random number into each expression and pass
- the resultant purely numeric expressions to Evaluate.
- They should return the same value, but to be sure that
- there is no possibility that slight numerical errors,
- such as having a different number of significant fig-
- ures, we use the following:
- ABS(student value - known value) <= tolerance
- _____________________________________________
- to make sure that the two are identical.
-
- We will also use this scheme to find out what the student
- did wrong, since we will include in our help sections
- equations for common errors which can be compared to student
- responses, with the idea that if we can ascertain the nature
- of their error from a table of common errors, then we can
- CHOOSE OR NOT to offer them some help.
-
-
-
- 17
-
-
-
-
-
-
-
-
-
- To begin, we need to be able to evaluate numerically
- based algebraic expressions (without variables). EVAL3.PAS
- is the latest version of the parsing scheme. This material
- is adapted from the Borland code which was included in vari-
- ous earlier versions of Turbo Pascal.
-
-
-
- EVALTEST
- ________
-
-
- On the distribution diskette is a program called
- EVALTEST.PAS which checks that the EVAL3.TPU module works.
- This program allows you to input calculator like expressions
- such as
-
- 1. 1 + 2
- 2. 2*3+4
- 3. 2*(3+4)
- 4. 2*(3+4)/2.1
-
- with the evaluated value spit back. After reading the
- EVAL3.PAS code, you will see that several functions, e.g.,
- cosine, log, etc., are also useable in EVAL3.
-
- The second part of EVALTEST checks for expressions. This
- uses CHECKANS (vide infra) to check that two single variable
- expressions are equal. Try entering:
-
- 1. 3x
- 2. 2x+x
-
- to see whether or not these two expressions are equal.
- EVALTEST will evaluate numerical expressions until the first
- question mark ("?") is entered, and then it will evaluate
- single variable expressions until a second question mark is
- entered at the correct prompt.
-
- This is (adjusted) copyrighted code, owned by Borland and
- declared in the public domain for non-profit use.
-
- For simple numeric input problems, we are done. EVAL3
- can be used directly to evaluate expressions such as
- "3*4+2.1". If our tests only involved numerical answers,
- this would be the end of it. In fact, MQ03, the
- MAKEQUEStion program included on the distribution diskette
- assumes that this is the most that you are going to do,
- e.g., employ questions with solely numeric answers.
-
-
-
-
-
-
-
-
- 18
-
-
-
-
-
-
-
-
-
- EXAMPLES
- ________
-
-
- The examples indicated below are creations of the MQ pro-
- gram. The .IN1 files can be found on the distribution
- diskette.
-
-
-
- A FIRST TEST QUESTION
- _____________________
-
-
- INITQUES.IN1 is the output of the MAKEQUES program, and
- creates a simple algebra problem. You will see that it in-
- volves the simultaneous purchase of two kinds of nuts (how a
- propos). This file is included by the Turbo Pascal compiler
- when you are compiling PROTOTYP.PAS, since that program con-
- tains a statement '{$I INITQUES.IN1}'.
-
-
-
- A SIMPLE CALCULUS QUESTION
- __________________________
-
-
- Here is a simple calculus question, INTEG1.IN1. There
- are several other INTEGn.IN1 files included in the distrib-
- ution.
-
-
-
- AN ADVANCED THERMODYNAMICS QUESTION
- ___________________________________
-
-
- This last example is a theoretical flame temperature
- problem.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 19
-