Question Pools

Amateur Radio licensing has been reorganized as of April 15, 2000. The written examinations continue to be administered by volunteer examiners from published question pools. Common practice is to study these questions in advance of examination. One could use these pages to randomly browse through the question pool associated with each of the following licenses. webpage

The questions for each exam were distributed as a single text file with a methodical labeling convention that I exploited in my random access scripts.

I parsed the files with a perl script and stored each question in a subdirectory.

while (<STDIN>) { if (/^[TGE]\d\w+/) { print; open (F, ">pool/$&") or print $!; } print F; }

Here is a typical question for the amateur extra class license as formatted in the question pool.

E5C09 @E5C10 (A) What is the third family of circles, which are added to a Smith chart during the process of solving problems? A. Standing-wave ratio circles B. Antenna-length circles C. Coaxial-length circles D. Radiation-pattern circles

A second script would scan the pool for questions from a given category. It chose from these one at random then fetched the full text of the question.

my ($c) = $query =~ /\bc=(\w+)/; my @choices = <pool/$c??>; my $choice = $choices[int(rand($#choices))]; $choice = "pool/$1" if $query =~ /\bq=(\w+)/; $_ = `cat $choice` if $choice;

I then parsed out of the text fields that would help me format the question in html.

my ($answer) = /\(([ABCD])/; my ($question) = /(\w+)/; my ($category) = /(...)/; my ($element) = /(.)/; my ($citation) = /\[([0-9a-z.]+)\]/; &citation(); my ($figure) = /Figure ([A-Z0-9-]*)/; $figure = "<img src=pool/$figure.GIF>" if $figure;

A parameter of the query specified whether the correct answer would be exposed.

my ($a) = $query =~ /\ba=(\w+)/; my $say = ($a eq 'yes') ? "Answer is $answer$citation" : "See <a href=ask.cgi?q=$question&a=yes> answer</a>";

The html for presentation would then be assembled out of these parts by substituting into a string of html tags.

print << ; <h1> <hr>Question Pool -- Category $category <hr></h1> $_ </dl> $figure <p>$say. <br>Try another <a href=ask.cgi?c=$category>question</a>. <br>Choose another <a href=category.cgi?c=$element>category</a>.