Pages

PA8-APCSA-17-18

Due date and components

This assignment is due by 3:30 pm on Friday, 26 January 2018. Electronic and paper copies of your work must be submitted on or before the deadline for consideration. No extensions will be allowed! All programs must be submitted as plain text files attached to an email message sent to jspurgeon@vcstudent.org. The subject of your email should be Programming Assignment 8. References to files (e.g. a link to a Google document stored on a remote server) will not be accepted.

You have almost three times as much time to complete this assignment compared to previous programming assignments, and this one will be worth twice as much. Half of the credit you receive for this assignment will be based on the neatness, creativity, and literacy of your work. The other half will be based on the correctness of your program(s) and the degree of effort and problem-solving skills you demonstrate.

Pre-work

Read the Epigraphs, Solutions, and Exercises pages referred to on the blog christmasposts.blogspot.com. In addition to the online versions of these pages, you will receive a physical booklet designed to encourage you to study the program and the exercises as if you were enjoying a book the old fashioned way, with words and statements and sentences and paragraphs and classes carefully laid out, printed on paper, and bound together in a manner that suggests the material is more than just an impulsive, ephemeral tweet.

Post-work

Keep, take care of, and use the booklet you are given, at least until the end of the school year. Study it, even after the due date for this project has passed. The booklet and its contents exemplify the quality of work that you should be striving to meet or exceed. Ask questions about things you don't understand, and take notes in the booklet. The source code it contains demonstrates many of the programming constructs we have studied to date and provides a preview of much of what we will be covering in the next semester, particular problems and algorithms aside. Your class participation score in this and subsequent quarters will be affected by how well you perform this task.

The assignment

Do as many of the Towers of Hanoi Exercises as you can. Do the exercises in the order they are presented, and do your best to complete each exercise before proceeding to the next one. If you get stuck and think it might be beneficial to skip an exercise and work on another one, speak with Mr. Spurgeon first. He might encourage you to move on, or he might try to help you get unstuck.

In addition to the instructions on the Exercises page:

  1. Cite all of your sources. Clearly indicate which parts of your submission you did not produce by yourself. Also cite your sources when your own work is significantly influenced by others.
  2. For Exercise 1 (Part 1.):
    1. The Java class containing your program’s main method should be named TowersOfHanoi.
    2. You may use any of the code provided on the Solutions page, but don’t neglect to cite the source if you do.
    3. Do not include any source code in your program that is not needed for the exercise.

When you have completed an exercise to the best of your ability, review your work with Mr. Spurgeon. He might offer suggestions for improvement and will tell you whether or not he thinks it is advisable for you to start working on the next exercise.

If you complete all of the exercises under Part 1. Three Pegs on a Roundabout, study the variation of the puzzle described in Part 2. Ménage à Trois. Invent a set of related exercises and, if possible, provide solutions to your exercises.

How your work will be graded

You will receive two scores for the work that you submit for this assignment. The same grading scale used for previous assignments will be used in each case.

Literacy component

Your literacy score will be based on the quality of the hardcopy of your work that you submit, which must include:

  1. The source code for your programs. (Include comments.)
  2. The output your program produces for each major class of inputs, including the case where your program outputs a description of itself.
  3. Any responses that do not involve source code.

Problem-solving component

Your problem-solving score will be based on whether your programs do what they are supposed to do. Students who attempt the more challenging exercises might receive higher scores than students who are less ambitious. However, producing a program that correctly solves an easy problem will be looked upon more favorably than producing a program that attempts to solve a more difficult problem and fails.