CS 4, Summer 2006: HW 6, due Friday, August 18

This is your chance to make up your own homework, and answer it. More precisely, your assignment is to create a web page that presents a self-study quiz for this course. Some specific requirements about the questions are given below. Your page presents the user with a sequence of questions. After taking the quiz, the user is shown which questions (s)he got right and wrong, and given a score.

Follow the same instructions as always -- write code by hand, make it easy to read, print it from the text editor, timestamp it, and upload it to your private folder.

If you would like to share your quiz with others in the class (and thereby get to see quizzes from others who are sharing), please include a statement "Share my quiz". The shared quizzes.

Requirements

The layout of your page is up to you, however, it must meet the following requirements for full credit:

  1. There must be at least one question each for the following topics:
    1. networks
    2. binary representations and circuits
    3. architecture and operating systems
    4. web search
    5. artificial intelligence
    6. animation
    7. robotics
    8. cryptography
  2. Included among the questions must be at least one multiple choice question (by radio button) and one fill-in-the-blank question (by textbox).
  3. There must be a control (e.g., button) that permits the user to indicate that (s)he is done taking the quiz and wants to compute the score.
  4. When the user requests the quiz to be scored, the scoring process should tell the user at least the following information:
    1. The score break-down: how many questions were answered correctly, incorrectly, and unanswered.
    2. The grade: the percentage of the total questions that were answered correctly.
    3. For each question that was answered incorrectly (if any), the user should have some way to obtain the correct answer.

Each of you should invent your own questions. While you may use the questions at the ends of the textbook chapters as inspiration for the kinds of questions you will ask, do not simply copy questions from the textbook.

The 100 points for this assignment will be apportioned as follows:

The purpose of this is to tie together a lot of the ideas and skills you've practiced throughout this term. We will definitely be looking for interesting and creative ideas, and will award extra credit points for good questions and good quiz designs. (For example, rather than having a "canned" answer to a question, you could have a question whose answer requires executing a piece of code, such as good old packetize.) Satisfying the minimum requirements given here will earn you full credit, but going above and beyond will earn you more credit (and impress your classmates when they take your quiz, should you choose to share).