Homework 2 Thinking ahead
Unit 10 Computational thinking
Homework 2 Thinking ahead Answers
1. (a) Using the headings given, specify the inputs, outputs and precondition for the following
problem:
Given a list of integers, return a list containing every number divisible by 7. [4]
Name: sevens
Inputs: A list of integers listInt = (i1, i2, i3,… in)
Outputs: A list of integers list7 = (i1, i2, i3,… im)
Precondition: length of listInt >0
(b) Write a pseudocode algorithm for this function, and a main program which calls the
function and outputs the resulting list. [4]
function sevens(listInt):
n = len(listInt)
list7 = []
for i = 1 to n-1
if listInt[i] mod 7 == 0
list7.append (listInt[i])
endif
next i
return list7
endfunction
listInt = [7,33,35,42,49,50,57]
print("List of elements divisible by 7:", sevens(listInt))
(c) Give two different lists that you could use to test two aspects of this program, and the
expected output. [4]
list1 = [2, 6, 46, 90, 0] Expected output: list7 =[0]
list2 = [2, 6, 46, 90] Expected output: []
list2 = [7, 33, 35, 42, 49, 50, 57] Expected output: list7 = [7, 35,42,49]
2. (a) Explain what is meant by caching, and give an example of when it might be used. [3]
Caching is the temporary storage of programs and data which have recently been
used. This is frequently used to store web pages / instructions/data which the user
/program may need again within a short time.
(b) Explain one benefit and one drawback of caching. [2]
Improves performance/saves bandwidth if the same pages do not have to be reloaded
several times.
Drawback: May retrieve a “stale” copy of a web page if the page has been updated
bysince it was cached.
Unit 10 Computational thinking
Homework 2 Thinking ahead Answers
1. (a) Using the headings given, specify the inputs, outputs and precondition for the following
problem:
Given a list of integers, return a list containing every number divisible by 7. [4]
Name: sevens
Inputs: A list of integers listInt = (i1, i2, i3,… in)
Outputs: A list of integers list7 = (i1, i2, i3,… im)
Precondition: length of listInt >0
(b) Write a pseudocode algorithm for this function, and a main program which calls the
function and outputs the resulting list. [4]
function sevens(listInt):
n = len(listInt)
list7 = []
for i = 1 to n-1
if listInt[i] mod 7 == 0
list7.append (listInt[i])
endif
next i
return list7
endfunction
listInt = [7,33,35,42,49,50,57]
print("List of elements divisible by 7:", sevens(listInt))
(c) Give two different lists that you could use to test two aspects of this program, and the
expected output. [4]
list1 = [2, 6, 46, 90, 0] Expected output: list7 =[0]
list2 = [2, 6, 46, 90] Expected output: []
list2 = [7, 33, 35, 42, 49, 50, 57] Expected output: list7 = [7, 35,42,49]
2. (a) Explain what is meant by caching, and give an example of when it might be used. [3]
Caching is the temporary storage of programs and data which have recently been
used. This is frequently used to store web pages / instructions/data which the user
/program may need again within a short time.
(b) Explain one benefit and one drawback of caching. [2]
Improves performance/saves bandwidth if the same pages do not have to be reloaded
several times.
Drawback: May retrieve a “stale” copy of a web page if the page has been updated
bysince it was cached.