Gonville & Caius College

Lent Term 2011

Week 1 Revision of Michaelmas Term (due w/b 20-Jan-2011)

Complete all the questions from ML and Computer Fundamentals on the test paper.

Answer the following Tripos questions:-

Week 2 Operating Systems (due w/b 27-Jan-2011)

Find out the structure of the Unix and NT file systems. Create a list of their differences and their similarities.

Consider the following applications, and say for each which features of the different filesystem in Unix and NT are helpful or not for it.

  • Collecting a data stream from a real-time process
  • Sharing a file between a number of users
  • Recovering the file system after bad blocks are mapped out on the physical hardware

Describe the different models of processes used by NT and Unix. Include in your description what is scheduled and the unit of protection. What different models of how a machine is used influenced the different designs?

In virtual memory management describe what is meant by segmentation, virtual address space and page replacement. Describe the process whereby a previously unused page is brought into memory for each of the following cases

  • uninitialised memory (eg heap or stack pages)
  • previously paged out code page
  • previously paged out data page

Week 3 Operating Systems (due w/b 3-Feb-2011)

Attempt the following questions

Week 4 Free

No work is set this week.

Week 5 Java/Program design (due w/b 17-Feb-2011)

With the aid of diagrams explain what an Object is, along with the concepts of inheritance, public and private methods and instance and class methods in the context of Java programs. Also describe the various protection types - public, class, protected and private and their importance in designing programs.

This week's work involves designing some routines to create a linked list. You should aim to construct in Java the equivalent of

datatype 'a dllist = Null | DLnode of 'a * ref dllist * ref dllist;

The nodes should each have a backward and forward pointer so the list you construct using it should be easy to traverse in either direction. Try to ensure you maintain data abstraction in your code.

Use the DLnode object you will have created as part of a second Class which provides the functions needed to build a DLlist. You should be able to insert and delete items as well as move along the list and indicate if you are at the start or end of the list.

Design this along with some simple test routine to add and remove items from a list. Your design should include the signatures of all methods both public and private but does not need to include code, you can indicate by comments what the code should do.

You are free to code this up if you want to but don't feel obliged to do so, concentrate on using diagrams to design and then outline the actual implementation using pseudocode with a Java-like feel to it. The latter stage can be changed to write the actual code if you want to in either case make sure it is well documented using Java comments that will be appropriatly processed by javadoc.


Week 6 - Software Design (due w/b 24-Feb-2011)

Work through the example sheet for the OO programming class in particular Q21 onwards.


Week 7 - Software Design (due w/b 3-Mar-2011)

Answer as many parts form the the following questions as you are able so far through the course.

Week 8 - Software Design (due w/b 10-Mar-2010)

Answer any parts of last week's questions you did not do and also the following questions