IDEPG001 Programming Coursework

Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due

IDEPG001 Programming
Coursework
2024-2025
Coursework

The marks for each element are clearly indicated in the attached marking scheme.

This assignment constitutes 70% of the total marks for this subject.

The brief

A new leisure and sports club “Sports for You” want to interact with their members through a new app. Part of this app is to allow the members to keep a history of activities they have completed, and calories burnt.

You should write a program to demonstrate this part of the app, the program can read data on available activities and calories burnt per hour from a file. (Please note: these figures are not accurate; they are for the purpose of the coursework only). For this demonstration, the app will enter details for one person only, the person can then enter which activities they have completed and the duration of each activity, this information can then be displayed back to the user with details of how much calories were burnt.

For your version of the app there are 5 fixed activities with data on calories burnt depending on 4 fixed weight categories as follows:

Activity Name
Calories burnt per hour in weight category
<50kg
<70kg
<90kg
>=90kg
swim
300
400
450
500
boxing
450
500
580
620
yoga
100
110
120
130
weights
200
240
260
300
badminton
300
350
380
400

The data should be read from a file, example txt file as follows:


In this file each row represents an activity, and the calories burnt for that activity dependent on weight category.

Column 1 stores the activity number, 1 = swim, 2 = boxing etc (these are fixed values).
Columns 2 – 5 represent the calories burnt per weight category.Programming
Application Requirements:
1. Read in the person’s name and weight in kilograms – store this in a struct. This struct should also be used to store a list of workouts for the person, each workout will hold information on activity number and calories burnt. Validate the weight entered is within the range 30kg to 200kg.


2. Read the data from the file and store this.

3. Display the following menu options:


4. Option 1 display calories burnt by activity per hour.

It should show each activity name, and calories burnt per weight category. There should be headings for each weight category. (see table on page 2)

5. Option 2 should allow the user to enter one or more than one workout. For each workout they should select the activity they have completed and enter the duration of the workout in minutes.

For each workout the program should calculate the number of calories burnt and store the activity number and calories burnt.
6. Option 3 should display the persons name and weight and a list of each workout they have entered. For each workout it should display the activity name and calories burnt. Total calories burnt should be displayed at the end of the list. All workouts entered should be visible throughout the duration of the program execution.
7. Validation of inputs should be included as follows:
a. Menu choices should be limited to integers in the range of options.
b. Workouts should be a minimum of 10 minutes long and no longer than 2 hours.
c. The weight of the person should be within the range of 30 to 200kg.
d. You can assume there will be no more than 100 workouts entered for this demonstration.

Additional Functionality

The following list shows further suggested functionality you may implement to show further knowledge and understanding within your assessment (see grading rubric). It is not expected that you implement any or all of this.
1. Dynamic allocation of activity data.
2. Save the user data so it does not require re-input each time.
3. Save the workout data entered by the user to a file.
4. Any other suitable.
Suggested Data Dictionary for main components:

activity_no
integer
Number of the activity
chosen (1 for swim, 2 for boxing etc)
activities[5]
string array
Name of each activity
(swim, boxing, yoga,
weights,badmington)
activity_data[5][5]
integer array
each row represents an
activity, (row 0 = swim)
col 0: activityNo
col 1: activity calories
burnt<50kg
col 2: activity calories
burnt<70kg
col 3: activity calories
burnt < 90kg
col 4: activity calories
burnt >=90kg
Person:
name
(Struct)
Char (20)
Name of person
weight
integer
Weight to nearest kg
workouts[100][2]
integer array
each row represents a workout for the person
col 0: activityNo
col 1: activity calories burnt.
workoutNo
integer
Total number of workouts completed for the personProgramming

