S249/201 DUBLIN INSTITUTE OF TECHNOLOGY KEVIN STREET, DUBLIN 8. _____________

plumponionchipsSoftware and s/w Development

Nov 18, 2013 (3 years and 8 months ago)

82 views









S
249/201




DUBLIN INSTITUTE OF TECHNOLOGY

KEVIN STREET, DUBLIN 8.

_____________


BSc Information Systems/ Information Technology


Stage 2

______________


SEMESTER 1

EXAMINATIONS 2010

______________


MARKING SCHEME







Mr. J. Gilligan

Dr.

D Lillis







Dr M Ali









January 2010


2hrs


Answer Question One and any two others


Question One carries 30 marks, all others carry 35

marks


1:

a)
Define what is meant by
Object Oriented Programming

and describe two ways in
which it
differs from traditional imperative programming.











(6marks)


Sample Answer

Object
-
oriented programming may be seen as a collection of
cooperating
objects
, as opposed to a traditional view in which a program
may be seen as a group of tasks to comput
e ("subroutines"). In OOP,
each object is capable of receiving messages, processing data, and
sending messages to other objects.

Each object can be viewed as an independent little machine with a
distinct role or responsibility. The actions or "operators" o
n the objects
are closely associated with the object.

For example, in object oriented programming, the data structures tend to
carry their own operators around with them (or at least "inherit" them
from a similar object or "class"). The traditional approa
ch tends to view
and consider data and behavior separately.


Question Rationale

The students should be able to articulate the underlying philosophy of the
object oriented paradigm.


Marking Scheme


2 marks for Definition

2

X 2
marks for

each difference.

b
)
State whether or not each

o
f the following declarations is

legal

in JAVA
?

In

each case explain your answer.

A.



public MyClass {//...}

B.



public protected int myVar;

C.



friendly Button myButton;

D.



Label myLabel



(4

marks)

Answer

A


ok

B


wrong
,

canno
t be public and protected

C
wrong no friendly modifier

D


OK if Label is a defined class


Question Rationale

The objective of this question is to assess the students awareness of the
access modifiers in Java.


Marking Scheme

4

X 1 marks

for correct answe
r

c)



class T
Class {


public static void main(String [] args) {


int arr[] = new int[args.length];


float var1 = 0;




for (int i = 0; i < args.length; i++)


arr[i] = (new Integer(args[i])).intValue();




for (int i = 0; i < arr.length; i++)


var1 = (i%2==0)?0:arr[i];


System.out.println(var1/args.length);


}


}

What would be the output of the above program given the following
invocation:


> java


classpath . TClass

20 45 60 85 100 205 300 405



Explain how you arrived at your answer.


(10

marks)



Answer

Answer
50.625


The argument strings are each convereted to an integer value.

This program takes the last arg value and if its index is even it assigns 0 to var1
oth
erwise it assigns the integer equivalent of the last arg value 405 to
var1.

It then divides 405 by 8 the no of arguments which yields 50.625


And this is output.



Question Rationale

This question is intended to assess the students understanding of java co
de.

There are some subtle elements in this program

It uses command line arguments.

It uses the ? operator

It uses casting.


The students will need to get these features in order to arrive at a correct output




M
arking Scheme

5 marks for

correct answer

5
marks for explaining how it arrived


d)

Write a program to print out the following:


1

1 2

1 2 3

1 2 3 4

………

1 2 3 4 5 6 7 8 9 10


(1
0
marks)



// First Program Triangle
nos

public class Triangle
nos{


public static void main(String args []){


int i;


String s
1;


s1 = "1";


System.out.println(s1);



for(i=2;i < 11;i++) {


s1 = s1 + " " + i;


System.out.println(s1);


};




}

}



Question Rationale

The students previous language was C. We did exercises like these in order to
establish the commonalit
y of the
Java Syntax with C. This exercise is designed to
refelect that experience.


Marking Scheme

6 marks for basic attempt at program

4 marks for good explanation or annotation.



2:

a)
Describe briefly , the concept of Semantic Networks.

In particular

show how
semantic nets can model abstract superclasses.

Support Your Answer with appropriate
illustration.

(6

marks)

Sample Answer



Semantic networks are a popular scheme which elegantly reflect these ideas.



A network consists of nodes repesenting objects,

concepts and events and
links between the nodes representing their interrelations.



The development of semantic networks had its origins in psychology. Ross
Quillian in 1968 designed two semantic network based systems that were
intended primariliy as psyc
hological models of associateive memory.



Semantic Networks quickly found application in AI. B. Raphaels SIR system,
also 1968, was one of the first programs to use this type of representation
scheme.



SIR was a question Answering system and could answer qu
estions requiring a
variety of simple reasoning tasks and relationships



Example




