Assignment 1, due Feb 1

Part of the homework for 22C:112, Spring 2008
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 Word, Visual Basic, is too transparent. Virus writers use this transparency to so that, when an infected Word document is opened, it reaches out and searches for other documents to infect.

    Question: The transparency of the macro extension language of Microsoft word was quite deliberate. Why would a word user want access to the full power of Visual Basic from within a word document? (0.5 points)

  2. Background: Take a look at the Multics History Web Site http://www.multicians.org/history.html to answer the following (0.1 points each):

    a) What was the name of the timesharing system that was the predecessor of Multics at MIT?

    b) Why did Bell Labs quite the Multics project?

    c) What came of the effort to port Multics to the Intel x86 family?

    d) What was the last Multics site?

    e) In what sense is Multics an open-source product?

  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. (0.5 points)

    a) Run it and show the output. (0.5 points)

  4. Background: In the Unix (and Linux) shell, consider the following one-line shell command:
    echo echo Hello World > qzzbzzq ; sh < qzzbzzq ; rm qzzbzzq
    

    a) What output does it produce (0.5 points)

    a) How does it produce this output? (0.5 points)