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

COMP10082 - Programming Strand_20241 (2)

Uploaded by

bestx 21
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

COMP10082 - Programming Strand_20241 (2)

Uploaded by

bestx 21
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

1

School of Science and Technology

COURSEWORK ASSESSMENT SPECIFICATION (UG)

Details of Module and Team


What Learning Outcomes are assessed?
What are my Deadlines and how much does this
assessment contribute to my Module Grade?

What am I required to do in the assessment?


What are my assessment criteria? (What do I
have to achieve for each grade?)
Can I get formative feedback before submitting ?
If so, how?
What extra support could I look for myself?

How and when do I submit this assessment?


How and when will I get summative feedback?
What skills might this work evidence to
employers?
2

MODULE CODE COMP10082

MODULE TITLE Foundations of Computing &


Technology - Programming
MODULE LEADER Peter Blanchfield
TUTOR(S) Azi Meskaran
Abdallah Naser
Amin Safaei
Phil Woodall
Dan Buxton
Shadrach Olarewaju
Jake Street
Izaak Hamblin
Maria Mwanje
Amir Alizadeh
Zakia Turabee
Michael Apejoye

COURSEWORK TITLE Project


LEARNING OUTCOMES • MLO2 Demonstrate a simple
ASSESSED
understanding of state as a
computational context and
programming as its
manipulation.
• MLO4 Write Python programs as
computing solutions to real
world problems
CONTRIBUTION TO 100% of the Programming Strand 50%
ELEMENT
of the Module
DATE SET 24/10/2024
3

DATE OF SUBMISSIION Project hand in due on 6th of


December 2024 no later than 2.30pm.
Demonstration of working code week
beginning 9th December 2024 – set in
agreement with lab demonstrators
and the student.

METHOD OF SUBMISSION Dropbox and Olympus Git Hub


Date of Informal Feedback After demo week beginning 9th
December
DATE OF FEEDBACK First week of Term 2

METHOD OF FEEDBACK Grade and feedback provided


electronically on Now pages
4

Work handed in up to five working days late will be given a maximum Grade of Low Third
whilst work that arrives more than five working days will be given a mark of zero. Work
will only be accepted beyond the five working day deadline if satisfactory evidence, for
example, an NEC is provided. https://www.ntu.ac.uk/studenthub/my-
course/studenthandbook/submit-a-notification-of-extenuating-circumstances

Failure to attend a DEMO will mean the work cannot be assessed

The University views plagiarism and collusion as serious academic irregularities and there
are a number of different penalties which may be applied to such offences. The Student
Handbook has a section on Academic Irregularities, which outlines the penalties and
states that plagiarism includes:

'The incorporation of material (including text, graph, diagrams, videos etc.) derived from
the work (published or unpublished) of another, by unacknowledged quotation,
paraphrased imitation or other device in any work submitted for progression towards or
for the completion of an award, which in any way suggests that it is the student's own
original work. Such work may include printed material in textbooks, journals and material
accessible electronically for example from web pages.'

Whereas collusion includes:


“Unauthorised and unacknowledged copying or use of material prepared by another
person for use in submitted work. This may be with or without their consent or agreement
to the copying or use of their work.”

If copied with the agreement of the other candidate both parties are considered guilty of
Academic Irregularity.
Please remember submitting portions of work already assessed is Self-Plagiarism and is
also a serious academic irregularity.
Penalties for Academic irregularities range from capped or zero grades for elements of
modules, to dismissal from the course and termination of studies.

"To ensure that you are not accused of plagiarism, look at the NOW page Plagiarism and
Academic Integrity at NTU. for guidance."

Chat GPT and other AI-powered language models


It is important to note when using any AI platform that they generate the most common
responses to questions, not necessarily the correct ones. They also fabricate evidence.
The material they produce is not your own words. Assessments require you answer
questions giving your own view and in your own words. The outputs from Chat GPT do not
provide that.

By presenting such material as your own words you are violating Academic Integrity
policy, a matter that NTU takes very seriously.
5

The skills you develop during your time with us allow you to interrogate material and
evaluate it, important skills in all careers. Chat GPT does not allow you to develop these.

I. Programming Strand Assessment Requirements

The assessment process for this strand is via a software development project:

You will produce a program to fulfil the design requirements below. The
design of the program will be given in a plan that will also describe how your
program meets the design brief. The plan will also detail a set of tests that have
been carried out while implementing the software.

II. Design and Implementation Requirements


The code must be designed to achieve a goal – it cannot be simply a set of sections
of code to demonstrate aspects of Python.

The program should show evidence of at least the basic use of loops, branching,
data structures, classes and file handling and any further advanced features that
might be needed to achieve the goal of the program.

The grade for this project, provides 100% of the programming strand assessment
will also be derived from a demonstration of the project which will include a
question and answer session where your tutor will ask you about the design and
structure of your project. Documentation will be used to help in this process. If
you do not attend your demonstration, or, the project shows inadequate ownership
of the presented code, your tutor may award a failing grade.

