BPP Coursework Cover Sheet
Please use the table below as your cover sheet for the 1st page of the submission. The sheet should
e before the cove
title page of your submission.
Programme BSc Digital and Technology Solutions
Module name
Schedule Term
Student Reference Number (SRN)
Report/Assignment Title
Date of Submission
(Please attach the confirmation of any
extension received)
Declaration of Original Work:
I hereby declare that I have read and understood BPP’s regulations on plagiarism and that this is my
original work, researched, undertaken, completed and submitted in accordance with the requirements
of BPP School of Business and Technology.
The word count, excluding contents table, bibliography and appendices, is ___ words.
Student Reference Number: Date:
By submitting this coursework you agree to all rules and regulations of BPP regarding assessments
and awards for programmes. Please note, submission is your declaration you are fit to sit.
BPP University reserves the right to use all submitted work for educational purposes and may
equest that work be published for a wider audience.
BPP School of Business and Technology
BSc Digital and Technology Solutions
Object Orientated Programming
Coursework Assessment Brief
Submission deadline: See Module Assessment Space on the Hub for
assessment deadlines.
Submission mode: Turnitin online access
2. Assessment Brief
This assessment
ief gives you an overview of the formative and summative assessments that are
part of this module. The learning outcomes below will be tested in the assessment contained in this
ief.
XXXXXXXXXXModule Learning Outcomes (LOs)
1. Demonstrate critical knowledge of key concepts, principles and theories of object-oriented
programming
2. 2. Evaluate program requirements and specifications and understand the complexity of
programming solutions within different business contexts
3. 3. Construct and debug programs using object-oriented principles, tools and techniques for
selected business problems
XXXXXXXXXXAssessment Overview
This assessment contains two submission parts, your practical tasks (70%, LOs 2,3) and an
associated technical report (30%, LO1, 1500 words).
Formative Submission deadline: Practical tasks 1-5 and draft written assessment of 750 words to be
submitted by the date shown on the module assessment space on the Hub by 23:59 in to the
Turnitin Dropbox available in that space.
Summative Submission deadline: All practical tasks and the written assessment to be submitted by
the date shown on the module assessment space on the Hub by 23:59 in to the Turnitin Dropbox
available in that space.
Please note: ensure you read the general assessment guidance at the end of this document
1. Assessment Structure/Guidance
2.1. Case scenario:
You have just been employed as a Python Programmer at NatSouth Bank, one of UKs leading
commercial bank. This new role requires that you learn other programming languages including C++
and Java. NatSouth has a very wide financial product portfolio including commercial loans,
mortgages and investment loans. The bank's data are mostly on a data warehouse and the Cloud.
Some of the
anches (7 at the last count) are still operating using legacy systems which requires
uploading CSV files.
Your first task is to create a small reporting app using Java to help bank employees query and view
important information about these daily mortgage applications. The CSV files are expected to be
processed from the daily mortgage application data; with some additional processes performed such
as data manipulation. You have received all the required CSV files from the data management team
equired for the java application. Any solution provided must be robust enough to handle all similar
file to CSV.
The filename is customermortgage.csv which contains several mortgage daily applications from the
ank
anches still using the legacy system. Figure 1 shows part of the csv file provided.
Figure 1.
The file data follows a tabular form, and the order of the columns are:
1. Loan ID
2. First name
3. Middle name initial
4. Last name
5. Branch code (1, 2, 3, 4, 5)
6. Gender (F/M)
7. Date of birth (mm/dd/yyyy)
8. Loan amount
9. Customer phone number
10. Pass code
You are responsible for developing a small Java program to read all the loan values from the CSV file
and display some useful information about the dataset.
2.1 Assessment part 1
Formative Assessment
Please submit practical tasks 1-5 for this formative submission, you may choose to also submit
700-word plan of your technical report if you wish.
Summative Assessment – Practical Development tasks
Task 1: Login
When the bank employee first opens the application, they should see two options (as
seen in figure 2), and a message that asks them to type their choice.
Figure 2.
If the user selects option 1, the system asks for the admin password to check if the bank
employee user has the privileges to proceed and read the data from the file. The admin
password is hardcoded and its value is “Employ33adm1n”.
The system should only proceed if the password is co
ect, otherwise it should return to
the login menu input. Your program should not crash if the user enters an invalid menu
option.
If the user chooses option 2, the system exits.
Task 2: Read CSV data and load loan objects
Once the password is co
ectly entered by the bank employee, the program should read all
the CSV file, creating Loan objects and storing them in a collection in memory.
You are expected to check for exceptions.
Task 3: Main menu option
After the file is loaded and the objects are stored in a collection in memory, the program
proceeds to display the main menu of the application. The menu should be displayed and
ask the bank employee to choose one of the available options, as shown in figure 3.
If the user chooses the option 0 (exit), the program quits the main menu and returns to the
first login menu options.
Figure 3.
Task 4: List all loan objects
The system should display on the screen a list of all loaded loan objects from the collection
in memory. You are free to choose which information to display for each loan record.
Task 5: Display loans by
anch code
When option 2 is selected, the system should ask the user to enter the
anch code that
needs to be displayed. Your Java program should then proceed to display only the loans of
the selected
anch code, as shown in figure 4.
Figure 4.
Task 6:. Query loan by ID
When the user chooses option 3, the program should ask the user by the loan ID. The
program should also ask the employee to enter and confirm three characters of the loan
pass code. The program should only proceed to display the loan information if the
employee enters the three characters of the loan pass code co
ectly.
For example, if the user chooses to view loan ID 10315, the system should randomly pick
three characters of the loan passcode “XlJH}514&” and ask the user to enter them co
ectly,
as displayed in figure 5.
Figure 5.
If the pass code does not match all characters in the loan object, the program
should not display the loan information and display a message for the user.
Task 7: Display summary by
anch
When the user chooses option 4, the program should display some basic
information about the loans by
anch.
1. The total loan amount requested for each
anch
2. The average of all the amounts requested for each
anch
3. The percentage of M and F customers that applied for loans for each
anch
Task 8: Show this month’s birthdays
When the user chooses option 5, the program should display the name and the date
of birth of all customers from the dataset whose birthday falls in this month.
Note that the dates from the file are listed in the format mm/dd/yyyy.
Written Technical Report
You are required to produce a report (maximum of 1500 words) explaining the main structure
of your program, such as classes, objects, methods of storing lists, a
ays, etc. You can include
extra assets to help explaining the implementation and the design decisions of your code, such
as diagrams, illustrations, tables, or code snippets.
Your report should contain the following:
1. List of classes, attributes, and methods with justifications
List all of your classes and their most important attributes and methods (you don’t need to
list getters and setters. Focus on the crucial methods and attributes. You can also add any
diagrams, tables, and images to illustrate the classes used. Explain design decisions and
justify against recognised principles and theories.
2. Storage methods, lists, and collections with justifications
Explain how you are storing objects in memory, what classes of collection you are using,
and how your program uses them to co
ectly store the values entered by the user.
Explain design decisions and justify against recognised principles and theories.
3. Final considerations and recommendations
List any overall suggestions and limitations of your cu
ent implementation. Note in this
section what testing you have ca
ied out to check the functionality (you may also include a
test plan in the appendices if you wish to note the tests undertaken, but this is not marked).
Include any recommendations or areas of improvement that could be added to your code.
4. Referencing and structure
A list of references used, using only Harvard Referencing System as highlighted in the
General Assessment Guidance section of this document. This can include references to the
Oracle Java API Docs, external online articles used, or any bibliography used to support the
development of your system or clarify the knowledge you obtained on the topics
mentioned in the report.
All the figures/tables used in the report must have captions and, wherever needed, properly
eferenced and mentioned in the report.
For excellent performance, students should use Harvard referencing and clearly