ACCC4006 Software Development

21-01-16 Maddox Smith 0 comment

ACCC4006 Software Development June 2015

TOTAL WORD COUNT: 4000 WORDS

SUBMISSION DETAILS:

As this course is assessed by assignment only, a high quality deliverable is expected.

Students are expected to download their work to Moodle by the deadline given in the assessment schedule published on Students Hall in Moodle.

Check List

ACCC4006 Software Development 1)The database should be marked with students name and student’s ID number. Further instructions on how to submit your work to Moodle will be provided during the term;

2)You may be required to agree a time for 15 min demonstration of the code;

3)Written report describing the code, etc, and it should be marked with students name and student’s ID number.

FAILURE TO MEET THE ABOVE REQUIREMENTS MAY RESULT IN THE STUDENTS WORK NOT BEING MARKED.

ACCC4006 Software Development June 2015

Report format (advice to help you write a professional document):

A report must convey an impression of professionalism in terms of presentation, layout and grammar. The following points outline some basic report writing considerations:

IMPORTANT Avoiding Plagiarism: It is essential in the main body of your submission to give credit to authors on whose research your work is based.

Using Referencing:

– Numbering Sequence

Numeric references must be used in sequence, with the first new reference used being [1], the second new reference being [2], etc. The same reference number may be used again in the preceding text e.g.

Text text text text text text text [1] text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text text [2].

Text text text text text text text [3] text text text text text text text text text text text text text text text text text text text text text [1] text text

– Quotations:

Text text text text text text text text text text text text text text text text text text text text text text text. Schwartz [1] states that:

Information is the life blood of an organisation”.

Text text text text text text text text text text text text text text text text text text text text text text

To be or not to be that is the question.” [2]

Text text text text text text text text text text text text text text text text text text text text text text

– As a source:

Many people prefer blue websites to red websites [2] and this has a significant impact on web design. Schwartz [3] has shown that a significant percentage of the population has a particular sensitivity to the colour red. The colour red is often associated with a warning sign [4, 5, 6] and this might account……

Internet.com [6] argues that web standards provide both interoperability

References Section:

ACCC4006 Software Development June 2015

Append to your submission a ‘References’ section that indicates the books, journals, web sites etc. that you have used in writing your report or quoted in order to complete this assignment e.g.

  • [1]Schwartz, E. (1997) Webonomics, London: Penguin Books Ltd.
  • [2]Featherstone, R. (2000) Robot Dynamics: Equations and Algorithms. IEEE Int. Conf. Robotics and Automation. pp826-834
  • [3]http://www.internet.com/clientside/dhtml/review.html, Aug 2008

Bibliography:

If required append to your submission a “Bibliography” section that is a list of sources that you have consulted but not directly quoted or used in writing the report e.g.

[4] Schwartz, E I (1997) Webonomics, London: Penguin Books Ltd.

At this level of education it is ESSENTIAL you demonstrate your research activities. An average submission will cite at least 5 sources including at least 2 books published within the last 2 years. Depending on the course, a first class submission will cite at least 10 sources including at least 4 books published within the last 2 years and a variety of up-to-date journals.

Books:

  • http://apollo.sihe.ac.uk/library/library.htm
  • Journals:
  • http://portal.acm.org/dl.cfm
  • http://scholar.google.com/
  • http://citeseer.ist.psu.edu

Title page: Including author name and affiliation (relationship with project).

Sections: Ensure a TOC ‘Table of contents’ page is provided at the beginning of the report listing all report sections.

Numbering: Each report section including main headings andsub-headings should be numbered throughout.

All pages should be numbered, Arabic numerals (1, 2, 3, etc.) on all pages consecutively throughout the text, appendices, and bibliography.

Consistency: A document is consistent if, for example, it always uses the same type style including face and size for document objects such as headings, sub- headings, references and content text and all lines should have the same spacing etc.

ACCC4006 Software Development June 2015

Grammar: Technical documents use `passive voice’ expressions, for example your report should avoid using the word `I’ as much as possible.

TASK DESCRIPTION

A Lecturer’s Perspective

In completing this assignment, show Pride, Determination and Commitment.

You should be PROUD of the completed assignment; I don’t want to mark assignments you have rushed to complete with little thought or interest.

You need to be DETERMINED to learn everything you can. Success must be worked for through patience and practice.

