Extra Credit

Below you will find a list of opportunities to go beyond the basic course material and earn some extra credit. Each such option will be worth 0.5% of your final grade. You can complete a maximum of 8 of these options (4%), enough to raise your final grade by one category.

Unless otherwise indicated, the result of each effort should be posted to this blog. Specify “Extra Credit” as one of the blog post’s categories.

Extra credit must be completed by Wednesday, Nov. 30, at midnight.

  • Interview someone who is at least 40 years old (e.g., a parent, a professor, a friend) about their computer memories/history. Write a blog post capturing this interview as if you were a reporter (i.e., not as a transcript, but instead as an article others might read).
  • Purchase or create an abacus, learn how to use it, and then teach a friend or family member how to use it to perform addition. Blog about your experience doing this.
  • Create a set of Napier’s Rods (e.g., using tongue depressors) and demonstrate to the class how to use them to perform division. Contact me to arrange a class time for this (it is not a blog post exercise).
  • Translate d’Alibray’s sonnet in honor of the Pascaline from the original French into proper sonnet form in English. You can hunt down the original online (a fun exercise) or request it from me by email.
  • Write a blog post for Ada Lovelace Day, Oct. 7, 2011. (You can do this anytime before or after Oct. 7.)
  • Write a one-page resume for Charles Babbage, Ada Lovelace, Herman Hollerith, Alan Turing, Claude Shannon, Grace Hopper, John von Neumann, or another major figure from the history of computing. Make up a job for him or her to apply to and tailor the resume accordingly.
  • Write a program to simulate an Enigma machine, using your choice of programming language. The Enigma machine need not have a GUI, but it must have 4 rotors, a plugboard with 7 plugs, and a reflector. The user should be able to specify the settings of the 4 rotors and the plugs. The program should either read input text (encrypted or plain) from a file or provide a GUI into which you can paste text, and it should either output the result to a file or display it in a GUI where you can select the text and copy it. Send me 1) your source code and 2) either the URL of your simulator (if it’s a web application) or an executable, with instructions on how to run it.
  • Using this Turing Machine simulator, write a program that takes in two numbers (specified in unary, separated by one blank square) and erases one of them so that the larger of the two remains. If the numbers are equal, either number can be the one that remains.