Guidance
1. Your program should be well structured and commented, with meaningful variable names. Constants and user-defined functions should be used in appropriate places for clarity and to reduce duplication.
2. The program should be developed in an incremental way, we recommend that you start by creating the menus, and validation of the menu choices before moving onto the more complex elements. Take note of any issues you have come across and how you have resolved these – this will help you to demonstrate your knowledge and understanding of the coursework.
3. Look carefully at the Coursework Instructions and grading rubric to ensure you meet the requirements of the assignment in full. Ask your tutor if there are any aspects that you do not understand.
4. At the end, it is recommended that you put your program through a pretty printer to ensure it is consistently formatted. 

Coursework Instructions

Your coursework should be handed in as a report. The report should include each area below. To demonstrate knowledge and understanding you should document all areas fully as instructed in each part below. Refer also to Grading Rubric for each part.
Part 1 – Design (30%)

You should produce the following design documentation:
Design Documentation
Instructions
Total Marks
Pseudocode
Pseudocode should be provided for Application Requirement 5 (page 3): Enter one or more than one workout. You can assume the person details have already been entered and all data for activities is already read from the file. You may expand on the provided data dictionary for the pseudocode.
10
Flow Chart
A Flow chart should be provided for Application Requirement 6 (page 3) Menu Option 3: Display completed workouts.
10
State Transition Diagram (STD
A State Transition Diagram should be provided for the menu and submenu system.
10

Part 2 – Test plan and Test Results (20%)

Details of what is to be tested, why, what was the expected outcome, remedial action if required. All tests should be supported by a screen shot proving the test was completed.

You should produce the following as part of your testing documentation:
Test Documentation
Instructions
Total Marks
Test Plan
You should produce a plan of what is to be tested and what is the expected outcome. All functionality should be tested with pre-determined inputs and expected outcomes.
8
Test Results
Your test results should clearly show the outputs of the tests and any remedial action which was taken.
6
Automated Unit Tests
You should demonstrate the use of automated unit tests, these can be used as part of the documentation for your test results.** If this is not possible (please state) you can undertake and demonstrate different types of tests such as user experience tests(observations), accessibility testing; more detailed testing of requirements and additional requirements AND/OR use of a model program with command line arguments.
6

Part 3 – Application (40%)

Application:
The code must be suitably demonstrated for the marks to be awarded for this element. You should demonstrate knowledge within your report of the code you have created, this can be done by screenshots and explanations of the code. You should provide a full listing of your code in an appendix to your coursework and upload the c file.
Application Documentation
Instructions
Total Marks
Execution
You should provide a fully working program written in the c language, covering all the application requirements listed on page 3.
You can exceed the application requirements, suggested additional functionality is listed on page 4, or you may choose to use some of your own ideas to show further knowledge and understanding.
20
Usability
Screenshots of your code executing to demonstrate how the user interacts with the application.
4
Quality
Code listing and explanations, evidence through tests that the code produces the correct outputs.
8
Evidence of Comprehension
Documentation should show evidence of your refinement of code, errors or issues you came across and how these were resolved and explanations of areas of your code.
8

Part 4 – Review (10%)

Review: A suitably written reflective report communicating your learning through the assignment, the skills you have developed and areas that need further improvement.
Reflection of assignment
You should reflect on your work throughout the coursework.
4
Skills Developed
Where did you develop skills – what did you do well?
3
Areas Requiring further improvement.
Moving into the future what would you require to improve?
3

Grading Rubric
Criteria
Assessed Element
Acquisition and application of requisite knowledge

Beginner [40 –49%]
Competent [50 – 59%]
Proficient [60 – 69%]
Expert [70 – 100%]
Quality of models. 30%
Pseudo code
(10%) Flow
chart (10%)
STD (10%)

Very poorly presented models inappropriat e or wholly ineffective.
Issues with models which undermines the appropriatenes s and efficacy. But there is clear evidence of effort in the attempt and techniques are identifiable.
Acceptable models though there are minor issues with appropriatenes s and efficacy and/or notational errors.
No noticeable limitations in the models.
Techniques have been used to an appropriate standard though there may be some minor omissions or errors that reduce the completeness of the models.
Models are extremely effective and professionally presented, notations have been used appropriately and the models wholly map to the provided solution.
Test documentatio n 20%
Plan including reason for testing, expected result, actual result and evidence of remedial action and test execution
Very poor testing, major functionality untested and/or lack of any real plan, evidence of execution or management .
Basic level of testing evident though errors and omissions evident and the plan has evidence of test executions though it is not convincing in its application or management.
Satisfactory plan testing the major executable functions of the system and evidence of tests being executed and managed but not compelling.
Good plan with significant majority of the system tested as required with minor omissions. Clear evidence of execution and management.
Excellent and comprehensiv e plan; comprehensiv e evidence of the tests being executed and managed.
Application
40%
Execution
(50%)


































Application is
limited in
features,
poorly
engineered
lacking
robustness
and
extensibility
and rigour.
Application has
most of the
required
features
evident though
lacks thorough
engineering
leading to
insufficient
extensibility
and/or
robustness
with limited
rigour evident.
Acceptable
solution
thorough not
convincingly
engineered
which may
limit
extensibility
and/or
robustness,
rigour is
deficient.
Solution is well
engineered
with evidence
of extensibility.
There may be
some minor
lack of
robustness
and/or
features, or
rigour
Wholly
professional
approach with
solution well
engineered,
robust and
extensible.
Usability
(10%)
No
interaction
and very
limited
output.
System
functions but
there is no
interaction and
only minimum
output.
Acceptable
usability
though no user
interaction to
load data
and/or very
basic output.
Good, usable
application with
basic user
interface
provide, loads
data as
required and
has the
minimum
output well
displayed.
Excellent,
near
professional
quality
interface and
interactivity.
User has
freedom to
load data and
the outputs
are extensive
with excellent
presentation.
Quality (20%) Program
does not
produce
correct
results; the
standard of
coding is
poor with no
real attempt
to meet a
Code executes
and results are
produced but
they are not
validated
and/or the
standard of
the code is
basic.
Acceptable
quality with
clear evidence
the correct
result is
produced, the
standard of
coding is
acceptable
though there
are clearly
Good quality
throughout, the
application
executes as
required and
results are valid
code quality
has some
issues such as
pretty printing
or naming
Excellent
quality,
executes as
required,
results are
valid and
code is
professionally
presented.Programming
Coursework 2425
© NCUK Ltd. 2023
Page 10 of 10
quality
threshold.
issues with
consistency.
convention not
consistent.
Evidence of
comprehensio
n (20%)
Lacking,
student
appears
unable to
explain the
code and
features
used and
had very
little
evidence of
skills being
acquired and
applied.
Basic evidence
of
comprehension
, can explain
the major
parts of the
program
though lacking
evidence of
understanding
the more
complex
language
features
applied. Skill
level was
sufficient to
complete the
basic tasks but
not more
advanced
work.
Acceptable
though there
are some more
fundamental
areas that the
student is not
so confident
explaining or
has
misunderstood
. They display
the skill level
expected to
succeed with
the
assignment.
Good
knowledge of
the code
though not
comprehensive
or compelling
they are able to
explain the
main features
of the program
and how it
executes and
display an
above average
skill in their
work.
Excellent,
student fully
understood all
the work
submitted,
could explain
the
relationship
between the
model and
the code, the
how the
program
executes and
showed well
above
average and
skill in the
production of
the work.
Review
10%
Degree to
which you
have reflected
appropriately
on the work
you have
produced, the
lessons learnt,
strengths and
weaknesses
etc.
Not a
reflective
account,
details are
presented
as is rather
than
considering
the impact
upon the
learner.
Evidence of
some
reflection
rather than
just a
narrative of
the process
though not
consistent.
Clear
evidence of
reflection
though
lacking depth
and some
objectivity.
Reflection is
evident
throughout
identifying
areas of
development
and skill
acquisition
though minor
inconsistencie
s present.
Deeply
reflective
account with
clear
evidence of
developmen
t and skill
acquisition
along with
evaluation
of previous
skill and
knowledge
deployment.

发表评论

电子邮件地址不会被公开。 必填项已用*标注