You need to be COMMITTED by planning and finding the time to work hard to succeed, and practicing. The key to success in any field is, to a large extent, a matter of practice (see the “10,000 Hour Rule”).

This assignment is designed to test your understanding of the coding concepts covered in class, your ability to read & interpret code, your ability to test code and your ability to develop your own code.

The assignment comes in two sections, each section is worth 50% of the overall marks for the module and the results for each section will be recorded separately (out of 100%)

You are advised to complete part A of both sections 1 and 2 first.

ACCC4006 Software Development June 2015

SECTION 1

In a written report (2000 words) complete the following:

PART A (UNDERSTANDING)

1.Define variable and constant. State the difference between variable and constant. Why variable is important in programming?

2.Explain data types and mention its importance with relevant examples.

3.Explain control structures in programming. Also, discuss how decision making changes the flow of the execution. Describe the Boolean operations that can be used in decision making.

4.Explain why the for-loop can also be referred to as a counting-loop and give an example of why you would use it.

PART B (INTERPRETATION)

The source code for an application has been provided in the appendix.

Run the code and describe how the application works, creating step by step instructions for using this application. Preferably, illustrate your answer with appropriate screen shots and diagrams e.g. flow charts.

Read and provide a line-by –line explanation of how the code for this application has been implemented. Take care to include a description of the concepts used including the arguments being passed, return types, etc.

PART C (IMPLEMENTATION)

FULL PRINTED CODE LISTINGS MUST BE PROVIDED FOR MARKING AND

SCREEN SHOTS SHOULD ALSO BE TAKEN WHERE APPROPRIATE

YOU DO NEED TO COMPLETE ALL THE EXERCISES TO PASS THIS ASSIGNMENT, AND YOU MAY JUST ATTEMPT ELEMENTS OF AN EXERCISE. THE FOLLOWING EXERCISES BECOME INCREASINGLY MORE CHALLENGING, THE OBJECTIVE IS TO DEVELOP A SYSTEMATIC APPROACH TO SOLVING PROBLEMS

Please Note:

This assignment is designed to test your problem solving skills, thus marks will be awarded for: Identifying specific problems in completing the exercise.

oYou may also constrain a problem (simplify it) to produce a simpler solution that may act as a stepping stone to solving the real problem

Demonstrating solutions to these problems.

A clear analysis of the solutions (the thought process behind them)

Testing that demonstrates clearly that the solutions works under all circumstances

Page 8 of 23

ACCC4006 Software Development June 2015

Exercise 1:

Allow the user to declare different types of variables to hold name of a customer, price of a product and quantity. Also, try to find out the total price of the order.

Exercise 2:

Allow the user to enter the dimensions (x and y ) of shape shown below (Figure 1), then calculate and display the area of inner rectangle (colourless portion).

Figure 1

Exercise 3: (Challenging)

Build a fruit machine game but representing the 3 reels of symbols by numbers ranging from 0 to 5, randomly chosen each time the player asks to take another go.

Figure 1 The 3 Reels of a Fruit Machine

To generate random numbers you may add the following function to your code:

//Return a random value 0 to maxValue

//including 0 and maxValue themselves } static Random rnd = new Random(); static int RandomValue(int maxValue)

{

return rnd.Next(initial_value, maxValue + 1);

}

ACCC4006 Software Development June 2015

The value of 5 will be treated as the “Jackpot” symbol.

The scoring will be as follows:

• Any combination of two of the same numbers (excluding fives) will pay a bonus of 5 points e.g.

7 5 7

8 8 9

6 9 9, etc.

Any three of the same numbers (excluding fives) will pay a bonus of 15 points e.g. 7 7 7 8 8 8

9 9 9, etc.

Any combination of two fives will pay a jackpot of 200 e.g.

5 5 9

5 8 5

5 5 6, etc.

• Three fives pay out the big jackpot of 2000 points.

The points the player has accumulated should be displayed and the player should be asked if they wish to make another spin or quit. It could look something like this:

Spin? Yes 5 6 7

You lose, your points are 0 Spin? Yes

7 7 6

You win, your points are 5 Spin? Yes

5 5 5

You win, your points are 2010

Exercise 4: (Very Challenging)