While there are no fixed conventions, a number of important features of
Semantic nets have emerged , that are widely used.




These have largely eme
rged because of the application of Semantic Nets to
Object Oriented Theory.



The central aspect of the object paradigm is how it defines objects.

Dog

bone

likes




The basic mechanism of representation is the articulation of class hierarchies.



Instances of Objects exist. In

turn Objects belong to classes and these in turn
can belong to other classes



The central aspect of the object paradigm is how it defines objects.




The basic mechanism of representation is the articulation of class hierarchies.



Instances of Objects exist.
In turn Objects belong to classes and these in turn
can belong to other classes

Question Rationale

Semantic nets are the basis for the object model in object orieneted representation.
The students should show awareness of their features

Marking Scheme

3

ma
rks for overview

1 mark

for class hierarchy

2 for diagrams

b) Represent the following sentence

as a Semantic Network..



“I own a plastic green chair”




(7 marks)

Answer



Question Rationale

This is a practical application of
this representation scheme. The students have done a
practical on this topic and I expect a detailed net which accurately reflects the
elements of this picture.


Marking Scheme

4 marks for a comprehensive representation

3 marks for relevant extra details i
ncluded in the network such as implied class
associations.




c)

In a constructor of a derived class, how do you call the parent's constructor?


(2 marks)


Answer

Using super keyword


Question Rationale

This is to do with basic syntactic

realisation

of inher
itance construct in Java



Marking scheme


2 marks for correct answer

d
)
Design a
n

Account

Class whi
ch has a balance field and three methods

i) Deposit , ii) Withdraw and iii) Get Balance:

(6 marks)

Answer

public class Account


{ protected double
balance;


// Constructor to initialise balance


public Account( double amount ) { balance = amount; }


// Overloaded constructor for empty balance


public Account() { balance = 0.0; }


public void deposit( double amount )

{

balance += amount;

}


p
ublic double withdraw( double amount )

{ // See if amount can be withdrawn

if (balance >= amount) { balance
-
= amount; return amount; } else

// Withdrawal not allowed return 0.0; }


public double getbalance()

{ return balance; }

}

Question Rationale

This exercise is addresses basic Java User Class definition

Marking Scheme

3 marks for basic attempt

3 marks for completeness


c

) Desig
n and Implement a Savings Account Class

which is a subclass of

Account

and has

i) Extra fields representing
a defaul
t Interest Rate and a variable Interest Rate

ii) One Constructor which sets the variable interest rate to the


default interest r
ate

and
the balance to 0

and a
second constructor which takes

the

opening balance and
interest rate value as parameters.

ii)
Extra method

to calcula
te the monthly interest by multi
plying the balance by
variable Interest Rate

divided by 12; this interest should be added to
Account Balance
.


(8
marks)


Answer


class SavingsAccount extends Account

{


// Default interest rate
of 7.95 percent (const)


private static double default_interest = 7.95;



// Current interest rate


private double interest_rate;



// Overloaded constructor accepting balance and an interest rate


public SavingsAccount(
double amount, double interest)


{



balance = amount;



interest_rate = interest;


}



// Overloaded constructor accepting balance with a default interest rate


public SavingsAccount( double amount )


{



balance = amount;



interest_rate =
default_interest;


}



// Overloaded constructor with empty balance and a default interest rate


public SavingsAccount()


{



balance = 0.0;



interest_rate = default_interest;


}




public void add_monthly_interest()


{



// Add interest to our account



balance = balance +




(balance * interest_rate / 100) / 12;


}


}


Question Rationale

This exercise is addresses basic Java User Class

Derived Class

definition


Marking Scheme

1

marks for correctl
y using extends and

2 for correctly accessing parent class

1

X 3 for each section

2

for completeness of implementation


d) Write a control program which uses the classes in parts b and c to create

a Savings
account and which

i) Deposits 250 euros

ii) W
ithdraws 80 euros

iii) Calculates the monthly interest on current Balance

After each action the Account balance should be displayed.

(6

marks)




Answer

/* * * SavingsAccountDemo * Demonstration of SavingsAccount class * */


class SavingsAccountDemo


{
public static void main(String args[])

{

// Create an empty SavingsAccount

SavingsAccount my_SavingsAccount = new SavingsAccount();


// Deposit money

my_SavingsAccount.deposit(250.00);


// Print current balance


System.out.println ("Current balance
" + my_SavingsAccount.getbalance());


// Withdraw money


my_SavingsAccount.withdraw(80.00);


// Print remaining balance


System.out.println ("Remaining balance " + my_SavingsAccount.getbalance());


my_SavingsAccount.add_monthly_interest();


System.ou
t.println ("Remaining balance " + my_SavingsAccount.getbalance());




}

}

Question Rationale

This exercise is addresses basic Java

Control Program

definition

The student needs to be able to correctly use defined classes.


Marking Scheme

2

marks for corre
ct instantiation

1 mark X
3 marks for correct
method invocation for each of the

subtasks requested.

1 mark for displaying balance


3
:

a) Given the following abstract Singer Class:



