P1, M1, & D1
The submission is in the form of a ten-minute Microsoft® PowerPoint® style presentation to be presented to your colleagues. The presentation can include links to performance data with additional speaker notes and a bibliography using the Harvard referencing system. The presentation slides for the findings should be submitted with speaker notes. You are required to make effective use of headings, bullet points and subsections as appropriate. Your research should be referenced using the Harvard referencing system. The recommended word limit is 500 words, including speaker notes, although you will not be penalised for exceeding the total word limit.
P2, M2, & D2
The submission is in the form of an individual written report. This should be written in a concise, formal business style using single spacing and font size 12. You are required to make use of headings, paragraphs and subsections as appropriate, and all work must be supported with research and referenced using the Harvard referencing system. Please also provide a bibliography using the Harvard referencing system. The recommended word limit is 2,000–2,500 words, although you will not be penalised for exceeding the total word limit.
P3, P4, P5, M3, M4, D3 &D4
The submission is in the form of five documents/files:
1. Stage 1 – Development Document
2. Stage 2 – Report (IDE Evaluation)
3. Stage 3 – Report (Debugging Evaluation)
4. Stage 4 – Report (Evaluation Report) including fully commented source code
5. An installable and executable version of your application
You are required to make use of appropriate structure, including headings, paragraphs, subsections and illustrations as appropriate, and all work must be supported with research and referenced using the Harvard referencing system.
Unit Learning Outcomes:
LO1 Define basic algorithms to carry out an operation and outline the process of programming an application.
LO2 Explain the characteristics of procedural, object-orientated and event-driven programming, conduct an analysis of a suitable Integrated Development Environment (IDE).
LO3 Implement basic algorithms in code using an IDE.
LO4 Determine the debugging process and explain the importance of a coding standard
WorkBrief and Guidance:
TASK 2: P2, M2, D2
The research and development team you work with have been tasked with further investigation into how best to build more efficient, secure software. You have been asked to look into programming paradigms and the advantages and disadvantages of using different programming language approaches.
You will need to create a report covering findings from research into the characteristics of different programming paradigms – procedural, object-orientated and event-driven programming.
P2: Give explanations of what procedural, object orientated and event driven paradigms are; their characteristics and the relationship between them.
a. Provide explanations for the following programming paradigms:
• .Object Orientated and
• Event Driven
For each of the above ensure you include in your explanations their characteristics and the relationship between them.
M2: Analyse the common features that a developer has access to in an IDE.
b. For each paradigm perform an analysis of suitable IDEs describing the key features of the IDE you used developing your programs.
D2: Critically evaluate the source code of an application which implements the programming paradigms, in terms of the code structure and characteristics.
c. Select application(s) you have developed and critically evaluate the source code in terms of the following;
• data types (the role of constants/variables)
• methods (including input/output)
• control structures
• parameter passing
• inheritance and
TASK: P3, P4, P5, M3, M4, D3 &D4
The software development unit of the company you are currently working for have a position available for an application developer which you are interested in applying for. As part of the application process they want to see that you can implement algorithms using an IDE.
Your aim is to create a fully working, secure application developed using an IDE and adheres to coding standards based on the scenario given in Appendix A.
The document portfolio should include:
1. Evidence of how the IDE was used to manage the development of your code.
2. An evaluation of developing applications using an IDE versus developing an application without
using an IDE.
3. An evaluation of the debugging process in the IDE used and how it helped with development.
4. An evaluation of coding standards and the benefits to organisations of using them.
The working application produced must also be demonstrated to your programming lecturer.
P3: Write a program that implements an algorithm using an IDE.
a. Demonstrate implementation of algorithms, using the features of a suitable language and IDE. Consider possible security concerns and how these could be solved.
P4: Explain the debugging process and explain the debugging facilities available in the IDE.
b. Using the debugging facilities available in the IDE used in developing your application, explain the debugging process.
P5: Outline the coding standard you have used in your code.
c. Discuss the coding standard you followed in developing your application.
M3: Use the IDE to manage the development process of the program.
d. Demonstrate the use of an IDE to implement designed algorithm from source code to its execution.
M4: Evaluate how the debugging process can be used to help develop more secure, robust applications.
e. Discuss how you can use the debugging process to develop a more secure and robust application.
D3: Evaluate the use of an IDE for development of applications contrasted with not using an IDE.
f. Evaluate your own experience of using and IDE to develop an application contrasting it with not using an IDE.
D4: Critically evaluate why a coding standard is necessary in a team as well as for the individual.
g. Considering the coding standard you followed, critically evaluate why this is necessary for individual and/or team of programmers.
Final Submission (Hand-In) of work to Examination Room is Wednesday 3rd January 2018
NOTE ON PLAGIARISM
• Work, which is significantly similar to that of another, will be treated as plagiarised and disciplinary action will be taken in accordance with course regulations.
• This is not intended to discourage you from discussing your work with other students. In fact, such discussion may well be beneficial provided the final work is clearly original.
Appendix A –Project Scenario
Bank Accounts Project
Design a generic class to hold the following information about a bank account:
• Number of deposits this month
• Number of withdrawals
• Annual interest rate
• Monthly service charges
• Customer details: Full Name, Address, City, Town, Zip Code, Mobile Number.
The class should have the following member functions:
• Constructor: Accepts arguments for the balance and annual interest rate.
• deposit: A function that accepts an argument for the amount of the deposit. The function should add the argument to the account balance. It should also increment the variable holding the number of deposits.
• withdraw: A function that accepts an argument for the amount of the withdrawal. The function should subtract the argument from the balance. It should also increment the variable holding the number of withdrawals.
• calcInt: A function that updates the balance by calculating the monthly interest earned by the account, and adding this interest to the balance.
This is performed by the following formulas:
MonthlyInterestRate = (AnnualInterestRate/12)
MonthlyInterest = Balance * MonthlyInterestRate
Balance = Balance + MonthlyInterest
• monthlyProc: A virtual function that subtracts the monthly service charges from the balance, calls the calcInt function, and sets the variables that hold the number of withdrawals, number of deposits, and monthly service charges to zero.
Next, design a savings account class, derived from the generic account class. The savings account class should have the following additional member: status (to represent an active or inactive account)
If the balance of a savings account falls below £15, it becomes inactive. (The status member could be a flag variable.) No more withdrawals may be made until the balance is raised above £15, at which time the account becomes active again. The savings account class should have the following member functions:
• withdraw: A function that checks to see if the account is inactive before a withdrawal is made. (No withdrawal will be allowed if the account is not active.) A withdrawal is then made by calling the base class version of the function.
• deposit: A function that checks to see if the account is inactive before a deposit is made. If the account is inactive and the deposit brings the balance above £15, the account becomes active again. The deposit is then made by calling the base class version of the function.
• monthlyProc: Before the base class function is called, this function checks the number of withdrawals. If the number of withdrawals for the month is more than four, a service charge of £1 for each withdrawal above four is added to the base class variable that holds the monthly service charges. (Don’t forget to check the account balance after the service charge is taken. If the balance falls below £15, the account becomes inactive.)
Next, design a checking account class, also derived from the generic account class. It should have the following member functions:
• withdraw: Before the base class function is called, this function will determine if a withdrawal (a check written) will cause the balance to go below £0. If the balance goes below £0, a service charge of £15 will be taken from the account. (The withdrawal will not be made.) If there isn’t enough in the account to pay the service charge, the balance will become negative and the customer will owe the negative amount to the bank.
• monthlyProc: Before the base class function is called, this function adds the monthly fee of £5 plus £0.10 per withdrawal (check written) to the base class variable that holds the monthly service charges.
Write a complete program that demonstrates these classes by asking the user to enter the amounts of deposits and withdrawals for a savings account and checking account. The program should display statistics for the month, including beginning balance, total amount of deposits, total amount of withdrawals, service charges, and the ending balance.
Finally, show monthly statistics reports for at least five (5) customers written into a file including customer details, then retrieve the ending balance for each customer and put in an array called customerBalance. Perform and display the following the following:
• Total of the ending balances
• The minimum ending balance
• The maximum ending balance
• The average ending balance
• The sorted array in a descending order using the selection sort method
• Search for the location of the minimum end balance using the binary search method.
Note: You may need to add more member variables and functions to the classes than those listed here.