Assignment 1, due Jan 28

Part of the homework for 22C:169, Spring 2005
by Douglas W. Jones
THE UNIVERSITY OF IOWA Department of Computer Science

Always, on every assignment, please write your name legibly as it appears on your University ID and on the class list! All assignments will be due at the start of class on the day indicated, and unless there is what insurance companies call "an act of God" - something outside your control; the only exceptions to this rule will be by advance arrangement.

For those taking the course by video link, assignments may be submitted electronically by E-mail to Rajiv Raman. Please do not use obscure attachment formats! Plaintext E-mail is preferred to HTML, Word, RTF or other even more obscure formats!

  1. What is your E-mail address? (If you have more than one, give the address you'd prefer used for class purposes.)

    Real Homework!

  2. Problem 6 in Chapter 1 of the text was based on a well formed premise when it was originally written. What has changed?

  3. Problem 10 and 16 in Chapter 1 of the text are interesting. Do them.

  4. When I last taught intro to programming, I used cryptography as a source of examples. The resources for that class are on the web at:

    http://homepage.cs.uiowa.edu/~dwjones/compress/#intro

    The letter frequency data distributed there for the monocase English alphabet allowed the students to construct a really a really nice little program to crack Caesar cyphers based on rotations of the over the 26 letters of the monocase English alphabet. This was machine problem 4 from the course, and the cited web page includes test data that will provide some reward when you crack each cypher.

    Apology: Really, this programming problem is a little one. There is a solution posted on the web cite sited, in Pascal. Be nice, solve the problem on your own (and there are excellent reasons not to copy the Pascal solution because of some awkward differences in the text model between Pascal and most currently popular languages)!

    Include your source file in the document you turn in. Keep it short and readable, and use any programming language at all, on any computer at all.

    Bonus exercise: Try taking successively shorter snips of the test data. What size sample seems sufficient, on the average, for your code cracker to work?