public abstract class Singer

{


private String nameOfSinger;



// This
abstract method is to output the kind of songs the singer sings



public abstract void sings();


public String getSingerName()


{


return nameOfSinger;


}


public void setSingerName(String name)


{


nameOfSinger = name;


}

}



Crea
te three subclasses of Singer which describe Jazz Singers, Pop Singers and Opera
Singers.

(6 marks)




Answer

public class PopSinger extends Singer

{


public void sings()


{


System.out.println("Sings Pop Songs");


}

}


public class JazzSinger e
xtends Singer

{


public void sings()


{


System.out.println("Sings Jazz songs");


}

}



public class OperaSinger extends Singer

{


public void sings()


{


System.out.println("Sings Classical Songs"); }}


Question Rationale

This questi
on looks at abstract java constructs and how these can be made concrete
through the definition of subclasses.


Marking Scheme

2 marks X 3 for each subclass


b) Write a control program which demonstrates the use of the classes defined in part a
above

(6 mar
ks)




Answer


public class UseSingers

{


public static void main(String[] args)


{


JazzSinger myJazzSinger = new JazzSinger();


PopSinger myPopSinger = new PopSinger();


OperaSinger myOperaSinger = new OperaSinger();


myJazzSinger.set
SingerName("Murphy");


myPopSinger.setSingerName("Elsie");


myOperaSinger.setSingerName("Sammy");


System.out.print(myJazzSinger.getSingerName() + " says ");


myJazzSinger.sings();


System.out.print(myPopSinger.getSingerName() + " says
");


myPopSinger.sings();


System.out.print(myOperaSinger.getSingerName() + " says ");


myOperaSinger.sings();


}

}


Question Rationale

This exercise is addresses basic Java

Control Program

definition

The student needs to be able to correctly

use defined classes.


Marking Scheme

2

marks for correct instantiation

1 mark X
3 marks for correct
method invocation of each

class sing method

1 mark for any extra detail.



c
) Define what is meant by a java interface;

(4 marks)


Answer

An
interface

i
n the Java programming language is an abstract type that is used to
specify an interface (in the generic sense of the term) that classes must implement.
Interfaces are declared using the
interface

keyword and may only contain method
signatures and constant

declarations (variable declarations which are declared to be
both static and final).



Question Rationale

The interface facility in Java is a big mechanism in creating portable systems

The students should be able to describe this concept


Marking Scheme

3 marks for good articulation of interface concept, 1 mark for anything extra and
relevant.


d)

i) Define a java interface called Professional which has one method signature called
work.

(4 marks)

Answer


public interface Professional

{


public void work
();

}


Question Rationale

This objective here is to show ability to correctly define a small interface

Marking Scheme

4 marks for correct interface definition


ii) Define a User Class called ProfessionalJazzSinger which extends the JazzSinger
class defined

in a above and which implements the Professional interface.

This class is to have an extra field to represent hours spent training and methods to get
and set this.

(
9

marks)








Answer


public class ProfessionalJazzSinger extends JazzSinger implements
Professional


{


private int hoursOfTraining;


public void setHoursOfTraining(int hrs)


{


hoursOfTraining = hrs;


}


public int getHoursOfTraining()


{


return hoursOfTraining;


}


public void work()


{


System.out.println
("I am a JazzSinger who works");


System.out.println("I have " + hoursOfTraining +


" hours of professional training!");


}

}


Question Rationale

In the first part of this question an interface was defined. In this part we implement
the int
erface.


Marking Scheme

2 marks for correct use of implements keyword

2

mark
s

for correctly defining subclass

2 marks for the get and set methods

3 marks for definition of work method.



e)
Write a control program which demonstrates the use of the Professi
onalJazzSingers
class defined in part e above.


(6 marks)



Answer

public class DemoProfessionalJazzSingers

{


public static void main(String[] args)


{


ProfessionalJazzSinger dizzy = new ProfessionalJazzSinger();


ProfessionalJazzSinger jazzy

= new ProfessionalJazzSinger();


dizzy.setSingerName("Simon");


jazzy.setSingerName("Sophie");


dizzy.setHoursOfTraining(40);


jazzy.setHoursOfTraining(300);




System.out.println(dizzy.getSingerName() + " says ");


dizzy.sings
();


dizzy.work();


System.out.println();




System.out.println(jazzy.getSingerName() + " says ");


jazzy.sings();


jazzy.work();


}

}


public class DisplayJazzSinger

