On this page:
1 Software aspects of strategic defense systems
2 More self-reference
8.5

Lecture 13: More self-reference

This assignment is due on Sunday, February 20 at 11:59pm. Submit it using Handin as assignment lecture13.

1 Software aspects of strategic defense systems

Exercise 1. Read Software aspects of strategic defense systems by Parnas. Focus on similarities between Parnas’s description of the SDI software system and other software systems that you are more familiar with.
  • When you follow the link above with your browser, you should see Parnas’s article, as well as a button “<” in the upper-right corner. Use the “<” button to expand the annotation sidebar.

  • You may need to log in to Hypothesis, using the account you created in Lecture 5: The table method.

  • Expand the drop-down menu “Public” in the sidebar, and change it to our course group “211”. You belong to this group because you used the invite link in Lecture 5: The table method. If you don’t post to this group, then other students won’t see your annotations, and you won’t get credit.

  • Find two of the many places in the article where Parnas names a characteristic of the SDI software system. For example, here’s one of the many places: “It will be impossible to test the system under realistic conditions prior to its actual use.” Carefully select exactly the relevant passages, and Annotate them like this:
    • “I am familiar with DrRacket. Unlike with the SDI software system, it is possible to test DrRacket under realistic conditions prior to its actual use, because…”

      or

    • “I am familiar with my phone’s camera. Like with the SDI software system, it is impossible to test my phone’s camera under realistic conditions prior to its actual use, because…”

    Pick a software system that you are familiar with, and choose either the “Unlike” or the “Like” annotation format above.

  • Once you have added your annotations, respond to an existing annotation in the same format as above (“I am familiar with…”).

  • Don’t bullshit.

Optional: Watch Parnas’s presentation and rebuttal at the debate sponsored by Computing Professionals for Social Responsibility at MIT in 1985.

2 More self-reference

; A Doll is one of:
; - (make-small-doll String)
; - (make-larger-doll Doll)
(define-struct small-doll (color))
(define-struct larger-doll (smaller))

Exercise 2. Design the function green-doll which takes a Doll and returns a similar Doll, but the small Doll at the center has the color "green". Here’s an example:
(check-expect (green-doll (make-larger-doll
                           (make-small-doll "red")))
              (make-larger-doll
               (make-small-doll "green")))

Exercise 3. Recall from Who can name the bigger number? by Aaronson that “5 tetrated to the 3” means 5 raised to its own power 3 times. That is (expt 5 (expt 5 5)) = (expt 5 (expt 5 (expt 5 1))), a number with 2185 digits. Design a function tetrated-5 that takes a NaturalNumber and returns 5 tetrated to it.