Description
University of Westminster – School of Computer Science & Engineering
4COSC001W: Programming Principles I – Assignment Specification (2019/20)
Module leader W Purdy
Unit Practical Exercises
Weighting: 50%
Qualifying mark: 30%
Description: Practical Work
Learning Outcomes
Covered in this
Assignment:
The coursework rationale is:
• LO1 Identify program requirements and select appropriate algorithms to
implement them;
• LO2 Represent algorithms in a structured manner (e.g., by use of flow
diagrams or pseudo-code);
• LO3 Implement algorithms using an algorithmic, strongly typed
programming language, and design and run appropriate tests on the
resulting code;
• LO4 Write program code that conforms to norms of good style and
meets generally accepted referencing criteria;
Handed Out: 21st October 2019
Due Date: Tuesday 19th November at 1:00 PM
Expected deliverables:
a) Flow chart (Part 1 and Part 2)
b) Python program code
– Important: Submit your python code file created in IDLE using the
name convention: “student_id.py”, e.g. w1234567.py
– DO NOT submit your code as word, notepad or a PDF document.
c) Test case results (Part 1 and Part 2)
d) Demo – Monday 25 November (during your scheduled tutorial)
Method of Submission: Submitted online via Blackboard
Type of Feedback and Due
Date:
Written feedback and marks 15 working days (3 weeks) after the submission
deadline. All marks will remain provisional until formally agreed by an
Assessment Board.
BCS Criteria covered in this
Assignment:
2.1.1 Knowledge and understanding of facts, concepts, principles & theories
2.1.2 Use of such knowledge in modelling and design
2.1.3 Problem solving strategies
2.2.1 Specify, design or construct computer-based systems
2.2.4 Deploy tools effectively
2.3.2 Development of general transferable skills
4.1.1 Knowledge and understanding of scientific and engineering principles
4.1.2 Knowledge and understanding of mathematical and statistical principles
Assessment regulations
Refer to section 4 of the “How you study” guide for undergraduate students for a clarification of how you are
assessed, penalties and late submissions, what constitutes plagiarism etc.
Penalty for Late Submission
If you submit your coursework late but within 24 hours or one working day of the specified deadline, 10 marks
will be deducted from the final mark, as a penalty for late submission, except for work which obtains a mark in
the range 40 – 49%, in which case the mark will be capped at the pass mark (40%). If you submit your coursework
more than 24 hours or more than one working day after the specified deadline you will be given a mark of zero
for the work in question unless a claim of Mitigating Circumstances has been submitted and accepted as valid.
It is recognised that on occasion, illness or a personal crisis can mean that you fail to submit a piece of work on
time. In such cases you must inform the Campus Office in writing on a mitigating circumstances form, giving the
reason for your late or non-submission. You must provide relevant documentary evidence with the form. This
information will be reported to the relevant Assessment Board that will decide whether the mark of zero shall
stand. For more detailed information regarding University Assessment Regulations, please refer to the following
website: http://www.westminster.ac.uk/study/current-students/resources/academic-regulations
Principles I
4COSC00W: Assignment Specification Page | 1
Coursework Description
The University requires a program to predict progression outcomes at the end of each academic
year. You should write this program in Python using the data shown in Table 1.
Part 1 – Student Version
1. The program should allow students to predict their progression outcome at the end of each
academic year.
2. The program should prompt for the number of credits at pass, defer and fail and then display the
appropriate progression outcome for an individual student.
3. The program should let the user know if a credit input is the wrong data type. I.e., ‘Integers
required’ is displayed.
4. The program should let the user know if credits are not in the range 0, 20, 40, 60, 80, 100 and
120. I.e., ‘Range error’ is displayed.
5. The program should let the user know if the total of the pass, defer and fail credits is not 120.
I.e., ‘Total incorrect’ is displayed.
• Use conditions and user-defined functions in your solution as appropriate.
• Flow Diagram – Before you start to program your solution you should create your flow diagram
that represents your algorithm in a structured manner. Submit flowchart for Part 1 for marking.
• Test Plan – A Part 1 test plan is provided in the appendix. Submit the completed test plan (with
your flow diagram and program code) and bring a printed copy of the test plan to the demo.
Table 1: Progression outcomes as defined by the University regulations.
Volume of Credit at Each Level
Pass (including Progression Outcome
condoned pass)
Defer Fail
1 120 0 0 Progress
2 100 20 0 Progress – module trailer
3 100 0 20 Progress – module trailer
4 80 40 0 Do not Progress – module retriever
5 80 20 20 Do not Progress – module retriever
6 80 0 40 Do not Progress – module retriever
7 60 60 0 Do not progress – module retriever
8 60 40 20 Do not progress – module retriever
9 60 20 40 Do not progress – module retriever
10 60 0 60 Do not progress – module retriever
11 40 80 0 Do not progress – module retriever
12 40 60 20 Do not progress – module retriever
13 40 40 40 Do not progress – module retriever
14 40 20 60 Do not progress – module retriever
15 40 0 80 Exclude
16 20 100 0 Do not progress – module retriever
17 20 80 20 Do not progress – module retriever
18 20 60 40 Do not progress – module retriever
19 20 40 60 Do not progress – module retriever
20 20 20 80 Exclude
21 20 0 100 Exclude
22 0 120 0 Do not progress – module retriever
23 0 100 20 Do not progress – module retriever
24 0 80 40 Do not progress – module retriever
25 0 60 60 Do not progress – module retriever
26 0 40 80 Exclude
27 0 20 100 Exclude
28 0 0 120 Exclude
Principles I
4COSC00W: Assignment Specification Page | 2
Part 2 – Staff Version
This extension should meet the requirements specified for Part 1 but also allow a staff member to
predict progression outcomes for multiple students.
1. The program should prompt for credits at pass, defer and fail and display the appropriate
progression for each individual student until the staff member user enters ‘q’ to quit.
2. When ‘q’ is entered, the program should produce a ‘histogram’ where each star represents a
student who achieved a progress outcome in the category range: progress, trailing, module
retriever and exclude. See example below.
3. The program should display the number of students for each progression category and the total
number of outcomes processed.
• The program will make use of loops and user-defined functions.
• Flow Diagram – Before you start to program your solution you should create your flow diagram
that represents your algorithm in a structured manner. Submit flowchart for Part 2 for marking.
• Test Plan – You are required to create your own test plan for Part 2. Submit the completed Part
2 test plan (with your flow diagram and program code) and bring a printed copy to the demo.
This following horizontal histogram example shows the output distribution for 20 outcomes.
However, your program should work with any number of outcomes generated.