0% found this document useful (0 votes)
49 views

Year 1 Computer Programming Assessment Brief

This assessment comprises three components: a Moodle quiz worth 15%, a 48-hour coding challenge worth 15%, and a computer programming project worth 70%. The programming project requires designing and developing a banking system in Python and submitting documentation, source code, and testing by January 15th.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
49 views

Year 1 Computer Programming Assessment Brief

This assessment comprises three components: a Moodle quiz worth 15%, a 48-hour coding challenge worth 15%, and a computer programming project worth 70%. The programming project requires designing and developing a banking system in Python and submitting documentation, source code, and testing by January 15th.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

BIRMINGHAM CITY UNIVERSITY

FACULTY OF COMPUTING ENGINEERING AND THE BUILT ENVIRONMENT


COURSEWORK ASSIGNMENT BRIEF
[CMP4266 & Computer Programming]

Coursework Assignment Brief


Undergraduate

Academic Year 2019-20


Module Title: Computer Programming
Module Code: CMP4266
Assessment Title: Development of a Banking System
Weighting:
1. Moodle quiz : 15%
2. 48 hours coding challenge: 15%
3. Computer programme, design,
Assessment Identifier: CWRK001 solution and testing: 70%

School: School of Computing and Digital Technology


Module Co-ordinator: Dr. Shadi Basurra
• For Component 1 - Moodle quiz will take place on the
week commencing 28 October 2019

• For Component 2- 48 hours coding challenge to


complete on Moodle. This will take place on the week
Hand in deadline date:
commencing 11 November 2019

• For Component 3 - Computer programme, design,


solution and testing. Hand in is on 12pm Mid-day 15 January
2020
Return of Feedback date
20 working days
and format
Re-assessment hand in
12pm Mid-day on 29th July 2020
deadline date:
Support available for
Timetabled support sessions will be arranged for the period
students required to
immediately preceding the hand-in date
submit a re-assessment:

At the first assessment attempt, the full range of marks is


NOTE: available. At the re-assessment attempt the mark is capped
and the maximum mark that can be achieved is 40%.
1
CEBE UG Assignment brief revised 19/10/2018
BIRMINGHAM CITY UNIVERSITY
FACULTY OF COMPUTING ENGINEERING AND THE BUILT ENVIRONMENT
COURSEWORK ASSIGNMENT BRIEF
[CMP4266 & Computer Programming]

Assessment Summary This assessment comprises of three components which are


due in Weeks 5, 7 and in 15 January 2020.
1. Moodle Python Quiz (Total weight 15%).
2. 48 hours Coding Challenge (Total weight 15%)
3. Computer programme solution and testing (Total
weight 70%). This must include the following parts;
A. Design documentation submitted online (Weight
15%). This must include the two flow chart
diagrams.
B. Programme source code submitted online (Weight
40%).
C. Testing and evaluation inclusive of test cases
submitted online. (Weight 15%).
Further details for each deliverable are below

2
CEBE UG Assignment brief revised 19/10/2018
IMPORTANT STATEMENTS

Undergraduate Regulations

Your studies will be governed by the BCU Academic Regulations on Assessment, Progression and
Awards. Copies of regulations can be found at https://icity.bcu.ac.uk/Academic-
Services/Information-for-Students/Academic-Regulations-2018-19

For courses accredited by professional bodies such as the IET (Institution of Engineering and
Technology) there are some exemptions from the standard regulations and these are detailed in
your Programme Handbook

Cheating and Plagiarism

Both cheating and plagiarism are totally unacceptable and the University maintains a strict policy
against them. It is YOUR responsibility to be aware of this policy and to act accordingly. Please
refer to the Academic Registry Guidance at https://icity.bcu.ac.uk/Academic-Registry/Information-
for-Students/Assessment/Avoiding-Allegations-of-Cheating

The basic principles are:


 Don’t pass off anyone else’s work as your own, including work from “essay banks”. This is
plagiarism and is viewed extremely seriously by the University.
 Don’t submit a piece of work in whole or in part that has already been submitted for
assessment elsewhere. This is called duplication and, like plagiarism, is viewed extremely
seriously by the University.
 Always acknowledge all of the sources that you have used in your coursework assignment
or project.
 If you are using the exact words of another person, always put them in quotation marks.
 Check that you know whether the coursework is to be produced individually or whether you
