Computing (Modular) CP4
June 2009
(2 Hours)
| [1] | Companies often use software packages to solve a problem rather than asking their programmers to develop new programs. Describe three benefits of this approach. | [3] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [2] | A certain computer character code represents alphabetical 
		characters in ascending binary order. For instance, the character "E" is 
		represented by 01110101, "F" by 01110110, etc. Write down the code for:  | 
      |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (a) | "G" | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (b) | "D" | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [3] | Stacks and
		linked lists are two types of
		data structure. | 
      |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (a) | Explain what is meant by the term data structure and explain why data structures are useful in computing. | [2] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (b) | Name a computer application where a stack is the most appropriate data structure and explain why it is the most appropriate data structure in this case. | [2] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (c)(i) | Explain what is meant by the term linked list. | [2] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (ii) | In a certain implementation, a linked list of names is 
		actually stored in a table form as shown below. The names are to be 
		accessed in ascending alphabetical order. A variable points to the first 
		name in the alphabet, Bennett.
 Copy the table and complete the pointer column.  | 
      [3] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [4](i) | Convert the eight-digit binary number 00011110 to | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (a) | hexadecimal | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (b) | denary (decimal) | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (ii)(a) | Show how the number -510 is represented in two's complement form using 8 bits. | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (b) | Showing your working, demonstrate that 910 is the result of the binary addition of -510 and 1410. | [2] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [5](a) | Explain what is meant by the term algorithm. | [2] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (b) | A recursive algorithm must have a terminating condition. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (i) | What other feature does a recursive algorithm need to have? | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (ii) | Describe one benefit of using a recursive algorithm. | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (iii) | Name one example of a recursive algorithm. | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [6] | P is the eight-digit 
		binary number 11011011 Q is the eight-digit binary number 01110101  | 
      |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (a) | Two logical operations that can be carried out on a pair 
		of binary numbers are OR and
		XOR. One of these logical operations has been carried out on P and Q giving the result 10101110. Which logical operation has been carried out in this case?  | 
      [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (b) | Write down the eight-digit binary number which results from carrying out the logical operation NOT Q. | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (c) | Write down the eight-digit binary number which results from carrying out an arithmetic shift right by one place on Q. | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (d) | M is the eight-digit 
		binary number 00000001 M is used 
		for masking.  | 
      |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (i) | State what logical operation is used during masking. | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (ii) | What effect will masking with M have on any eight-digit binary number? | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [7] | The following incomplete 
		algorithm is intended to perform a sort on the n elements of the array
		Customer. The asterisks below indicate four lines which are incomplete. 
  | 
      |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
		
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Copy and complete the four lines indicated by asterisks. | [4] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [8](a)(i) | What is the purpose of Backus Naur Form (BNF)? | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (ii) | Why is a natural language (such as English or Welsh) not suitable for this purpose? | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (b) | In a certain programming language a variable name is made 
		up of letters (which can be upper case or lower case) and digits. The 
		first character must be an upper case letter. The name may be of any 
		length. For instance, the following are permitted as variable names in this language: T Total TOTAL TotalValue3 Value2009 XYZ Produce a BNF definition for a variable name in this language.  | 
      [4] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (c) | Name a type of diagram which could have been used instead to show the definition of a variable in this language. (There is no need to draw the diagram) | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [9](a) | Many computer programs pass variables to a procedure. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (i) | What is the name for the variable passed in this way? | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (ii) | During this operation, data is sometimes passed by reference. Variables can be passed by another method. Name the other method and explain how it operates. Explain one advantage of this method over passing by reference. | [3] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (b)(i) | Describe what is meant by a local variable in a computer program. | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (ii) | Describe what is meant by a global variable in a computer program. | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (iii) | Describe one benefit of using global rather than local variables. | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [10] | There are many different types of programming language. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (a) | Describe what is meant by a non-procedural programming language and give an example of a suitable use for this type of language. | [2] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (b) | Describe circumstances under which a visual programming language will be particularly useful and give an example of a human computer interface (HCI) feature which could be produced easily in this type of language. | [2] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (c) | Describe what is meant by an application generator. | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [11](a) | A compiler is often used to translate a source program to make it ready for execution. One stage of compilation is syntax analysis. Explain what happens during the syntax analysis stage. | [2] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (b) | In other cases, an interpreter is used instead of a compiler. Briefly explain how an interpreter works. | [1] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| (c) | A debugging tool is often used while developing a computer 
		program. Facilities available in the debugging tool may include:
 Explain each of these facilities.  | 
      [3] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| [12] | In the following question, 
		additional credit (up to 3 marks) will be gained if your answer 
		demonstrates skill in written communication. When a new computer system is being developed, considerable care is taken over the design of the human computer interface (HCI). Modern HCIs often make use of speech recognition, handwriting recognition and speech synthesis. Describe in detail the features of the three types of HCI named above, including their suitability for novice and handicapped users.  | 
      [9+3] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
      
  | 
      ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||