Build a snakes and ladders game (Figure 2). You will need to consider how you will display the board, and how you will represent the snakes, ladders and player. The interesting problem in this exercise is to determine a method for moving the player up the ladder and down the snake.

ACCC4006 Software Development June 2015

SECTION 2

In a written report (2000 words) complete the following:

PART A (UNDERSTANDING)

1.Define Arrays and explain the importance of arrays in programming. Give relevant examples to support your answer.

2.Define function and discuss about function definition and also explain the call by reference and call by value with suitable examples.

PART B (TESTING)

In the application provided in the Appendix, there are three problems:

1.When choosing an option from the menu, try entering text instead of numbers.

2.When the user is asked if they wish to quit, the only input value that can be entered is “YES”. Try other variations e.g. “Yes”, “yes”, “y”, etc.

3.Try displaying all the numbers entered.

Run the code perform a series of tests to check these problems exist then:

a.Write a description of these problems, what is causing the problem.

b.Create tests to simulate them (this may take the form of test documentation) and provide evidence that you have run these tests.

PART C (IMPLEMENTATION)

FULL PRINTED CODE LISTINGS MUST BE PROVIDED FOR MARKING AND SCREEN SHOTS SHOULD ALSO BE TAKEN WHERE APPROPRIATE

YOU DO NEED TO COMPLETE ALL THE EXERCISES TO PASS THIS ASSIGNMENT, AND YOU MAY JUST ATTEMPT ELEMENTS OF AN EXERCISE. THE FOLLOWING EXERCISES BECOME INCREASINGLY MORE CHALLENGING, THE OBJECTIVE IS TO DEVELOP A SYSTEMATIC APPROACH TO SOLVING PROBLEMS

Page 11 of 23

ACCC4006 Software Development June 2015

Please Note:

This assignment is designed to test your problem solving skills, thus marks will be awarded for:

• Identifying specific problems in completing the exercise.

o You may also constrain a problem (simplify it) to produce a simpler solution that may act as a stepping stone to solving the real problem

Demonstrating solutions to these problems.

A clear analysis of the solutions (the thought process behind them)

Testing that demonstrates clearly that the solutions works under all circumstances

Exercise 1:

(a)Ask the user to enter an arbitrary set of numbers into an array and display all the entered numbers.

(b)Then multiply pairs of numbers together and display the results. If you have an odd number of numbers then just display the last number

e.g. “1” “2” becomes “2” “1” “2” “8” becomes “2” “8”

“1” “2” “8” “4” becomes “2” “32”

“1” “2” “8” “4” “7” becomes “2” “32” “7”

Hint: To test for an even number you may use ((number%2) == 0).

Exercise 2:

(a)A user is allowed to enter the goals obtained by two players over a series of ten games (the nature of this game is not important). Each game is scored based on goals and the goals obtained by each player should be entered e.g. 2 goals vs 3 goals (Player1 wins).

(b)For each game they play they are award 2 points for a win, 1 point for a draw and no points if

they lose.

(c)Once the results for all the games are entered, the points obtained by both players should be displayed and the player with the highest points should be highlighted with a special message.

Note: You don’t need to display the scores for all the games that have been entered, just the total points for each player. It might look like this:

ACCC4006 Software Development June 2015

Exercise 3:

Investigate the errors discovered while testing in Part C and fix them.

Exercise 4: (Quite Challenging)

Build a sliding block puzzle game (see Figure 3). Only the tiles around the free space should be allowed to move to fill it, leaving a space behind when they move. Visually you can create this by displaying a grid of numbers in the Console window, and the user will select the tile number (or tile position e.g. 0 for the top left hand corner) to move.

For extra challenge:

Include the ability to restart the game and randomly shuffle the puzzle, but remember you must still be able to complete it. Hint: to make a random decision as to which direction or block to move, use a random value and assign different meanings to each value. For example, the value 0 may mean the block above, 1 the block below, 2 the block to the left and 3 the block to the right. To generate a random value between 0 and ‘maxValue’ add the following function to your code:

//Return a random value 0 to maxValue

//including 0 and maxValue themselves static Random rnd = new Random(); static int RandomValue(int maxValue)

{

return rnd.Next(0, maxValue + 1);

}

Say I want a random value between 0 and 3, then I would call this function like this:

int value = RandomValue(3); The variable ‘value’ is given a random value between 0 and 3



Leave a reply

nineteen − two =