{


public static void main(String[] args)


{


JazzSing
er myJazzSinger = new JazzSinger();


String JazzSingerString = myJazzSinger.toString();


System.out.println(JazzSingerString);


}

}

Question Rationale

This exercise is addresses basic Java

Control Program

definition

The student needs to be able

to correctly use defined classes.


Marking Scheme

2

marks for correct instantiation

1 mark X
3 marks for correct
method invocation of each

class sing method

1 mark for any extra detail.













4:

a)

Courses

is an array which contains the following DI
T course codes:


{DT211,DT249, DT228,DT210}


Write a java program which takes a course code as input and checks to see if that code
is in the
Courses

array.

(10 marks)

Answer

import javax.swing.*;

public class SearchList

{


public static void main(String
[] args)


{


String[] deptName = {DT211,DT249, DT228,DT210};


String code;


int x;


boolean codeWasFound = false;


code = JOptionPane.showInputDialog(null,


"Enter a department name");


for(x = 0; x < deptName.length
; ++x)


if(code.equals(deptName[x]))


codeWasFound = true;


if(codeWasFound)


JOptionPane.showMessageDialog(null, code +


" was found in the list");


else


JOptionPane.showMessageDialog(null, co
de +


" was not found in the list");


System.exit(0);


}

}



Question Rationale

The students previous language was C. We did exercises like these in order to
establish the commonality of the Java Syntax with C.
One key follow an was wi
th
arrays.

This exercise is

designed to ref
lect that experience.


Marking Scheme

6 marks for basic attempt at program

4 marks for good explanation or annotation.




b)

Compare and contrast vectors and arrays in java

(4 marks)


Answer



Vectors are much like arr
ays in that Vectors are



homogeneous

-

vectors typically store only one kind of element;



indexed

-

vectors permit clients to access values using integers that indicate
position;



efficient

-

vectors provide fast access to values.


V
ectors
differ from arra
ys in that they
are
expandable

-

you can continue to add
elements to a vector, even if the vector has grown beyond its original size.


Question Rationale

This is to evaluate students understanding of the array and vector classes of java.

They are similar

in many respects but different in the crucial ability to expand of
vectors and in the methods employed.


Marking scheme

2 for similarities

2 for differences.


c)

Define a class Person which has fields , first name and surname and defines a
toString meth
od.

(5 marks)

Answer

public class Person

{

private String firstName;

Provate String surname;



public Person(String firstName, String surname)

{

this.firstName = firstName;

this.surname = surname;

}


public String toString()

{return firstName + " " + surn
ame;

}

}


Question Rationale

This exercise is addresses basic Java User Class definition

Marking Scheme

3 marks for basic attempt

2

marks for completeness


d)

Write a java class which uses vectors to represent a crowd of people as defined by
the Person class
in part c above

(8 marks)


import java.util.*;

class Crowd

{

private Vector people;


public Crowd()

{

people = new Vector();

}


public Crowd(int numPersons)

{

people = new Vector(numPersons);

}



public boolean add(Person someone)

{

return people.add(someo
ne);

}


Person get(int index)

{

return (Person)people.get(index);

}


public int size()

{

return people.size();

}


public int capacity()

{

return people.capacity();

}


public Iterator iterator()

{

return people.iterator();

}


}

Question Rationale

This exerc
ise is addresses basic Java User Class

Derived Class

definition

Significantly it also involves the use of a vector.


Marking Scheme

1

marks for correctly using extends and

2 for correctly accessing parent class

3 marks for correctly using vector

2

for com
pleteness of implementation


e)

Write a control program which uses the crowd class and which does the
following:

i)

Adds five people to the crowd

ii)

Outputs the 3
rd

person in the crowd

iii)

Removes the 2
nd

person from the crowd

iv)

Outputs the size of the crowd.


(8 marks)

Answer




public class
Crowddemo

{


public static void main(String[] args)


{


Crowd crowd1 = new Crowd()


Person p1 = new Person(“JR”,” Ewing”);


crowd1.add(p1);


Person p2 = new Person(“Bobby” , “Ewing”);


crowd1.add(p
2);


Person p3 = new Person(“SueEllen”,” Ewing”);


crowd1.add(p3);


Person p4 = new Person(“Granny” , “Ewing”);


crowd1.add(p4);



Person p5 = new Person(“Chuck” , “Ewing”);


crowd1.add(p5);


Person p6 = crowd1.get
(2);


System.out.println(p6.toString());


crowd1.remove(1);


System.out.println(“size is “ + crowd1.size())
;

}}




Question Rationale

This exercise is addresses basic Java

Control Program

definition

The student needs to be able to correct
ly use defined classes.


Marking Scheme

2

marks for correct instantiation

1 mark X 4

marks for correct
method invocation of each

class sing method

2 marks for any extra detail.