can work with others.
 If you are doing group work, be sure about what you are supposed to do on your own.
 Never make up or falsify data to prove your point.
 Never allow others to copy your work.
 Never lend disks, memory sticks or copies of your coursework to any other student in the
University; this may lead you being accused of collusion.

By submitting coursework, either physically or electronically, you are confirming that it is your own
work (or, in the case of a group submission, that it is the result of joint work undertaken by
members of the group that you represent) and that you have read and understand the University’s
guidance on plagiarism and cheating.

You should be aware that coursework may be submitted to an electronic detection system in order
to help ascertain if any plagiarised material is present. You may check your own work prior to
submission using Turnitin at the Formative Moodle Site. If you have queries about what
constitutes plagiarism, please speak to your module tutor or the Centre for Academic Success.

3
Electronic Submission of Work

It is your responsibility to ensure that work submitted in electronic format can be opened on a
faculty computer and to check that any electronic submissions have been successfully uploaded. If
it cannot be opened it will not be marked. Any required file formats will be specified in the
assignment brief and failure to comply with these submission requirements will result in work not
being marked. You must retain a copy of all electronic work you have submitted and re-submit if
requested.

Learning Outcomes to be Assessed:


1. Design solutions to programming problems
2. Implement those solutions in an imperative programming language by using common
programming tools (such as editors and interpreters).
3. Use common programming tools and techniques (e.g. IDE, testing APIs and theories)
to test and evaluate programs.

Assessment Details:

Title: Design and development of a Banking System using Python programming language

Type: A Moodle quiz and a design and Implementation coursework

Style: Summative Assessment

1. Moodle quiz (Total weight 15%)

This quiz is closed book and must be carried out using your own login account. The test is
45 minutes long, and will consist of various types of questions including multiple-choice
questions, and may include some coding exercises. The quiz will test your knowledge about
fundamental programming concepts learnt during the first few weeks of this module.
Possible topics will be covered in the test includes variables, functions, decision structure,
logical operators, lists and loops etc.
Instructions to Candidates:
 There will be 10 questions on the Moodle, and your answers must be valid for
Python version 3.6.
 Attempt all questions.
 All questions carry equal marks.
 Candidates are not permitted to use the Internet.
 The use of Python platform is not permitted.

Note: If your tutor sees you communicating with anyone online on in the lab, your test will
be endorsed and you will receive 0 marks for this test. Note, all computer activities are

4
logged, and each log is identified with student ID number. Hence, it is possible to detect all
inappropriate activities during and after the test.

2. 48 hours coding challenge (Total weight 15%)


For this part, you will be given 48 hours to complete some coding tasks on Moodle. The
tasks given in this challenge will be based on the exercises that you have completed in
previous labs, more specifically exercises in the labs 1, 2, 3, 4, 5 and 6. To do well in this
challenge you will need to complete all previous labs before this coding challenge is
released.
It is important to test your code before you submit it on Moodle. This is because Moodle will
mark a piece of code according to how many test cases it passes, so zero for a failed case,
and 100% for passed test case. Hence, it is critical to use the Python shell “Spider” to
ensure that your code produces the same results shown in the test cases in Moodle.
This exercise will be marked online but will have to be later verified by your personal tutor,
otherwise, any marks resulted from the online challenge will not be considered, and you will
be given zero marks instead. The verification process will be performed during a scheduled
tutorial session by your personal tutor. The verification will check the following:
- All previous labs (1, 2, 3, 4, 5 and 6) have been completed, and submitted prior to the
verification.
- All answers for the coding challenge should be submitted within 48 hours, else,
typical penalties for late submission will be applied.
- You have made a reasonable coding attempt when you completed the tasks for the
challenge.

Note: You can always seek help and support from your tutors and demonstrators regarding
your lab exercises prior to the 48 hours coding challenge. However, when the coding
challenge is on, no tutor or a demonstrator will give you any help or support in relation to the
48 hours coding challenge or any relevant lab exercises.

3. Design, development and testing of a computer programme


solution (Total weight 70%)

Part A – Design documentation (weight 15%)

Overview of banking systems


A banking system is a group or a network of institutions that provide financial services for
citizens. These institutions are responsible for operating a payment system, providing loans,
taking deposits, performing money transfer and helping with investments. In this
coursework, students will create a ‘prototype’ Banking system to focus on basic operations
such as deposit money, withdraw money, transfer money and agree to make loans to their
customers. The system admin can create new bank accounts to customers, search for
customers’ accounts, update/view customer personal details and close customers bank
account.

