Easter supervision work

Supervision 1 - Computer Networking (5)

Each of these should be answered as if it were a 20 mark exam question

Write a brief review of TCP. Include: connection setup and tear-down, flow control, congestion control, slow start, fast-recovery, fast retransmit, and round trip time estimation.

Phone number portability enables users of a mobile phone network to retain their existing number even if they move to a different network. This is implemented by a chain of redirection. Assume that you started at provider A, then moved to provider B and then finally to provider C. When you are called the call is directed to provider A, who redirects it to provider B, who redirects it to provider C. Describe how an alternative DNS-like approach in which your phone number is like your domain name might work. Explain the pros and cons of the system. Your answer should include a description of how DNS works including choice of transport protocol, recursive and iterative resolution, and caching.

One of the principles which the Internet is built upon is the idea of soft-state. Describe what this means and give examples from different layers of the protocol stack. When is it beneficial and when is it not?

Supervision 2 - Concepts in programming languages (1)

This course has a lot in common with Software Engineering. You need to be able to discuss the pros and cons of different programming language choices and present evidence for your arguments (case studies) based on the languages in the course. Your answers to the questions below should reflect this.

Answer parts of the tripos question 2006-06-07.

Answer parts a,b and c of tripos question 2007-06-07.

Supervision 3 - Concepts in programming languages (2)

Complete tripos questions: 2008-05-07, 2009-03-02 (exclude part e).

Consider Fortran, LISP, Algol-60, Pascal, C, C++, ML, Java, Prolog and Smalltalk. Give a major new feature that each introduced over its predecessors and explain the motivation for adding it. Which of these features do you consider particularly important to modern software engineering and why?

Demonstrate the use of opaque signature constraints and functors by choosing a data-structure, implement it in ML and demonstrating its use. Your program should work in PolyML.