Mock Exam 2010 S2
-
Upload
timothy-fata-meafou -
Category
Documents
-
view
215 -
download
0
Transcript of Mock Exam 2010 S2
-
8/2/2019 Mock Exam 2010 S2
1/5
AUT University
406704: Program Design and Construction
Mock Exam Paper
October 2010
Read these instructions first:
This is a 2 hour paper.
It has 100 marks.
This is a closed bookexam. You may not refer to reference materials or use a mobile phone or
computer. You will not need a calculator. You must not confer with your fellow students.
The exam is divided into two parts. Part A consists of short-answer questions. Part B consists of
longer questions requiring you to design software. Each part carries 50 marks.
Answerall questions in Part A.
Attempt 2 questions from Part B. If you attempt more than 2 questions, all of your answers will be
marked and your best two marks taken.
Read all questions first. Plan how you will spend your time. You have a little over a minute to
spend on each mark. If you do not know the answer to a question, complete other questions first
then come back to it. Allow adequate time for completing Part B, where the questions are longer
and carry more marks.
You may answer the questions in any order. Clearly indicate the number of the question being
answered in you answer book.
Large amounts of text are not required in answers. Use short sentences, lists, and simple
diagrams.
-
8/2/2019 Mock Exam 2010 S2
2/5
Part A - This section consists of short answer questions testing your knowledge and understanding
of program design and construction.
1. Software development projects often look like a race to develop a computer program before
the money available to do so runs out.
a. [1 mark] What would a company usually expect to spend the most money on whendeveloping software?
b. [4 marks] Give two examples a software engineering techniques or technologies and for
each say how it helps to reduce costs.
2. In the course of developing a computer program we make a number of decisions about what
to do with our code.
a. [3 marks] Bad decisions, or 'mistakes' can end up costing us money and threatening the
success of our project. List two factors that are important in determining how expensive a
mistake ends up being, and what kinds of software engineering techniques help us reducethese costs?
b. [2 marks] There is a cost associated with making good decisions too, because we have to
spend time and effort doing so. But sometimes this cost is unnecessary. Why, and what
kinds of software engineering techniques help us reduce these costs?
3. Your software development project uses a version control system.
a. [1 mark] what does a version control system do?
b. [2 marks] list two routine activities involved in working with a version control system
c. [2 marks] Identify two advantages to using a version control system.
4. Here is some code that
a. [3 marks] Write a Java expression that will evaluate to true if all of the preconditions for
this code are met.
b. [2 marks] Write a Java expression that evaluates to true if the function x() does what we
would expect from its name, and false otherwise.
5. a. [2 marks] Explain what is wrong with the following function for printing a countdown.
b. [3 marks] Rewrite the function so that it works as expected without using recursion.
6. Functional decomposition breaks complex tasks down into smaller ones. Often this
corresponds to the structure of a procedural program. Suppose we have a function
printPartyInvitation() that takes the name and address of one of our friends, and creates a
letter inviting that friend to a party.
a. [3 marks] If printPartyInvitation() calls three subroutines to get its job done, and those
subroutines have good names that reflect their function, what might they be called?
b. [2 marks] Choose one of your subroutines from the previous answer, and suggest two
further subroutines that it might call.
7. a. [4 marks] Java provides some standard exceptions that should be thrown when a method
receives a parameter value that it cannot handle. Name two, and describe precisely whenthey should be thrown.
b. [1 mark] When will the following piece of code not generate an AssertionError if its line
-
8/2/2019 Mock Exam 2010 S2
3/5
is reached in an executing Java program?
8. a. [1 mark] Give the Java code for initialising a reference variable with a new object of type
java.lang.Object.
b. [2 marks] How does inheritance reduce the cost of programming in an object-oriented
language?
c. [2 marks] How does encapsulation reduce the cost of programming in an object-orientedlanguage?
9. a. [5 marks] The documentation of a design pattern is usually separated into a number of
short sections, each of which gives some useful information about the pattern. Name five of
these sections.
b. [5 marks] Describe a design pattern that you know.
-
8/2/2019 Mock Exam 2010 S2
4/5
Part B - This part consists of four programming questions. Attempt at least two.
10. [25 marks] Convert the following structured program into a procedural program. Obey the
following style guide:
1. All variables and procedures should have meaningful names
2. No procedure should contain more than one level of nesting in its structure
3. Procedures can only share information via parameters and return values (you cannotassume a variable is shared by two subroutines
4. Avoid duplicate code
System.out.println("Welcome to the romance compatibility checker!");
System.out.print("Enter your name: ");
Scanner scanner = new Scanner(System.in);
String a = scanner.next();
float t1 = 0;
for(int n = 0; n < a.length(); n++) {
int v = a.charAt(n) - 'a';
t1 += v;
}
t1 = t1/a.length();
boolean y = true;
while(y) {
System.out.print("Enter the name of your friend: ");
String b = scanner.next();
float t2 = 0;
for(int n = 0; n < b.length(); n++) {
int v = b.charAt(n) - 'a';
t2 += v;
}
t2 = t2/b.length();
float d = t1 - t2;
if(d < -5) System.out.println("No, you are too good for them!");
elseif(d > 5) System.out.println("No, they are too good for you!");
else System.out.println("Good match! You will be very happy!");
System.out.print("Check another name? (y/n): ");
String r = scanner.next();
y = r.equalsIgnoreCase("y");
}
System.out.println("Goodbye!");
13. [25 marks] A self-service supermarket checkout has a touchscreen to interact with the user.Write three user stories for the system. One user story should cover the whole process of
checking out. Two more should cover smaller parts of the process in more detail.
For each story, list the user decisions made in the story. For each decision list the
information that the user needs to make the decision. Group the decisions into tasks and
design task windows for each task. Sketch each window, and indicate the features that make
it easy for the customer to use.
-
8/2/2019 Mock Exam 2010 S2
5/5
14. [25 marks] An 'outline editor' is a text editor that allows documents to be arranged into
sections. A section has a title and can contain paragraphs of text, and other sections. A
document is a section with no parent.
Using a boxes and lines diagram (or UML class diagrams if you are familiar with them),
sketch the design of an outline editor that uses the Model/View/Controller architecture.
Show in the diagram the structure of the classes making up the model. Annotate yourdiagram to show where particular design patterns are used. Include additional design
patterns in your architecture if they would add useful functionality.
15. [25 marks] Show how you would use test-first programming to develop a procedure to
convert an integer representing the time in minutes since midnight to a string in 24 hours
format hh:mm. Lay out your answer as follows: first write an assertion statement that tests
the procedure (you don't need to show a whole JUnit test method); then show the procedure
that you would write to make the assertion pass; then write another assertion; then show
what the procedure would look like after you have changed it to make both previous
assertions pass. Continue like this until you think you have enough tests and a correct
implementation. Remember to always produce the least amount of code that will make theprior tests pass.