Student name: YOUR-NAME-HERE
LOGIN: YOUR-CS-DEPT-LOGIN-HERE
E-mail: YOUR-EMAIL-HERE

Tufts CS 117 (Fall 2024):
Internet-scale Distributed Systems

Tufts CS 117 Assignment:
From Documents to Applications
Questions

As usual, you will have the opportunity to update your answers after class discussion. Some of the questions may be difficult to answer before we have class discussion: for the preliminary submission, just do the ones you can. As usual, your grade will based almost entirely on your final answers, which you will provide next week, but do think about all of the questions in preparation for class.

Some of these questions ask you to explain terms like Turing-completeness which are covered only briefly in the findings. You can use online sources like Wikipedia to find out about them, or else get explanations in class on the 8th.

Please answer each of the following questions.

  1. Why is it important to create Web content from which computer programs can extract information automatically? Give several examples of things that the Web does for us today that would not be possible if such information extraction were not practical.
  2. ...your answer here...
  3. Briefly: what is the difference between a declarative and an imperative language? What does the The Rule of Least Power say about the advantage(s) of using declarative languages on the Web.
  4. ...your answer here...
  5. What is Turing-completeness? Name a Turing-complete language that is commonly used to create Web documents and applications. What is the important characteristic of Turing-complete languges that the finding discusses?
  6. ...your answer here...
  7. Name three Turing complete languages that you know how to use (or that you know of).
    1. ...answer...
    2. ...answer...
    3. ...answer...
  8. Name three declarative languages that you know how to use (or that you know of).
    1. ...answer...
    2. ...answer...
    3. ...answer...
  9. Should we ever use non-declarative languages for content sent to Web clients? Why or why not? If yes, then how should we choose which to use when?
  10. ...your answer here...
  11. Give a real-world example of a Web application that uses client-side JavaScript logic to navigate states. Explain how this application keeps track of states (to the extent you can tell)? Can you email links to states of the application to other users? Does the fwd/back button work within the application? (Extra credit: can you explain how the application is doing this? Which browser features is it using? To answer this, you have to know a lot about browsers and their APIs, so that's why this is extra credit.
  12. ...your answer here...