5
Use the above activities to draw two flowcharts using the special shapes to represent
different types of actions or steps in a process. Link these activities with Lines and arrows
show the sequence of the steps, and the relationships among them.

For this part of the assessment you need to submit two flow chart diagrams (total
weight 15%). To complete this you must refer to Week 2 learning materials.

o (7%) One diagram should depict the log-in process for the banking system

o (8%) Second diagram should explain a critical/complicated process of the


system e.g. making money transfer from one account to another.

Part B – System development (weight 40%)

Important:
This part of the assessment should not be attempted by students until you are
provided with the partial implementation code which you must use as a starting
point of your system, and this will be provided to you around week 7 of this
semester. Developing your banking system from scratch is not acceptable for
this assessment, and may lead into losing substantial amount of marks.

Description:

Rationale
This programming assignment is to apply the programming principles covered in tutorials
and lectures to develop a python software that implements core banking solution that is
used in banks by its customers and staff members. The software can be fully implemented
using text based interface, however, to achieve higher marks, a GUI based software can be
developed using the Python GUI Programming module namely Tkinter. GUI design and
Tkinter programming will be covered during weeks 7 or 8. The aim of the exercises is to
enhance a student’s experience of programming by applying programming principles to a
larger problem of developing a complete application.

There are mainly two reasons behind the selection of the banking system as the topic of this
coursework. Firstly the students are familiar with the banking systems, hence, students will
spend less time and effort to understand the functions specification of the software they will
be developing for this coursework. Hence, most of their time will be devoted to the design,
development and testing of the banking system by applying the programming knowledge
and skills they learnt throughout this module. Secondly, GUI based programs make it easier
to interact with the developed system and demonstrate a direct relationship between the
user interaction and the system functions and data. Also, students will learn about how a
product works entirely from the user's (or customer's) perspective and not from just a
developer prospective. Hence, they will need to develop a user friendly GUI.

Objective - Sample prototype application


The objective of this assessment is to develop a python software that implements a core
banking solution that is used in banks by its customers and bank admins. A partial
implementation of a prototype banking system will be developed during the practical
sessions in the PC labs. This prototype will be developed to include basic banking system
6
functionalities such deposit money and display balance. The main class will allow to add a
number of customers accounts at the start of the software. At the initial stage, all customer
data will be hard coded. However, for students to achieve higher marks, they should
enhance the system functionalities by using text files to store the customers related
information.

Assessment specifications with a detailed marking scheme:

To achieve a mark to maximum of 40% of the total marks for the System
Development

The application must implement all the following:


Create the necessary classes and functions which allow admins to perform the following
tasks
 Admin Login
 Search for a particular customer to perform various banking operations on a
customer bank account i.e. check balance, deposit or withdraw money etc.
 Deposit money into a customer account
 Withdraw money from a customer account
 Check current balance for a customer
 View customer details e.g. name and address
 Update customer information e.g. name and address

To achieve a mark of 41% to maximum of 50%

The application must implement all the above and the following:
Create the necessary classes and functions which allow admins to perform the following
tasks:
 Close a customer account i.e. remove customer from the system
 Update admin own information i.e. name and address
 Print all customers details

To achieve a mark of 51% to maximum of 70%

The application must implement all the above and the following:
 Customers can have different types of bank account. Accounts will differ in their
name, interest rate and overdraft limit etc.
 The bank system should be able to store and load all customers’ data from and
into a file.
To achieve a mark of 71% to maximum 80%

The application must implement all the above and the following:

 Transferring funds/money from one account to another. For example, an Admin


can transfer funds from one customer account to another customer account.

7
 Admins can request a management report. This should show the following
information;
o Total number of customers in the system
o The sum of all money the customers currently have in their bank account.
o Using individual account balance, the report should calculate the sum of
interest rate payable to all accounts for one year, note, if customers have
different account types, their rates will vary.
o Total amount of overdrafts currently taken by all customers.

To achieve a mark of 80% and over

 Development of a suitable Graphical User Interface (GUI) to perform all the above
banking functions.

Note: students need to submit their system alongside the necessary objects to test their
software by the tutors when marking. For example, if your system is able to deal with
different types of bank accounts (e.g. business and savings accounts), then you should
populate the system with at least two customers that have two or more different account
types.

Part C – Testing and evaluation (weight 15%)

