Assignment 1, due Jan. 29

Part of the homework for 22C:112, Spring 2009
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 (usually a Friday). The only exceptions to this rule will be by advance arrangement unless there is what insurance companies call "an act of God" - something outside your control. Homework must be turned in on paper and in class! Late work may be turned in to the teaching assistant's mailbox, but see the late work policy. Never push late work under someone's door!

  1. Background: Consider the concept of transparency, as discussed in the notes for lecture 1. One of the reasons that computer viruses are so common in the Microsoft realm is that the macro extension language of Microsoft products, Visual Basic, is too transparent. Virus writers use this transparency to so that, when an infected file is opened, it reaches out and searches for other files to infect.

    Question: The transparency of the macro extension language of Microsoft Word was quite deliberate. Give an example of word-processing applicatoin where you might want the full power of a language like Visual Basic to support sitting under the document you are editing. (0.5 points)

  2. Background: Take a look at the Unix History Web Site http://www.bell-labs.com/history/unix/ to answer the following quick (0.2 points each):

    a) What organizations did Bell Labs partner with to develop the Multics operating system?

    b) What computer was the first one used to implement Unix?

    c) What was the first officially sanctioned Unix application?

    d) When was the first release of Unix outside of Bell Labs?

    e) Who owns Unix today?

  3. Background: Note the following manual of style for C programmers: http://homepage.cs.uiowa.edu/~dwjones/syssoft/style.html and note that the following C program does not conform to this style.
    #include <stdio.h>
    int fib(int i){if(i<=1){return
    i;}else return fib(i-1)+fib(i-2)
    ;}int main(){int i; for(i=1;i<=
    10;i++){printf("fib(%d)=%d\n",i,
    fib(i));}}
    

    a) Fix it so it conforms to the recommended style. Running the program is a good way to make sure you didn't break it. Grading, however, depends on more than correctness. Your code should conform to the style required. (1.0 points)

    c) Would rewriting this program to take advantage of the object-oriented features Java or C# make it any clearer? (0.5 points)