HW #4 Extra Credit Problem (10 extra pts to HW #4)
CS111
April 11, midnight
The Sentence Verification Experiment
In
1969, cognitive psychologists Collins and Quillian proposed that human
memory is organized into a "semantic network." Concepts are
represented in the network as nodes. There are links or associations that
connect a particular node with other concept nodes.
To answer questions in the semantic network, Collins and Quillian proposed the notion of spreading activation .
Depending on the input (say,
reading or words that you hear), the corresponding nodes in the
network are activated. This starts
a chain reaction where neighboring nodes to the activated nodes are activated
with a tag indicating the source.
This process repeats, until a collision or intersection occurs from
two different sources at the same node.
At this point,
information is evaluated to validate any activated tags.
Example: "Is a canary an animal?" The CANARY node and the ANIMAL
node are activated. Next, nodes that are neighbors to ANIMAL and CANARY
are also activated, and a collision occurs at BIRD. We then evaluate that a canary is an
animal and produce a YES answer.
Notice that ANIMAL would have also propagated to FISH
and CANARY to IS YELLOW but no collision occurs
there.
Example: "Is
a canary a fruit?"
Activation spreads from both CANARY and FRUIT (not shown in the
diagram), but there is no intersection except at a high level concept of
"object" or "living entity".
Consequently a 'NO' answer is returned.
Collins and Quillian proposed that human memory is actually organized according to the structure described above. To test their hypothesis, we can devise an experiment: The Sentence Verification Experiment. In this experiment we ask a human subject to answer simple questions like, "Is a canary a bird?" as fast as they can and time how long it takes the subject to answer. If human memory does conform to the semantic network model then we should see the following results:
Programming Task
Your task in this problem is to complete a program that implements the sentence verification experiment. Your program will display simple questions and time how long it takes the user to answer Yes or No.
To help you get started, here is a zip file containing a program that partially implements this problem:
Uncompress the file to someplace on your local hard drive, and double-click on PsychTest.sln to open the project.
This program implements the sentence verification experiment, but only for a single question. Run the program and examine the code behind the form to get an idea of how it works. The code uses a timer and has some additional code to compute how long it takes for the subject to press a key on the keyboard.
Once you feel comfortable understanding the basics of how the program operates, modify the program so that it contains an array of questions instead of a single question. Use the following six questions at a minimum:
Is a petunia a mammal?
Is a horse a vegetable?
Is a robin an organism?
Is a dog a mammal?
Is a bee an insect?
Is a robin a bird?
According to the semantic network model, the subject should answer the first three questions slower than the last three questions.
To modify the program to work with the array of questions, I have annotated the program with "TODO" comments. These comments point out parts of the program you will need to change. These parts are:
For your reference, here is a sample of a completed program: PsychTest.exe