Software testing is the process of evaluation a software item to detect differences between
given input and expected output. Students are expected to perform White Box Testing (also
known as Clear Box Testing). White box testing involves looking at the structure of the code.
Since you know the internal structure of a system, tests can be conducted to ensure that the
internal methods and operations perform according to the specification. Students must
chooses inputs to exercise paths through the code and determines the appropriate outputs.
Good testing means your system is free of logical and run time errors.
 For this part, you need to develop a test plan that includes test cases based upon the
system design and implementation of your Banking System.
o We expect around 15 unique and valid test cases for your system.
o Testing and evaluation mechanism and methods will be explained during
Week 9 when we will cover “Debugging and Test Plan”.
o Testing and evaluation will only be done when the 1st version of your software
has been implemented.

Additional information:
The following links provides further information about the programming language used for
teaching this module:

Essential Book:

Gaddis, T. (2015). Starting Out with Python. 3rd ed. Pearson Education

Recommended Tutorials:
8
Portable Python (http://www.portablepython.com)
Python Website (http://www.python.org)

Python Official Documentation (https://docs.python.org/3/)

Python Official Tutorial (https://www.python.org/about/gettingstarted/)

Recommended Readings:

 Downey, A. (2015). Think Python How to Think Like a Computer Scientist. 2nd ed.
O'Reilly Media

 Shaw, Z. (2013). Learn Python the Hard Way. 3rd ed. Addison Wesley

 Spraul, V. A., (2012) Think Like a Programmer: An introduction to Creative Problem


Solving, William Pollock

For advice on writing style, referencing and academic skills, please make use of the Centre
for Academic Success: https://icity.bcu.ac.uk/celt/centre-for-academic-success

Workload: It is expected that the students should take around 60/75 hours (in addition to the
regular weekly teaching hours) of programming effort to design and develop an application as
specified in this assessment brief.

Transferrable skills:

The assessment help students to develop various transferable skills which are necessary to
obtain a decent job in the future.

Problem Solving
Being a programmer involves the ability to identify real-world issue and coming up with a
technological solution to address it. This requires having strong analytical skills to
understand the issue and evaluate different solutions in order to find the one that best fits
the problem.

Ability to express your thoughts effectively


Using flowcharts provide an effective way of communicating the logic of a system to all
people involved in the project regardless of their background and expertise. They can serve
as an excellent bridge between software developers and end users.

Project evaluation skills


It is the process that critically examines a program. It involves collecting and analysing
information about program activities, characteristics, and outcomes in relation to customer

9
specifications. Its purpose is to make judgements about a programme that you have
developed, to improve its effectiveness and inform programming decisions.

Time management and planning


Design documentation serve as the basis for the estimating, scheduling, and validating
efforts.

10
Marking Criteria:

Table of Assessment Criteria and Associated Grading Criteria

0 – 39% 40 – 49% 50 – 59% 60 – 69% 70 – 79% 80 – 100%


Fail Third 2:2 2:1 First First
A Multiple choice quiz to evaluate students understanding of fundamental programming
Criterion 1
concepts and the syntax of a common programming language – targeting LO 2 and 3
Mark:15%
3 correct 4 correct 5 correct 6 correct 7 correct 8 or more
answers of 10 answers of 10 answers of 10 answers of 10 answers of 10 correct answers
questions questions questions questions questions of 10 questions

48 hours coding challenge (Total weight 15%) - targeting LO 2 and 3


Criterion 2
Significantly Program Program Program Program Program
Mark:15%
incomplete compiles and demonstrates demonstrates demonstrates demonstrates
program. Does demonstrate most of the all of the basic all of the basic all of the basic
not compile only few basic basic features features of the features of the features of the
and execute. features of the of the given specification specification specification
given specification and some other and some and all other
specification. advanced other advanced
features of the advanced features of the
design. features of the design.
design.

LO1 - Design solutions to programming problems


Criterion
3.A
A basic but A reasonable A good and A very good An excellent An excellent
Mark: 15% relevant and relevant relevant attempt at expression of expression of a
attempt at attempt at attempt at understanding a possible possible internal
understanding understanding understanding and internal design design solution
and and and expressing a solution for the for the problem
expressing a expressing a expressing a possible problem domain.
possible possible possible internal design domain. Complete and
internal design internal design internal design solution for the Complete and accurate
solution for the solution for the solution for the problem accurate diagrammatic
problem problem problem domain. diagrammatic presentation
domain. domain. domain. Complete and presentation accompanied
Presented in Diagrammatic Diagrammatic accurate accompanied by clear
text only, no presentation presentation diagrammatic by clear documentation
attempt for attempted, attempted. presentation. documentation of the design.
diagrammatic possibly Possibly of the design. Discusses the
presentation. incomplete incomplete but wider issues in
and accurate, or the problem
inaccurate. complete domain that
design may impact the
attempted but proposed
inaccurate. design.

LO2 - Implement solutions in an imperative programming language by using common


Criterion
3.B programming tools (such as editors and interpreters).
Significantly Program Program Program Program Program
Mark: 40% incomplete compiles and demonstrates demonstrates demonstrates demonstrate all
program. Does demonstrate most of the all of the basic all the basic the basic and
not compile only few basic basic features features of the and advanced advanced
and execute. features of the of the design design and features of the features of the
design. some other design. design. In
advanced addition
features of the demonstrates
design. some additional
features

11
relevant to the
problem.

Criterion LO3 Use common programming tools and techniques (e.g. editors, testing APIs and
3.C theories) to test and evaluate programs
Little or no Weak testing Basic testing of Adequate Excellent
Mark: 15% testing of the that does not the program testing of all testing of all
Excellent
program. No adequately showing program testing of all program
rigour in test program implemented features program features
approach features features meet implemented features described in the
where testing implemented requirements showing design and the
is haphazard meet the banking additional
requirements system works features not
as required described in the
design.

Submission Details:

Format:
All work should be submitted on Moodle as a single zip file. The zip file should contain the
following:

 For component 1 - Moodle quiz. This is an online test that will be performed on the
Moodle. The quiz consists of 10 questions to be completed in 45 minutes.

 For component 2- 48 hours coding challenge to complete on Moodle

 For component 3 - Computer programme, design, solution and testing. This is an


online submission on Moodle and must include the following:
o Software implementation checklist (Compulsory).
o Design documentation which includes two flow chart diagrams
o All of your source code and associated project files.
o Testing and evaluation inclusive of test cases.

The zip file should be structured so that the location of its contents is clear and unambiguous.
Please submit only one version of your work. Also, the zip file should be named using the
following format StudetName_studentID.zip

For example: ShadiBasurra_123456789.zip

12
PLEASE MAKE SURE THAT YOUR APPLICATION WILL WORK ON THE UNIVERSITY'S
MACHINES. DO NOT RELY ON THE FACT THAT IT MAY WORK ON YOUR OWN
LAPTOP/PC AND THEREFORE IT SHOULD WORK ELSEWHERE.

Regulations:

If you submit an assessment late at the first attempt then you will be subject to one of the
following penalties:

 if the submission is made between 1 and 24 hours after the published deadline the
original mark awarded will be reduced by 5%. For example, a mark of 60% will be
reduced by 3% so that the mark that the student will receive is 57%. ;
 if the submission is made between 24 hours and one week (5 working days) after
the published deadline the original mark awarded will be reduced by 10%. For
example, a mark of 60% will be reduced by 6% so that the mark the student will
receive is 54%.

 if the submission is made after 5 days following the deadline, your work will be
deemed as a fail and returned to you unmarked.

The reduction in the mark will not be applied in the following two cases:
 the mark is below the pass mark for the assessment. In this case the mark achieved
by the student will stand
 where a deduction will reduce the mark from a pass to a fail. In this case the mark
awarded will be the threshold (i.e.40%)
Please note:
 If you submit a re-assessment late then it will be deemed as a fail and returned
to you unmarked.

Feedback:
Feedback on your submissions should be given electronically via Moodle.
Marks and Feedback on your work will normally be provided within 20 working days of its
submission deadline via Moodle.

13
Where to get help:

Help and support to complete the assessment will be provided during the followings:

- Weekly lab sessions


- Weekly timetabled support sessions provided by the centre for academic success
- Assessment support sessions (4 hours per week) during teaching weeks

Students can get additional support from the library for searching for information and
finding academic sources. See their iCity page for more information:
http://libanswers.bcu.ac.uk/

The Centre for Academic Success offers 1:1 advice and feedback on academic writing,
referencing, study skills and maths/statistics/computing. See their iCity page for more
information: https://icity.bcu.ac.uk/celt/centre-for-academic-success

See also the My Assignment Planner tool: http://library.bcu.ac.uk/MAP2/freecalc-mail/

Fit to Submit:

Are you ready to submit your assignment – review this assignment brief and consider
whether you have met the criteria. Use any checklists provided to ensure that you have
done everything needed.

14

You might also like