Your implementation may use existing libraries or other code, provided they are
fully attributed. A lack of attribution will be considered as plagiarism and the usual
action will be taken for these cases. Please ensure that you read the student
handbook regarding how to cite and reference, as well as look at the materials
available on the library web page. In addition, the work needs to be done by you
and you must not work with others on any code. The contribution of the student
relative to the amount of code they have sourced from elsewhere will be assessed
when awarding the mark.

The documentation you will need to submit in addition to all source code, should
be as follows:

• Design – may be documented by Use Case Diagrams or Use Case


descriptions and class diagrams. These will be attached to the repository
and may be presented in the READ.ME for the repository.
• Testing – table of tests to be undertaken and results of the tests. This should
be detailed in the repository you will develop your code from. Each stage of
your development should lead to a commit to the repository. Ensure that
you push each commit to the https://olympus.ntu.ac.uk repository for your
project. During your demo your lab supervisor will require you to show the
network graph for the project.
6

• Critique – what worked, what didn’t and what if anything could have been
improved. This will also be included on your READ.ME on your repository.

As well as storing your software and documentation on the repository you will be
required to submit a .zip file of the project including code and documentation on a
Dropbox on the NOW pages for the module by the submission deadline.

Project requirements:

Voting Analysis Project

The data to be analysed and presented in the project is available in a document on


the NOW pages of the module. The document was retrieved from the House of
Commons Library website https://commonslibrary.parliament.uk/research-
briefings/cbp-10009/. Further information on the data can be found on that web site.
The file on the now pages is a .csv taken from the full data set available on the
government website.

The system will provide users with a set of options presented to them as a menu.
They should be able to use the system to enquire about:

• Candidate party
• Candidate name
• Parliamentary Seat (name)
• Total registered voters in the seat
• Total of votes cast
• Votes cast for the candidate
• Votes for a given party received as a percentage of total votes cast

You are at liberty to add extra options that may improve the understanding of the
data.

You should develop an MP Class, a Party Class and a Constituency class. These
classes should enable the program to encapsulate the data needed to process each
of these components. The main program will use data structures that will contain
objects of the corresponding class types.

To achieve a passing grade the program will make use of at least one class. The
class will make use of appropriate container types to make efficient coding of the
responses.

The program should read the data about individual constituencies (seats) from the
file which is provided. The totals for a party and percentages for a constituency
should be calculated by the program. When the user chooses to terminate the
program the statistics should be saved in an appropriately structured file.

The program will make use of loops and conditions and try except blocks designed to
make sure the program does not crash if a user makes an erroneous entry or if a file
read or write do not work correctly. Once a statistic set has been calculated the data
from those calculations should be saved to a file. Examples of statistics would be
7

such things as the average number of votes and average percentage of votes
needed for a candidate to be elected. Alternatives include such things as total
number of MPs who are female and the percentage of male and female MPs elected
for each party. The data in the .csv file provided has been adjusted so that MPs not
affiliated to the main parties are listed as Independent and described as Ind in the
party column of the file.

Additional options could be made that plot the statistics in graphical form (for
example as bar charts for the different parties performance). The United Kingdom is
divided into areas called constituencies for the general election to the House of
Commons. These constituencies are meant to be of approximately the same size but
population changes can lead to differences in the size of constituencies. There is no
legal requirement in the UK for a registered voter to vote. The data in the file
contains columns for aspects of this. The nations of the United Kingdom are,
Scotland, England, Wales and Northern Ireland. The table also contains information
on which of these countries the constituencies are in. Any of these facts could lead
to options in your menu system.
8
III. Assessment Criteria
Class/grade Upper second Lower Second
First (Excellent) Third (Sufficient) Fail (Insufficient)
(Very Good) (Good)
Assessment
Exceptional High Mid Low High Mid Low High Mid Low High Mid Low Mar Mid Low
Criteria 1st 1st 1st 1st 2.1 2.1 2.1 2.2 2.2 2.2 3rd 3rd 3rd Fail Fail Fail

The code does not


A complete set of
A set of code that A set of code that The program includes implement
As high 1st code that works
that effectively works and code that implements sufficient of the
but with excellently and
extra features implements the implements most some of the outcomes requirements to run
Code overall effectively
that add to majority of aspects of the aspects given in the project in any real
the implements all the
described in the given in the project description in an sense. Few of the
functionality. aspects of the project
project description. description. effective way. requirements have
description.
been attempted.
9
The program
The program makes mostly uses
Use of Data very good use of appropriate data The program has used
The program uses efficient and data The program fails to
structures structures but data structures that
appropriate data structures for structures for the use appropriate
(for example some structures are not generally the
the purpose that fulfils the design data structures if at
dictionary, purposes that fulfil used are not the best for the task they
specification. all.
list, tuples) the design best for the are implementing
specification. purpose they are
trying to achieve

The program fails to


The program uses appropriate The program makes The program makes
The program makes correctly use
classes throughout. The classes use of classes that good use of
use of classes but classes. Functions if
Use of Classes use encapsulation and where generally use classes but may not
some aspects are not they exist are nor
appropriate implement encapsulation fully use
well thought through. suitable for good
inheritance correctly. encapsulation.
code clarity.

