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

System Design & Programming Assessment

This assessment brief outlines a coursework assignment for a System Design and Programming module. It requires students to develop two text-based and graphical user interface applications that allow a user to search a library catalog by subject, classmark or location using data from CSV files. The applications will be evaluated based on design quality, code quality, and how well they meet the stated requirements. The purpose is to assess students' abilities in systems design, programming, and evaluating how well programs meet requirements. Suggested resources to help with the assignment are provided.

Uploaded by

Stephen Njeri
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

System Design & Programming Assessment

This assessment brief outlines a coursework assignment for a System Design and Programming module. It requires students to develop two text-based and graphical user interface applications that allow a user to search a library catalog by subject, classmark or location using data from CSV files. The applications will be evaluated based on design quality, code quality, and how well they meet the stated requirements. The purpose is to assess students' abilities in systems design, programming, and evaluating how well programs meet requirements. Suggested resources to help with the assignment are provided.

Uploaded by

Stephen Njeri
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Faculty of Natural Sciences

School of Computer Science and Mathematics

Assessment Brief
Module CSC-40044 System Design & Programming
Assessment Component Coursework
Weighting 100%
Deadline 1pm on 16th December 2022
Module Leader Dr Alastair Channon
Office Hours/Meeting See the module's KLE entry
Booking Link

What is the task for this assessment?


The Keele University Library Map1 includes a list of classmarks for each subject, and shows
the location of each classmark. For the purpose of this assessment, assume that all
classmarks are either one or two letters long, and that a range such as “G to GF” consists of
(for this example) G, GA, GB, GC, GD, GE and GF. Consider there to be six locations
containing books: Ground Floor, Middle Floor, Top Floor Back Left, Top Floor Back Right, Top
Floor Front Left and Top Floor Front Right.
Part I: Develop a text-based application (without a GUI) that 1. prompts the user (with clear
instructions displayed) to select one of three options: whether to enter a subject name or part-
name (e.g. “English”), a classmark, or a location; 2. prompts (according to the previous
response) the user to enter the subject name/part-name, classmark or location (with location
options displayed); and 3. outputs each matching classmark together with its location and
subject name(s).
Your program should read in two comma-separated values (CSV) files that you write. The first
file should contain the list of subjects and classmarks. The second file should contain a list of
classmarks and locations; you can design this file either to contain one classmark per row or a
range of classmarks per row. Your program should be able to operate correctly if subject
names, classmarks or locations are changed within, added to or removed from these files.
Part II: Develop a second application (for the same task) that uses a TKinter-based graphical
user interface (GUI) for both input and output, rather than the text-based console. Minimise
the amount of repeated code by separating code common to both part I and part II from user-
interface-specific code.
For both parts, you may only import modules that ship with a basic Python 3 installation. This
can be checked at https://docs.python.org/3/py-modindex.html. Submit a single .zip file,
containing your Python .py files and CSV files, to the KLE drop-box for this assessment.

1 A copy of the Keele University Library Map is included on the final page of this document.
2. What is required of me in this assessment?

Guidelines You should complete your work for this assessment without
help or feedback from others, including demonstrators. All
work that you submit must be your own individual work, and
any other person’s work or ideas must be appropriately
acknowledged. Further details on this can be found in the
University's Student Academic Misconduct Code of Practice.
The module co-ordinator will provide feedback on the work
that you submit, via the KLE, only once all marking for this
assessment has been completed.
You can however get help with non-assessment material by
making use of the practical sessions timetabled in week 6
(with demonstrators in them) and the weekly virtual help desk
sessions. For example, if you are stuck on something to do
with the assessment, you might find and try a practical
exercise that does a similar thing (e.g. read a CSV file) and
get help with that if you need it.
Self- assessment  address each requirement listed in section 1;
checklist  consider your work against the mark scheme;
Make sure that you…  submit (only) a single .zip file, containing your Python .py
files and CSV files, to the KLE drop-box for this
assessment.
Three key pieces of  Do not import a module that does not ship with a basic
advice based on the Python 3 installation.
feedback given to the  Minimise the amount of repeated code by separating code
previous cohort who common to both part I and part II from user-interface-
completed this specific code.
assignment  Test your code and evaluate the extent to which your
applications meet the requirements: each should function
as specified in part I.
Assessment Criteria/ Part I: Design, manual writing and code for reading in of
Markscheme: data (.csv) files (10%)
Part I: Remainder of text-based application (20%)
Part II: GUI design and implementation (20%)
Code quality, including error/exception handling and
internal comments (20%)
Overall design of the applications (30%)
Marks here will be awarded for accordance with the design
principles established within the course. In particular, the
quality of partitioning and the design goals of Flexibility,
Extensibility, Maintainability, Robustness, Performance and
Usability. Note that this need not necessarily imply an object-
oriented design. Appropriate levels of abstraction, partitioning,
decoupling, and maximisation of functional cohesion, should
be the driving forces.
Within each of the above categories, marking will be according
to the University's generic FHEQ level 7 assessment criteria. The
pass mark is 50%.
3. What is the purpose of this assessment?
The following table shows which of the module learning outcomes are being assessed in this assignment. Use
this table to help you see where and how to transfer feedback from one assignment to another. Note that your
feedback may mention some of these outcomes, but that you will not receive a ‘mark’ against each one.