The program is able


The program is able
The program is able to read from to read from
to read from and
and write to a text file. The data and write to a text
write to a text file. The program makes
reading function responds file. The data
The data reading some use of reading The program does
correctly and helpfully even reading function
File Handling function responds and/or writing to a not use file read
when the file specified is not responds correctly
correctly even when text file but this does and/or write.
available. The data written to file unless the file
the file not work effectively.
will enhance the functionality of specified is not
specified is not
the software in later use available, at which
available
point it fails
10

The program makes


The program use of
The program does not The program does
The program responds correctly if generally responds exception
make correct use of not implement
any invalid data is encountered correctly if invalid detection but does
Error handling exception detection functionality to
when responding to user data is not always respond
but some attempt is allow error
input encountered and correctly when
made to implement it. correction
does not crash. some invalid data is
encountered.

An excellent testing strategy has


been applied consistently. Tests A very good testing A good testing A testing strategy has
strategy has been
have clearly been used to help strategy has been been developed but
developed and Little or no testing
develop the code. The repository developed and not applied
generally applied strategy has been
will demonstrate a consistent use mostly applied consistently in the
Testing consistently. There developed. No
of commit and push processes as consistently. There development process.
is some evidence evidence is available
all testing is undertaken. Note will should be some The commit process
that test have been on the repository
have been made of all errors evidence of this on has not been
used in developing
encountered and the process used the repository methodically followed
the code
to correct them
11

The code makes


The program makes consistent The program mostly
some correct use
use of functions which aids the uses The code attempts to
of functions but is
complexity of the program functions which use functions correctly The program has
Use of not always used
reducing unnecessary code. This is generally aid in but in some cases this not used functions
Functions where it would
true both for encapsulated reducing the has not helped reduce correctly.
have reduced
functions and stand alone complexity of the code complexity
complexity of the
functions program.
code.

In some places the The program has


program is The program is few or no
The program is commented in commented in ways comments that
generally well ways that are of that are of some value help in
The program is very well commented in value in in understanding the understanding the
commented in ways that are of
ways that are of understanding the function of the function of the
Design value in understanding the
value in function of the program. The variable program. The
processes, function of the program. The
understanding the program. The name usage is variable name
Commenting variable name usage is consistent variable name
function of the inconsistent and does usage is
and use of and aids the understanding of the usage is mostly
program. The not aid the inconsistent and
variable function of the software. All Use consistent and aids understanding of the does not aid the
commit process has
names etc cases have been methodically the understanding function of the understanding of
recorded most
recorded in the Read.Me of the of the code. Some software. There is little the function of the
stages of the
repository of the commits or no evidence of software. Evidence
development in a
methodical way show evidence of commits being made of commits on the
the logic used in on a regular basis repository are
the development. limited
12
A generally good
A very good description is
description is given given of what the
of what the various various
An excellent description is given components of the components of the
program are meant program are A description is given
of what the various components
of what the various
of the program are meant to do in to do in the form of meant to do. The description
use cases and or components of the
the form of use cases and or Generally use cases given is inadequate
use case diagrams program are meant to
use case diagrams and relevant and relevant and generally not
and relevant class do. Some evidence is
class diagrams. Test sequence class descriptions implemented in the
diagrams. Some given in the form of
Code Plan descriptions are extensive and are given and code. Test
very good test use cases and class
implemented in the code. The implemented. sequence
sequence diagrams/descriptions.
design and implementation Some good test descriptions are
descriptions are Some test sequence
match well. The documentation sequence generally not given
generally descriptions are given
gives a clear description that descriptions have or implemented.
implemented in the and implemented in
would help a subsequent been implemented
code. The design the code.
developer enhance the function in the code. The
and
design is
implementation
implemented to a
generally match
well certain extent in
the code
10

IV. Feedback Opportunities

Formative (Whilst you’re working on the coursework)


You will demonstrate your progress to the laboratory tutor during laboratory sessions.

Summative (After you’ve submitted the coursework)


You will receive specific feedback regarding your coursework submission together
with your awarded grade when it is returned to you. Clearly, feedback provided
with your coursework is only for developmental purposes so that you can improve
for the next assessment or subject-related module. It should be available at the
demonstration if you show the work to be your own.

V. Resources that may be useful

Referencing styles please use Harvard as detailed here


Guidance for presentations as detailed here and think about what lectures you
have liked and why
Guide to planning your time here and an automated planner here
Guidance for revision is here
Guidance on avoiding cheating is here

Remember to use Outlook or physical calendars to block out time between


lectures and labs to work on this coursework.
VI. Moderation

The Moderation Process


All assessments are subject to a two-stage moderation process. Firstly, any details
related to the assessment (e.g., clarity of information and the assessment criteria)
are considered by an independent person (usually a member of the module team).
Secondly, the grades awarded are considered by the module team to check for
consistency and fairness across the cohort for the piece of work submitted.

You might also like