Module Learning Outcomes assessed


 critically appraise systems design options and select an approach appropriate to a
provided set of requirements
 develop designs for computer programs on the basis of a set of requirements
 develop computer programs using a major programming language and appropriate
technology
 critically evaluate the extent to which computer programs meet their requirements

4. What resources might I use to get started?

If you need to study the module material again, to prepare yourself for this assessment, I
suggest focussing first on the "Programming in Python" lectures and practicals, which cover:
1: Basic data types in Python, functions, conditions, loops, files
2: List Comprehensions, Dictionaries, Classes and Objects, Inheritance, Modules, Errors and
Exceptions, DUNDER Methods, Iterators
3: Generators, Operator Overloading, Recursion, Linked Lists, Stacks, Queues, Sorting
Algorithms, Big-O performance
4: Trees, (Priority Queues), Heaps, Graphs, GUI

I also suggest that you not distract yourself with other resources. Doing so tends to lead
students not familiar with programming into confusion rather than helping you.
Accountancy HF
American History E and F
American Literature PS
Archaeology CC
Art N
Astrophysics QB
Biochemistry QP and RB

Special Collections and Archives Biology QH


Biomedical Science QR and RB
Rooms

Bo o ka
Silent Study Space Silent Study Space Botany QK and S
Books British History DA

ble Ind
Books
Study

HM-NX P-PZ Business HD to HF


(except JX-KZ)

ividua
Chemistry QD
ividual

Chinese PL

l
Books Books

Study
ble Ind

Group Computing QA and TK


DT-HJ Study
Rooms
Q-V Counselling and Psychotherapy RC

Room
Booka

LIFT Criminology HV
Silent Study Space Silent Study Space
Ecology QH

s
Economics HA to HJ
Library Referance Education L
Training
Collection Accessible Technology Room
Reading

Top Floor Room Room


English Language
English Literature
PE
PR
Environmental Studies GE to GF
Film Studies PN
Finance HG to HJ
Forensic Science HV
Group
IT IT Lab 3 Study Collaborative Study French PC
Room 1 Library Staff
Labs
1&2 Books Geography G to GF
IT Suite Requests
Individual
A-DS Geology and Geoscience QE
Study DVDs Self-Service German PF
History D
Individual Bookable
Study Human Biology QM to QR
Careers Advice Pod Study
and Rooms Human Resource Management HD to HF
Employability LIFT
International Law JX
Reception
International Relations JZ
Welcome
Desk Italian PC
Japanese PL
Middle Floor ENTRANCE
Library Staff
Law K
Management and Marketing HD to HF
Mathematics QA
Media Studies P
Medicinal Chemistry QP
ENTRANCE Medicine R
Mental Health RA to RC
Music Technology MT
Music Technology ML
Neuroscience RC
Silent IT
Print Journals Labs Nursing RI
DVDs 5-7 Pharmacology RM
Xerox Copies Pharmacy RS
Philosophy B to BJ
ACCESSIBLE Physics QC
Refreshments

ENTRANCE Law Library


Physiology QP
Place

JX-KZ
Group Study LIFT Physiotherapy RM
Silent Study Space
Politics J to JX
Psychology BF
Radiography RC
Religion BL to BX
Ground Floor Russian PG
Social Work HV
Sociology HM to HT
Spanish PC
Veterinary Medicine SF
Toilets Recycling point Printer

You might also like